1.4 KiB
1.4 KiB
| name | description | type |
|---|---|---|
| auxiliaryLine integrateExtensionLines 제외 | 사용자가 그린 auxiliaryLine 은 ext 와 collinear 병합 대상에서 제외해야 split 정상 동작 | project |
useRoofAllocationSetting.js integrateExtensionLines sk-finder 에
if (sl.name === 'auxiliaryLine') return false 가드 필요.
Why:
- integrateExtensionLines 는 SK auto-build 시 만들어지는 hip stub + extensionLine 의 1:1 통합용. 두 라인이 코너 끝점 공유 + collinear 일 때 단일 mergedLine 으로 합침.
- 사용자가 그리는 auxiliaryLine 은 CanvasFrame.jsx 102-107 에서 이미
roof.innerLines로 push 됨 (완전한 분할선 상태). - aux 가 ext 와 코너 끝점 공유 + 45° collinear 케이스에 sk-finder 가 aux 를 병합 후보로 잡음 → ext+aux 가 하나의 mergedLine 으로 합쳐지면서 코너 끝점 소실
- 예) ext (992.1,394.4)→(1042.1,444.4) + aux (1042.1,444.4)→(792.1,194.4) = mergedLine (992.1,394.4)→(792.1,194.4) (코너 1042.1,444.4 손실)
- 결과: splitPolygonWithLines 가 "경로 존재하나 3개 미만 좌표" 로 실패 → alloc 안 됨
How to apply:
- aux 는 이미 완성된 분할선이므로 ext 와 합치면 안 됨.
- sk 후보 필터에서
sl.name === 'auxiliaryLine'를 명시적으로 제외. - ext 와 SK auto-build hip stub 간 1:1 통합 로직만 살리고 aux 는 그대로 split 에 사용.