5713 Commits

Author SHA1 Message Date
e24f534d9b 발전시뮬레이션 팝업창 오픈 소스 및 메뉴 숨김처리 2026-06-16 09:23:12 +09:00
f9fb66cf27 Merge pull request 'dev' (#920) from dev into dev-deploy
Reviewed-on: #920
2026-06-15 18:11:52 +09:00
a6284ad3eb Merge pull request '발전시뮬레이션 팝업창 오픈 소스' (#919) from feature/jp_0615 into dev
Reviewed-on: #919
2026-06-15 18:04:05 +09:00
fd7bf4062d 발전시뮬레이션 팝업창 오픈 소스 2026-06-15 18:03:03 +09:00
e68d4cdd19 conflict 수정 2026-06-15 17:47:34 +09:00
bf3eb49047 Merge branch 'feature/roofline-edit' of https://git.hanasys.jp/qcast3/qcast-front into feature/roofline-edit2
# Conflicts:
#	src/hooks/useContextMenu.js
2026-06-15 17:47:14 +09:00
e1e6be28d1 지붕 라인 없는 경우 생성 안되도록 수정 2026-06-15 17:46:01 +09:00
f351a852e1 Merge pull request 'dev' (#918) from dev into dev-deploy
Reviewed-on: #918
2026-06-15 16:42:02 +09:00
a5ad6dd0e6 Merge pull request '발전시뮬레이션 팝업창 오픈 소스' (#917) from feature/jp_0615 into dev
Reviewed-on: #917
2026-06-15 16:41:24 +09:00
582e32bc02 발전시뮬레이션 팝업창 오픈 소스 2026-06-15 16:40:11 +09:00
576006fc28 Merge pull request 'dev' (#916) from dev into dev-deploy
Reviewed-on: #916
2026-06-15 16:05:07 +09:00
75b0df084b Merge branch 'dev' of https://git.hanasys.jp/qcast3/qcast-front into hotfix/dev_yscha 2026-06-15 16:04:00 +09:00
c6d6d9fa08 Merge pull request 'feature/jp_0615' (#915) from feature/jp_0615 into dev
Reviewed-on: #915
2026-06-15 16:03:02 +09:00
7423f7a05a 발전시뮬레이션 팝업창 오픈 소스 2026-06-15 16:01:26 +09:00
1e0124d9f2 [2294_5] 케라바 사각형 결정론적 솔버 + 처마전면 지붕면 할당 수정
- 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>
2026-06-15 16:01:11 +09:00
666e75244d 발전시뮬레이션 팝업창 오픈 소스 2026-06-15 15:59:50 +09:00
593c2c53ff 보조선 기준으로 지붕 나누기 추가 2026-06-15 15:16:58 +09:00
d0493287ec 보조선 기준으로 지붕 나누기 추가 2026-06-15 15:16:02 +09:00
8511c1915c local에서 한글세팅 2026-06-15 13:45:44 +09:00
591c828bcf Merge branch 'feature/roofline-edit' of https://git.hanasys.jp/qcast3/qcast-front into feature/roofline-edit2
# Conflicts:
#	src/hooks/roofcover/useRoofShapePassivitySetting.js
2026-06-15 13:18:21 +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
234b720b78 Merge branch 'dev' of https://git.hanasys.jp/qcast3/qcast-front into feature/redo-undo 2026-06-15 10:17:17 +09:00
96585240ef 오프셋 설정에 시 길이 반영 제대로 안되는 현상 수정 2026-06-12 18:29:17 +09:00
bf98f69145 [2294_4] 타입 박공→처마 우진각 지붕할당 4면 미생성 수정 — SK 격자 반-엣지 purge + startPoint 방어 동기화 2026-06-12 17:11:40 +09:00
932f6840c4 Merge pull request '[1189_4] 드래그 박스 모듈 Del 삭제 불가 수정 — roof 복수선택 시 discardActiveObject 차단 + module 우선 currentObject 설정' (#913) from dev into dev-deploy
Reviewed-on: #913
2026-06-12 16:42:18 +09:00
aa45a891bc [1189_4] 드래그 박스 모듈 Del 삭제 불가 수정 — roof 복수선택 시 discardActiveObject 차단 + module 우선 currentObject 설정 2026-06-12 16:40:00 +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
c72f3fef84 Merge pull request '[2294_3] TYPE 박공(切妻)→처마 완전 우진각(寄棟) 재구성 + inward 안쪽법선 보정' (#912) from dev into dev-deploy
Reviewed-on: #912
2026-06-12 14:24:58 +09:00
48fa507046 Merge branch 'dev' of https://git.hanasys.jp/qcast3/qcast-front into feature/redo-undo
# Conflicts:
#	src/hooks/module/useModule.js
#	src/hooks/roofcover/useEavesGableEdit.js
#	src/hooks/useCanvasEvent.js
2026-06-12 14:20:29 +09:00
158e90e169 [2294_3] TYPE 박공(切妻)→처마 완전 우진각(寄棟) 재구성 + inward 안쪽법선 보정
- applyTypeGableToEavesPattern inward 방향을 변의 폴리곤 안쪽 법선으로 도출
  (2회차 리버트 apex 폴리곤 밖 폭주 = roofLine 절삭 불변식 위반 수정)
- reconstructHipRoofRidgeIfComplete 신규: 양쪽 박공이 모두 처마가 되면
  X자 세로 마루 스텁을 버리고 힙 4개 절삭(R2/R3) + 가로 마루 1개(R1)로 재구성
- type-eaves 분기 최종 형상에 runKerabRuleCheck 추가

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-12 14:16:31 +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
1e64c1e0ca Merge pull request 'dev' (#910) from dev into dev-deploy
Reviewed-on: #910
2026-06-12 10:50:56 +09:00
6937934fc1 [1189_3] 모듈 기본설정 마우스 드래그 이동 비활성화 — 복수선택·Del 삭제는 유지 2026-06-12 10:48:51 +09:00
1cb039a741 [2294_2] 케라바→처마 전환(타입 라인변경) 힙 단일 직선 45° 연장으로 통일
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-12 09:27:55 +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
126789ef46 [골짜기라인] 골짜기→케라바 내부확장라인(rLine) 정지점 절반 규칙으로 통일
등구배 지붕에서 마루는 양쪽 처마에서 등거리(절반) — 이 불변식을 적용.
기존 ridge-stop 우선/없으면 wall 끝까지 휴리스틱은 방향(가로/세로)에 따라
결과가 들쭉날쭉했다. (start + wallHit) / 2 중점으로 고정, 방향 무관 통일.
wLine(wallBase) 도 vEnd(절반) 파생으로 '-extend' 라인 제거.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-06-11 15:39:28 +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
e3c092a6b4 저장 후 보조선으로 나뉘어지지 않는 현상 수정 2026-06-11 13:03:18 +09:00
1db206fe34 [2294_1] 케라바 出幅(출폭) 토글 라인 재계산 핸들러 분리 + 규칙 검증 추가
골짜기(케라바 패턴)·일반 라인을 독립 핸들러로 분리해 상호 간섭(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>
2026-06-10 18:05:36 +09:00
83107a801d 지붕면 할당 로직 수정 2026-06-10 16:50:46 +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
424e35e826 Merge pull request 'dev' (#908) from dev into dev-deploy
Reviewed-on: #908
2026-06-10 13:14:55 +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
7baa3d1e7a Merge pull request 'dev' (#906) from dev into dev-deploy
Reviewed-on: #906
2026-06-09 16:49:35 +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
60e3bc0e16 Merge pull request 'dev' (#904) from dev into dev-deploy
Reviewed-on: #904
2026-06-09 16:47:36 +09:00