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:
parent
87545e5df1
commit
53ecbcca0f
@ -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 하고 반환한다.
|
* 변별/용마루 경로 공용. innerLines 에 결과를 in-place push 하고 반환한다.
|
||||||
* (용마루 경로는 추녀 연장 후 호출해야 종점이 처마변 위에 있어 분할점이 잡힌다 — docs §9)
|
* (용마루 경로는 추녀 연장 후 호출해야 종점이 처마변 위에 있어 분할점이 잡힌다 — docs §9)
|
||||||
* @param {fabric.Object} roof - 대상 지붕 (roof.lines 사용)
|
* @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
|
return innerLines
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1286,9 +1286,6 @@ export const skeletonBuilder = (roofId, canvas, textMode) => {
|
|||||||
// [docs §9-3] 추녀 연장 후 처마변(roof.lines)을 split → 편집 가능한 innerLine(hip/roofLine)으로 등록.
|
// [docs §9-3] 추녀 연장 후 처마변(roof.lines)을 split → 편집 가능한 innerLine(hip/roofLine)으로 등록.
|
||||||
// 단순 우진각: 추녀가 처마 코너(변 끝점)에 닿아 분할점 없음 → 처마 4변 통짜. 복합 형상: 중간 접점에서 분할.
|
// 단순 우진각: 추녀가 처마 코너(변 끝점)에 닿아 분할점 없음 → 처마 4변 통짜. 복합 형상: 중간 접점에서 분할.
|
||||||
splitRoofLinesToInnerLines(roof, roof.innerLines, canvas, textMode)
|
splitRoofLinesToInnerLines(roof, roof.innerLines, canvas, textMode)
|
||||||
// 처마선 innerLine 이 외곽선을 전담하므로 roof 원본 외곽(stroke)은 숨긴다.
|
|
||||||
// (안 숨기면 처마선 삭제 시 roof 의 black stroke 가 노출됨 — usePolygon.js 의 roof 기본 stroke:'black')
|
|
||||||
roof.set({ stroke: 'transparent' })
|
|
||||||
|
|
||||||
// 캔버스에 스켈레톤 상태 저장
|
// 캔버스에 스켈레톤 상태 저장
|
||||||
if (!canvas.skeletonStates) {
|
if (!canvas.skeletonStates) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user