proceedAnalysis 잔여 병합 same-direction else 분기의 45° hip 판정 버그 수정.
points 는 점 객체 2개 배열인데 points[0]-points[2](없는 인덱스, 객체 뺄셈→NaN)를
points[0].x/y - points[1].x/y 로 교정 → 대각 hip 정상 생성 확인.
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
작업내용:
- equalizeSymmetricHips(_apply): const __raw 주석 복원 (라인 6736)
- equalizeParallelEaveLabels(_apply): const __raw 주석 복원 (라인 6808)
- 원인: 이전 ship Python 정리 스크립트의 const __ 정규식이 디버그 변수가 아닌 활성 헬퍼까지 주석처리
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
[작업내용] :
- drawGableRoof 후처리: 평행 두 마루가 수직축으로 겹치면(골짜기)
짧은 마루 위치에 겹침구간 박스라인(kerabValleyOverlapLine, 라벨 B) 생성
- drawValleyBoxLine 헬퍼 추가 — 마루 삭제해도 박스 경계 잔존(박스라인+마루)
- 진단 로그([GABLE-H8-*][VALLEY-BOX-FILL]) 주석화 + logger import 제거
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
[작업내용] :
- useEavesGableEdit.js 의 import 대상인 kerab-rule-checker.js 가 커밋되지 않아 dev 빌드가 '@/util/kerab-rule-checker' 모듈 해석에 실패하던 문제 수정
- 케라바 기하 불변식 체커(checkKerabRules) 파일을 저장소에 추가
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>
- 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>
[작업내용] :
- 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>
골짜기(케라바 패턴)·일반 라인을 독립 핸들러로 분리해 상호 간섭(whack-a-mole) 차단.
일반 라인은 절대 재계산(apex 불변, roofLine-hit 끝점만 재교차) + apex junction degree≥1 임계.
KERAB-RULE-CHECK(R1~R4) forward/revert 검증, RIDGE-DIAG 자연 마루 길이 불변 감시 추가.
REVERT/VALLEY-EXT 끝점 공유 가드로 게이블 hip 확장·길이 0 붕괴 방지.
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 추가
closing edge 의 FP drift 누적(15mm/576mm ≈ 1.5°) 으로 가로/세로 라인이
기울어 보이는 문제. snapNearAxisEdges(angleTolDeg=2) 각도 기반 스냅을
4종 폴리곤(trestle/dormerTrestle/trestlePolygon/moduleSetupSurface) 에 적용.
- QPolygon.initialize name 가드: load/new 대부분 케이스 커버
- handleOuterlinesTest 끝 snap: trestlePolygon 은 makePolygon 후 .set 이라 별도
#1956 (vertical tilt, 2026-04-08) 의 horizontal 형제 케이스.