5163 Commits

Author SHA1 Message Date
Jaeyoung Lee
509626e644 fix: 지붕형상 저장 후 일반 상태 외벽선 클릭 선택 복원
[작업내용] :
- e17af8f4 가 색칠된 외벽선을 selectable:false 로 잠가, 지붕형상 저장 후 일반 상태에서 외벽선 클릭 선택이 막히던 회귀 수정
- useRoofShapeSetting(자동) / useRoofShapePassivitySetting(수동) 저장 시 외벽선 selectable:true 로 복원
- 드래그는 lockMovement(useCanvas 전역), 보조선 클릭 가로채기는 z-order(18abbeb9)로 이미 별도 차단되어 부작용 없음

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 15:40:30 +09:00
ee390de934 한쪽 흐름의 경우 추가 2026-06-16 14:06:19 +09:00
a13c4c4ac6 복잡한 지붕면 대응 2026-06-16 10:05:01 +09:00
e1e6be28d1 지붕 라인 없는 경우 생성 안되도록 수정 2026-06-15 17:46:01 +09:00
593c2c53ff 보조선 기준으로 지붕 나누기 추가 2026-06-15 15:16:58 +09:00
Jaeyoung Lee
07f787670d feat: 한쪽흐름(shed) 외곽 처마선 편집 + 처마선 치수 중복 정리
[작업내용] :
- splitRoofLinesToInnerLines: degreeOf 옵션 추가 — 한쪽흐름 경사변(gable) plane/cos 실제길이 보정
- drawShedRoof: 외곽 처마선을 innerLine 으로 split(degreeOf 주입)해 편집 가능화
- removeRoofLengthText 추가: 처마선 innerLine 이 치수 전담 → roof 원본 변 치수(lengthText) 제거 (박공/split 공용)
- drawGableRoof: removeRoofLengthText 호출로 박공 roof 원본 치수 중복 제거
- commonDeleteText: 보조선(QLine) 삭제 시 parentId 매칭으로 lengthText 동반 제거 (치수 잔존 방지)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 13:10:10 +09:00
Jaeyoung Lee
0944aa3a8c fix: ErrorBoundary fallback 렌더 시 errorInfo null 크래시 방지
[작업내용] :
- getDerivedStateFromError 가 errorInfo 를 채우지 않아 첫 fallback 렌더에서 this.state.errorInfo 가 null
- componentStack 접근에 옵셔널 체이닝(?.) 추가 — componentDidCatch 의 setState 후 정상 표시
- ErrorBoundary 가 자기 자신을 크래시시켜 원본 에러를 가리던 이중 에러 해소

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 13:09:56 +09:00
Jaeyoung Lee
fd83fa3aa0 fix: 박공(gable) 지붕도 처마선 외곽 전담 시 roof 원본 외곽선 숨김
[작업내용] :
- 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>
2026-06-12 14:57:38 +09:00
Jaeyoung Lee
53ecbcca0f 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>
2026-06-12 14:45:12 +09:00
Jaeyoung Lee
87545e5df1 feat: 용마루(skeleton) 지붕 외곽 처마선 편집 기능
[작업내용] :
- 추녀 연장(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>
2026-06-12 13:58:15 +09:00
Jaeyoung Lee
1bf5f45b63 refactor: 처마변 split 로직 splitRoofLinesToInnerLines 공용 함수 추출
[작업내용] :
- drawRoofByAttribute 의 인라인 split 블록을 splitRoofLinesToInnerLines 공용 함수로 추출 (변별/용마루 경로 공용)
- 분할점 거리순 정렬 버그 수정 (a[1] → a.distance — 분할점 2개 이상에서 정렬이 no-op 이던 문제)
- 분할점 끝점 판정을 almostEqual(1e-10) → 끝점과의 유클리드 거리 1px 이내 제외로 변경
  (SK 추녀 연장의 부동소수 오차 흡수, 0 길이 조각 생성 방지)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 13:58:08 +09:00
Jaeyoung Lee
18abbeb902 fix: offset 0인 변에서 색칠된 외벽선이 보조선 선택을 가로채던 문제 수정
[작업내용] :
- 지붕형상 저장 시 외벽선을 bringToFront(맨 앞) 대신 WALL/ROOF 폴리곤 바로 위 인덱스에 삽입
- offset 0이면 보조선이 외벽선과 같은 좌표에 그려지는데, 외벽선이 맨 위에 있으면
  클릭을 가로채(selectable:false라도 evented는 유지됨) 보조선 선택이 불가능했음
- z-order를 폴리곤 < 외벽선 < 보조선·텍스트로 유지해 색 표시와 보조선 클릭을 양립

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 18:09:31 +09:00
Jaeyoung Lee
7900b2e67b fix: removePitchText가 경사 텍스트를 삭제하지 못하던 버그 수정
[작업내용] :
- canvas.remove()에 배열을 통째로 넘겨 Fabric이 무시(silent no-op)하던 것을 spread로 개별 전달하도록 수정
- addPitchText의 중복 방지가 무력화되어 같은 자리에 경사/출폭 텍스트가 겹겹이 쌓이던 문제 해결

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 14:52:19 +09:00
Jaeyoung Lee
e17af8f4b4 fix: 지붕형상 설정/수동설정 외벽선 표시·선택 상태 정리
[작업내용] :
- 지붕형상 저장 후 색칠된 외벽선 선택·드래그 차단, 변별로 설정 재진입 시 선택 복원
- 수동설정 저장 시에도 자동설정과 동일하게 외벽선을 타입별 색상으로 표시
- 두 모달을 진입 시 스냅샷 → 저장 시 커밋 / 저장 없이 닫으면 롤백 구조로 변경
  (팝업을 열었다 닫기만 해도 외벽선이 숨겨지고 지붕면이 삭제되던 문제 수정)
- 롤백 시 WALL 폴리곤은 원본 객체를 원래 z-순서에 재삽입
  (재생성 시 최상단에 올라가 보조선 클릭을 가로채던 문제 방지)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 13:31:25 +09:00
54e6a31dcf [1189_2] 手動回路割り当て(수동 회로 할당) 화면에서 드래그 박스 복수선택 활성화
작업내용 :
- PassivityCircuitAllocation.jsx: canvas.selection=true (화면 한정) + selection:created/updated 이벤트로 handleBoxSelect 등록
- handleBoxSelect: activeSelection 의 모듈만 targetModules 에 가산 병합, 이후 discard (단일 클릭 토글 보존)
- cleanup: 이벤트 해제 + canvas.selection 복원 + discardActiveObject

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-10 13:10:54 +09:00
f2a444ffb7 [1189_1] 모듈 복수선택(드래그 박스/Shift) + 단일 마우스 드래그 이동 — 手動配置 활성 시 드래그 모드 중지
- canvas.selection: 모듈 기본설정 + 手動配置 비활성 조건에서만 true
- refineModuleSelection: 비모듈 혼합 선택 시 모듈만 재구성, 단일/복수 이동잠금 해제
- commitModuleDragMove: 드래그 완료 후 지붕면 이탈/겹침 검증, 위반 시 시작 위치 복원
- modulesRemove: 복수선택 일괄 삭제 지원, 회로 연결 시 전체 차단
- QContextMenu: 2개 이상 선택 시 컨텍스트 메뉴 차단

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-10 11:25:05 +09:00
6099dcbd5d Merge branch 'dev' of https://git.hanasys.jp/qcast3/qcast-front into hotfix/dev_yscha 2026-06-09 16:48:09 +09:00
26dbe35ea4 [2283-2] 자동배치(自動配置) 비선택면 모듈 보존 — 選択面のみ再配置、未選択面はそのまま維持 2026-06-09 16:01:48 +09:00
Jaeyoung Lee
946088ddc2 Merge branch 'dev' of https://git.hanasys.jp/qcast3/qcast-front into feature/roofline-edit 2026-06-09 14:53:53 +09:00
567fa49d61 [2283-1] 자동배치(自動配置) 다지붕 선택 시 북면 열 감소 수정 — 대칭 보정 비대칭 지붕 제외 가드 추가
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-09 14:53:07 +09:00
Jaeyoung Lee
5c02d1d45c docs: roofline 편집 설계에 박공·한쪽흐름 4경로 분석 추가 — 한쪽흐름 degree 전략 주입(§8)
- §7 4경로(변별/박공/용마루/한쪽흐름) 외곽 지붕선 처리·편집 가능 여부 종합
- §8 한쪽흐름 경사변 plane≠actual 대응: splitRoofLinesToInnerLines degreeOf 콜백 주입
- §6 YAGNI 박공/한쪽흐름 항목을 범위 편입으로 갱신

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 14:49:56 +09:00
6969e6620e [2234] 수동 1매(手動 1枚) 단부(端部) 배치 시 지붕 밖(屋根外) 오판 수정 — checkModuleDisjointSurface 허용오차(spare) 0→0.5
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-09 10:56:21 +09:00
af954728d8 [2234] 手動 1枚 端部 배치 屋根外 오판 수정 — checkModuleDisjointSurface spare 0→0.5
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-09 09:41:33 +09:00
98b9ff8da0 [2209] PCS Single-P 비병설 복수 등록 차단 — 체크박스 전환 시 selectedModels 리셋 2026-06-08 16:48:30 +09:00
cc9aa238f2 [2250] 배치면 サイズ変更 후 치수 라벨 stale 수정 — planeSize 재계산 + 라벨 재생성 2026-06-08 16:01:34 +09:00
7a65fa734c Merge branch 'dev' of https://git.hanasys.jp/qcast3/qcast-front into hotfix/dev_yscha 2026-06-08 15:53:12 +09:00
0980f6b0ce [2207] 이동/복사 모달 保存 버튼 문구 → 移動/コピー — PanelEdit type 분기 + i18n 키 신규 2026-06-08 15:50:46 +09:00
49fe0e04b0 Merge pull request '[2243] 配置面 입력치수 라벨 변질 수정 — planeSize 2순위/2단계 ±20mm 흡착 제거, 끝점 공유변만 상속' (#893) from hotfix/dev_yscha into dev
Reviewed-on: #893
2026-06-08 15:31:51 +09:00
dc7a2ea956 [2243] 配置面 입력치수 라벨 변질 수정 — planeSize 2순위/2단계 ±20mm 흡착 제거, 끝점 공유변만 상속
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-08 15:27:22 +09:00
5e557708f1 [server] PM2 wrapper exec→spawn 패치 — stdio:inherit + exit/error 감지 (운영서버 동기화) 2026-06-08 11:27:34 +09:00
8c2edf05e7 [2272] 한쪽흐름 처마 offset 반전 수정 — margin/padding 판정을 면적비교로 교체
골짜기(凹凸) 형상에서 offset=0 변(케라바·shed) 코너가 원본 경계에 남고
inPolygon 의 경계점 nudge 비대칭으로 inside 오판 → padding 오선택 → 처마 반전.
winding·골짜기 수에 무관한 shoelace 면적 절대값 비교로 판정 교체.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-05 17:53:22 +09:00
02062ee4d1 [1529] 시공법 버튼 constTp 매핑 — WORK_LV_ID_-2(標準施工Ⅱ) 신규 항목 대응 + 인덱스 밀림 방지
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-05 15:51:46 +09:00
b9fb769e74 [출폭] 처마 출폭변경 시 hip 내부라인 끝점 불변 룰 적용 — CORNER-SHORTCUT/SHRINK-TRIM skipInnerLines + 45° ray-cast 확장
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-05 13:43:02 +09:00
ddf7cb9f13 [1423] 설계가져오기 T01 전용 + 2차점 강제 select 반영 — No data/네트워크 에러 분리 + vExt cascade 평행이동 2026-06-05 11:00:29 +09:00
8192b0b07f [0000] 케라바 라인이동 후 반대쪽 실행 버그 수정 — baseLine 기하학적 매칭 + KERAB-SKIP 가드
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 17:48:44 +09:00
9565764912 [0000] 케라바 kLine — wLine 이동 후 baseLine 끝점(t1/t2) 기준으로 foot 계산
wLine 이동 후 케라바 변경 시 선택된 target 은 이동 전 wallLine 좌표를 가짐.
wall.baseLines 에서 wallId 매칭으로 이동된 실제 끝점(t1/t2)을 찾아
kLine foot 계산 기준으로 사용 → 이상한 대각선 수정.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 17:19:53 +09:00
a8d59873b7 [1961] 평행 처마 쌍 라벨 통일 — OVER_EPS 1mm 클램프 보정 equalizeParallelEaveLabels
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-04 17:01:11 +09:00
df1a2d6fe6 [2294] 케라바 골짜기 할당 — 밴드 dedup + fold 대각선 제거 (변 연장 흡수)
작업내용 :
- 밴드 이중 생성 제거: 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>
2026-06-04 15:37:36 +09:00
c2d8aeb572 [2089] useSwal alert html 지원 + 저구배 경고 줄바꿈 수정
- useSwal alert 분기에 html 옵션 지원 추가 (html 있으면 html, 없으면 text)
- roof-pitch-warning: text → html + \n을 <br>로 치환하여 줄바꿈 렌더링
- ja.json: 構造物 → 架台 용어 수정 + \n 추가
- ko.json: 문구 다듬기 + \n 추가
2026-06-04 09:46:47 +09:00
8ef0810058 [2294] 케라바 출폭 surgical — vExt cascade + corner snap + ExtRidge 연결 2026-06-02 16:58:54 +09:00
44401a3cc1 Merge branch 'dev' of https://git.hanasys.jp/qcast3/qcast-front into hotfix/dev_yscha 2026-06-02 16:57:36 +09:00
562bc79beb [배치면초기설정] 저장값 우선 반영 — basicSetting 덮어쓰기 제거 + inputMode 동기화 2026-06-02 16:52:42 +09:00
Jaeyoung Lee
4644269852 docs: 지붕 생성 로직 분석 메모리 문서 추가
qpolygon-utils 지붕 생성 구조 / drawRoofByAttribute 내부 구조 /
skeleton-utils 용마루 두 경로 차이 분석. roofline-edit 구현 시 reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 09:52:17 +09:00
Jaeyoung Lee
b28397c91a docs: 용마루(skeleton) 경로 외곽 지붕선 편집 기능 설계 문서 추가
drawSkeletonRidgeRoof 경로에서 숨겨진 외곽 지붕선을 변별 경로와 동일한
selectable innerLine으로 생성해 기존 select+우클릭 편집 기능을 재사용하는 설계.
splitRoofLinesToInnerLines 공용 추출 + 정렬버그 수정 방향 포함.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 09:45:20 +09:00
141afa7a36 [2294] 케라바 출폭 surgical — skLine 절삭/복원 + 패턴 segment 매핑 2026-06-01 13:53:05 +09:00
b8ea9aba78 Merge branch 'dev' of https://git.hanasys.jp/qcast3/qcast-front into hotfix/dev_yscha 2026-05-29 16:07:22 +09:00
e32d2dc3a5 [2173] 케라바 vExt — stop·V apex trim·overlap 머지·offset bbox 2026-05-29 16:02:51 +09:00
577ca47b5e 키보드 이벤트 제거 2026-05-28 16:48:36 +09:00
23dafe3b18 [2173] valleyExt — trim·cascade·ridge-stop 다 비활성 (확장만, 별도 룰 후속) 2026-05-28 13:51:07 +09:00
036c283e0c [2173] valleyExt Phase 1/2 helper 추출 + wallBase 독립 ray + ridge-stop 룰 2026-05-28 11:10:59 +09:00