From 23dafe3b18f7072fbd2bed3b47c38d6b33a0c5ba Mon Sep 17 00:00:00 2001 From: ysCha Date: Thu, 28 May 2026 13:51:07 +0900 Subject: [PATCH] =?UTF-8?q?[2173]=20valleyExt=20=E2=80=94=20trim=C2=B7casc?= =?UTF-8?q?ade=C2=B7ridge-stop=20=EB=8B=A4=20=EB=B9=84=ED=99=9C=EC=84=B1?= =?UTF-8?q?=20(=ED=99=95=EC=9E=A5=EB=A7=8C,=20=EB=B3=84=EB=8F=84=20?= =?UTF-8?q?=EB=A3=B0=20=ED=9B=84=EC=86=8D)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/roofcover/useEavesGableEdit.js | 25 ++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/hooks/roofcover/useEavesGableEdit.js b/src/hooks/roofcover/useEavesGableEdit.js index 97ad0616..c85d11dc 100644 --- a/src/hooks/roofcover/useEavesGableEdit.js +++ b/src/hooks/roofcover/useEavesGableEdit.js @@ -646,10 +646,12 @@ export function useEavesGableEdit(id) { } let ridgeStop = null let ridgeT = Infinity - for (const il of roof.innerLines || []) { + // [KERAB-VALLEY-EXT 2026-05-28] 사용자 지시: 일단 다 뻗기 — ridge-stop 비활성. 골짜기 케라바 룰은 별도 후속. + // eslint-disable-next-line no-constant-condition + if (false) for (const il of roof.innerLines || []) { if (!il || il.visible === false) continue if (il.name !== LINE_TYPE.SUBLINE.RIDGE) continue - if (il.lineName === 'kerabPatternValleyExt') continue + if (il.lineName && il.lineName.startsWith('kerabPattern')) continue const ip = lineLineIntersection(start, rayEnd, { x: il.x1, y: il.y1 }, { x: il.x2, y: il.y2 }) if (!ip) continue if (!isPointOnSegment(ip, il.x1, il.y1, il.x2, il.y2)) continue @@ -1523,10 +1525,12 @@ export function useEavesGableEdit(id) { } let ridgeStop = null let ridgeT = Infinity - for (const il of roof.innerLines || []) { + // [KERAB-VALLEY-EXT 2026-05-28] 사용자 지시: 일단 다 뻗기 — ridge-stop 비활성. 골짜기 케라바 룰은 별도 후속. + // eslint-disable-next-line no-constant-condition + if (false) for (const il of roof.innerLines || []) { if (!il || il.visible === false) continue if (il.name !== LINE_TYPE.SUBLINE.RIDGE) continue - if (il.lineName === 'kerabPatternValleyExt') continue + if (il.lineName && il.lineName.startsWith('kerabPattern')) continue const ip = lineLineIntersection(start, rayEnd, { x: il.x1, y: il.y1 }, { x: il.x2, y: il.y2 }) if (!ip) continue if (!isOnSegV(ip, il.x1, il.y1, il.x2, il.y2)) continue @@ -1649,10 +1653,12 @@ export function useEavesGableEdit(id) { // ridge stop (roof 측과 동일 룰) let wRidgeT = Infinity let wRidgeStop = null - for (const il of roof.innerLines || []) { + // [KERAB-VALLEY-EXT 2026-05-28] 사용자 지시: 일단 다 뻗기 — ridge-stop 비활성. 골짜기 케라바 룰은 별도 후속. + // eslint-disable-next-line no-constant-condition + if (false) for (const il of roof.innerLines || []) { if (!il || il.visible === false) continue if (il.name !== LINE_TYPE.SUBLINE.RIDGE) continue - if (il.lineName === 'kerabPatternValleyExt') continue + if (il.lineName && il.lineName.startsWith('kerabPattern')) continue const ip = lineLineIntersection(wStart, wRayEnd, { x: il.x1, y: il.y1 }, { x: il.x2, y: il.y2 }) if (!ip) continue if (!isOnSegV(ip, il.x1, il.y1, il.x2, il.y2)) continue @@ -1844,8 +1850,11 @@ export function useEavesGableEdit(id) { if (valleyExtensions.length) { logger.log('[KERAB-VALLEY-EXT] drawn ' + valleyExtensions.length) } - const trimRecords = trimByValleyExtensions(valleyExtensions) - cascadeHideByValleyExtensions(trimRecords) + // [KERAB-VALLEY-EXT 2026-05-28] 사용자 지시: 골짜기 라인이동(trim)·라인절삭(cascade) 다 비활성, 확장만. + // 골짜기 케라바 라인 별도 룰 후속에서 재활성 예정. + // const trimRecords = trimByValleyExtensions(valleyExtensions) + // cascadeHideByValleyExtensions(trimRecords) + const trimRecords = [] if (trimRecords.length) target.__valleyExtTrims = trimRecords } dumpInnerLineSnapshot('AFTER')