[작업내용] :
- getDerivedStateFromError 가 errorInfo 를 채우지 않아 첫 fallback 렌더에서 this.state.errorInfo 가 null
- componentStack 접근에 옵셔널 체이닝(?.) 추가 — componentDidCatch 의 setState 후 정상 표시
- ErrorBoundary 가 자기 자신을 크래시시켜 원본 에러를 가리던 이중 에러 해소
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
[작업내용] :
- drawGableRoof 가 처마선 innerLine 생성(roof.innerLines.push) 후 roof 원본 외곽(stroke)을 transparent 로 숨김
- 박공은 split 공용 함수를 거치지 않으므로 drawGableRoof 내에서 직접 처리
- 처마선 삭제 시 roof 기본 stroke:'black' 이 노출되던 문제 해결 (변별/용마루와 동일 동작)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
[작업내용] :
- splitRoofLinesToInnerLines 가 처마변 innerLine화 후 roof 원본 외곽(stroke)을 transparent 로 숨기도록 통합
- 변별/용마루 양 경로 공통 적용 — 처마선 삭제 시 roof 기본 stroke:'black' 이 노출되던 문제 해결
- 용마루 호출부(skeletonBuilder)의 개별 roof.set 제거 (split 함수가 담당)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
[작업내용] :
- 추녀 연장(drawBaselineToRooflineHelpers) 후 splitRoofLinesToInnerLines 호출 → 처마변을 편집 가능한 innerLine(hip/roofLine)으로 등록
- 처마선 innerLine 이 외곽선을 전담하므로 roof 원본 외곽(stroke) 숨김 처리
- 설계 문서 정정: 대상 브랜치 roofline-edit, §4 리스크1 검증 완료, §9 측정 시점 정정
(추녀 연장 후 종점이 처마변 위에 정합 → split 은 연장 다음에 호출)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
[작업내용] :
- 지붕형상 저장 시 외벽선을 bringToFront(맨 앞) 대신 WALL/ROOF 폴리곤 바로 위 인덱스에 삽입
- offset 0이면 보조선이 외벽선과 같은 좌표에 그려지는데, 외벽선이 맨 위에 있으면
클릭을 가로채(selectable:false라도 evented는 유지됨) 보조선 선택이 불가능했음
- z-order를 폴리곤 < 외벽선 < 보조선·텍스트로 유지해 색 표시와 보조선 클릭을 양립
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
[작업내용] :
- canvas.remove()에 배열을 통째로 넘겨 Fabric이 무시(silent no-op)하던 것을 spread로 개별 전달하도록 수정
- addPitchText의 중복 방지가 무력화되어 같은 자리에 경사/출폭 텍스트가 겹겹이 쌓이던 문제 해결
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
[작업내용] :
- 지붕형상 저장 후 색칠된 외벽선 선택·드래그 차단, 변별로 설정 재진입 시 선택 복원
- 수동설정 저장 시에도 자동설정과 동일하게 외벽선을 타입별 색상으로 표시
- 두 모달을 진입 시 스냅샷 → 저장 시 커밋 / 저장 없이 닫으면 롤백 구조로 변경
(팝업을 열었다 닫기만 해도 외벽선이 숨겨지고 지붕면이 삭제되던 문제 수정)
- 롤백 시 WALL 폴리곤은 원본 객체를 원래 z-순서에 재삽입
(재생성 시 최상단에 올라가 보조선 클릭을 가로채던 문제 방지)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- canvas.selection: 모듈 기본설정 + 手動配置 비활성 조건에서만 true
- refineModuleSelection: 비모듈 혼합 선택 시 모듈만 재구성, 단일/복수 이동잠금 해제
- commitModuleDragMove: 드래그 완료 후 지붕면 이탈/겹침 검증, 위반 시 시작 위치 복원
- modulesRemove: 복수선택 일괄 삭제 지원, 회로 연결 시 전체 차단
- QContextMenu: 2개 이상 선택 시 컨텍스트 메뉴 차단
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
- §7 4경로(변별/박공/용마루/한쪽흐름) 외곽 지붕선 처리·편집 가능 여부 종합
- §8 한쪽흐름 경사변 plane≠actual 대응: splitRoofLinesToInnerLines degreeOf 콜백 주입
- §6 YAGNI 박공/한쪽흐름 항목을 범위 편입으로 갱신
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
wLine 이동 후 케라바 변경 시 선택된 target 은 이동 전 wallLine 좌표를 가짐.
wall.baseLines 에서 wallId 매칭으로 이동된 실제 끝점(t1/t2)을 찾아
kLine foot 계산 기준으로 사용 → 이상한 대각선 수정.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
작업내용 :
- 밴드 이중 생성 제거: buildOverlapLine(케라바 토글) + RECALC 중복 → RECALC 전 기존 kerabValleyOverlapLine 제거로 단일 소스 통일
- ladder → 단일 quad 밴드: V1+3변(connector/wall)만 생성, 내부 분할 제거
- 밴드 식별 ov≥2: split 후 V1 edge가 lineName 유실 → overlap-typed 변 2개 이상인 sub-roof를 밴드로 식별
- fold 방식 교체: detour 우회 → V1 전체를 가진 면(F-3)에 OV 외곽경로로 변 연장 흡수. 대각선 제거, 면적 보존 검증 추가
- vExt split(Option A): ridge 교차점에서 vExt를 분할해 RG-2를 할당 그래프에 연결
- QPolygon: ROOF-FACE-DIAG 디버그 라벨 + debugCapture 덤프 추가 (local 가드)
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
- useSwal alert 분기에 html 옵션 지원 추가 (html 있으면 html, 없으면 text)
- roof-pitch-warning: text → html + \n을 <br>로 치환하여 줄바꿈 렌더링
- ja.json: 構造物 → 架台 용어 수정 + \n 추가
- ko.json: 문구 다듬기 + \n 추가
qpolygon-utils 지붕 생성 구조 / drawRoofByAttribute 내부 구조 /
skeleton-utils 용마루 두 경로 차이 분석. roofline-edit 구현 시 reference.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
drawSkeletonRidgeRoof 경로에서 숨겨진 외곽 지붕선을 변별 경로와 동일한
selectable innerLine으로 생성해 기존 select+우클릭 편집 기능을 재사용하는 설계.
splitRoofLinesToInnerLines 공용 추출 + 정렬버그 수정 방향 포함.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>