fix: 처마선 split 시 roof 원본 외곽선 숨김을 공용 함수로 통합

[작업내용] :
- splitRoofLinesToInnerLines 가 처마변 innerLine화 후 roof 원본 외곽(stroke)을 transparent 로 숨기도록 통합
- 변별/용마루 양 경로 공통 적용 — 처마선 삭제 시 roof 기본 stroke:'black' 이 노출되던 문제 해결
- 용마루 호출부(skeletonBuilder)의 개별 roof.set 제거 (split 함수가 담당)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jaeyoung Lee 2026-06-12 14:45:12 +09:00
parent 87545e5df1
commit 53ecbcca0f
2 changed files with 6 additions and 4 deletions

View File

@ -5443,7 +5443,8 @@ export const drawRoofByAttribute = (roofId, canvas, textMode) => {
}
/**
* roof.lines(처마 외곽선) innerLine 끝점 기준으로 split 편집 가능한 innerLine(hip/roofLine)으로 만든다.
* roof.lines(처마 외곽선) innerLine 끝점 기준으로 split 편집 가능한 innerLine(hip/roofLine)으로 만들고,
* 처마선 innerLine 외곽선을 전담하므로 roof 원본 외곽선(stroke) 숨긴다(transparent).
* 변별/용마루 경로 공용. innerLines 결과를 in-place push 하고 반환한다.
* (용마루 경로는 추녀 연장 호출해야 종점이 처마변 위에 있어 분할점이 잡힌다 docs §9)
* @param {fabric.Object} roof - 대상 지붕 (roof.lines 사용)
@ -5521,6 +5522,10 @@ export const splitRoofLinesToInnerLines = (roof, innerLines, canvas, textMode) =
}
})
// 처마선 innerLine 이 외곽선을 전담하므로 roof 원본 외곽(stroke)은 숨긴다.
// (안 숨기면 처마선 삭제 시 roof 의 기본 stroke:'black'(usePolygon.js) 이 노출됨)
roof.set({ stroke: 'transparent' })
return innerLines
}

View File

@ -1286,9 +1286,6 @@ export const skeletonBuilder = (roofId, canvas, textMode) => {
// [docs §9-3] 추녀 연장 후 처마변(roof.lines)을 split → 편집 가능한 innerLine(hip/roofLine)으로 등록.
// 단순 우진각: 추녀가 처마 코너(변 끝점)에 닿아 분할점 없음 → 처마 4변 통짜. 복합 형상: 중간 접점에서 분할.
splitRoofLinesToInnerLines(roof, roof.innerLines, canvas, textMode)
// 처마선 innerLine 이 외곽선을 전담하므로 roof 원본 외곽(stroke)은 숨긴다.
// (안 숨기면 처마선 삭제 시 roof 의 black stroke 가 노출됨 — usePolygon.js 의 roof 기본 stroke:'black')
roof.set({ stroke: 'transparent' })
// 캔버스에 스켈레톤 상태 저장
if (!canvas.skeletonStates) {