From 96585240ef49eca350cb2a70deab4d6a9a540c15 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Fri, 12 Jun 2026 18:29:17 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A4=ED=94=84=EC=85=8B=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=EC=97=90=20=EC=8B=9C=20=EA=B8=B8=EC=9D=B4=20=EB=B0=98?= =?UTF-8?q?=EC=98=81=20=EC=A0=9C=EB=8C=80=EB=A1=9C=20=EC=95=88=EB=90=98?= =?UTF-8?q?=EB=8A=94=20=ED=98=84=EC=83=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/roofcover/useWallLineOffsetSetting.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/hooks/roofcover/useWallLineOffsetSetting.js b/src/hooks/roofcover/useWallLineOffsetSetting.js index e9e22ea8..bfe2c4b0 100644 --- a/src/hooks/roofcover/useWallLineOffsetSetting.js +++ b/src/hooks/roofcover/useWallLineOffsetSetting.js @@ -516,6 +516,14 @@ export function useWallLineOffsetSetting(id) { } } + // 좌표가 변경된 라인의 planeSize/actualSize 재계산 — 길이 라벨은 attributes.planeSize 저장값을 표시하므로 + // 재계산 없이 fire('modified') 만 하면 이전 길이가 그대로 남는다. + ;[currentLine, prevLine, nextLine].forEach((line) => { + if (!line?.attributes) return + const newSize = calcLinePlaneSize({ x1: line.x1, y1: line.y1, x2: line.x2, y2: line.y2 }) + line.attributes = { ...line.attributes, planeSize: newSize, actualSize: newSize } + }) + const newOuterLines = canvas.getObjects().filter((obj) => obj.name === 'outerLine') newOuterLines.sort((a, b) => a.idx - b.idx) newOuterLines.forEach((line, idx) => {