[작업내용] :
- useEavesGableEdit.js 의 import 대상인 kerab-rule-checker.js 가 커밋되지 않아 dev 빌드가 '@/util/kerab-rule-checker' 모듈 해석에 실패하던 문제 수정
- 케라바 기하 불변식 체커(checkKerabRules) 파일을 저장소에 추가
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
[작업내용] :
- 마루(RG-1) hide 대신 canvas.remove + innerLines splice 로 실제 삭제
(LABEL-MAP·디버그 라벨이 visible 무시 → hide 는 검증에서 잔존)
- H-8 박스막음: 과길게 뻗은 끝점을 boxCorner 로 내려 H-7↔H-2 사이만
닫는 짧은 세로 roofLine 으로 보정 (\|/ 수렴형상 금지)
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
[작업내용] :
- splitRoofLinesToInnerLines 의 hasOverlapLine 가드를 축정렬 bbox 포함 → 공선+구간 덮음으로 교체
- 육각형 등 잘린 모서리의 짧은 수평/수직 처마변(bbox 한 축 두께 0)이 대각선 추녀 bbox 에
삼켜져 skip → 원본 외곽선 transparent 로 소실되던 false positive 제거
- 양 끝점이 모두 상대 선분 위(isPointOnLineNew)일 때만 overlap 인정 → 공선 아닌 추녀는 통과
- 변별/박공/한쪽흐름 경로 회귀 없음(직교 형상은 bbox 포함=공선 겹침이라 동작 불변)
- 설계 문서 §10 진단 결과·수정·회귀 분석 기록
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
[작업내용] :
- e17af8f4 가 색칠된 외벽선을 selectable:false 로 잠가, 지붕형상 저장 후 일반 상태에서 외벽선 클릭 선택이 막히던 회귀 수정
- useRoofShapeSetting(자동) / useRoofShapePassivitySetting(수동) 저장 시 외벽선 selectable:true 로 복원
- 드래그는 lockMovement(useCanvas 전역), 보조선 클릭 가로채기는 z-order(18abbeb9)로 이미 별도 차단되어 부작용 없음
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
切妻(게이블) 골짜기 변을 처마(eaves)로 전환 시:
- collinear 게이블벽(HIP) 제거 후 出幅(offset) surgical 반영
- 양 코너 45° 골짜기 힙 2개 생성, 첫 교차까지 raycast
- cleanupDangling: HIP dangler 만 제거, 마루(RIDGE)·VALLEY 절대 보존
- anchor 잃은 마루 끝점: 가로지르는 힙 있으면 절삭, 없으면 roofLine까지 확장
- 확장 마루가 힙 몸통 닿으면 힙 먼 끝 절삭(힙은 마루를 못 넘음)
- 새 힙이 기존 마루에 직격(hitKind===RIDGE)이면 반대편 Y 반사 힙 생성
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
- solveRectangleKerab: 4변 타입만으로 힙/마루 재생성(forward·revert 단일 공식)
- nGable=0 우진각·1 Y apex·1 CASE B 케라바·2 맞배 지원, 그 외 기존 maze 폴백
- hip attributes.extended=true 부여 → integrateExtensionLines merge 스킵 → split 4면 정상 할당
- outerLine bbox 기준 sideOf 수정(出幅 offset 좌표 불일치 해소)
- apex depth clamp min(L/2, oppDist) → R3-outside 방지
- detectKerabHipMarks·extendKerabHipsTo45 함수 추출(reclick·revert 45° 통합)
- KERAB-EXTHIP-COORD-CLEAN: orphan ext-hip 좌표 기반 재제거
- useRefFiles: 변환 API FileData 누락 시 에러 메시지 swalFire 안내
- kerab-offset-surgical: skipKerabHips 옵션(케라바 hip t-ratio 재계산 방지)
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>