Commit Graph
5 Commits
Author SHA1 Message Date
eomsangdonandClaude Fable 5 a71727e004 feat(B05): 메인 패널 리사이즈 시 종단·테이블·유토곡선 비례 연동
메인 패널을 끌면 3영역이 드래그 시작 시점 비율대로 같이 늘고 준다
(2026-08-06 사용자 확정). 롤백 기준: 직전 안정판 d8723f4.

- Panel: pointerdown에서 3영역 실측 스냅샷(mainDragRef), 캐스케이드에
  메인 드래그 분기 — 비례 배분 + 최소(100/160/140) 고정 후 남은 영역끼리
  재배분(최대 3회 수렴). 서브패널 상한(75%/80%)은 안전상 유지
- 손 떼면 결과 높이를 서브패널 저장값으로 확정(commitHeight: 리사이저와
  같은 CSS 변수+세션 기록) — 이후 redraw 판정 기준이 되어 멱등성 유지
- MassHaul syncHandle() 신설 — 드래그 중 손잡이가 인라인 높이 위 경계 추종

실측 테스트: 확대 시 3영역 동일 배율(×1.41), 축소 시 최소 걸린 영역부터
정지, 손 뗀 뒤·redraw 후 고정, 서브패널 개별 드래그·밀어올림 보존,
콘솔 에러 0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 17:23:21 +09:00
eomsangdonandClaude Fable 5 d8723f4208 fix(B05): 하단 패널 리사이즈 튐·자동 확대 근절 — 캐스케이드 멱등화
원인 4개(2026-08-06 분석) 일괄 수정:
1. applyHeightCascade가 임시 축소 반영된 offsetHeight로 판정해 호출마다
   줄임↔풀림 진동 + 풀린 호출의 deficit가 메인 패널을 멋대로 확대.
   → 판정 기준을 저장 높이(desiredHeight 신설: 리사이저 CSS 변수/기본값)로
   전환해 멱등화. 축소 비율이 budget에 따라 연속 변화해 스냅 없음
2. grow 상한(window 92%)이 리사이저 max(부모 90%)보다 높아 자동 확대 후
   손잡이를 잡는 순간 clamp 급락 → 상한을 같은 식으로 통일
3. 서브패널 드래그가 매 프레임 전체 draw(차트·테이블 재생성)로 덜컹
   → 메인 드래그와 같은 경량 동기화(subPanelChanged 분기), 손 뗀 뒤
   전체 재구성 1회(clearDragFlags 120ms 예약)
4. pointerup 직후 지연 draw가 드래그 보호 해제 상태로 grow 발동
   → mainDragCooldown: 손 뗀 뒤 첫 전체 draw까지 grow 금지

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 16:47:57 +09:00
eomsangdonandClaude Fable 5 69aed9d26c feat(ui): 구조물 폼 빈칸 상태·사이드 액션 고정·하단 패널 높이 캐스케이드
- 구조물 종류 드롭다운에 빈칸 항목 — 초기·리셋 상태는 빈칸이고 하위 옵션 전체
  숨김, 미선택이면 추가 불가(2026-08-05 사용자 지시)
- 사이드 패널 최하단 고정 액션 줄 공용 클래스(ui-sidebar-actions): 계산·확정
  버튼이 스크롤에서 제외되고 불투명 배경이 지나가는 내용을 가림.
  B04(확정·초기화)/B05(계산·확정)/B06(재계산·저장·확정) 적용, B07은 기존
  자체 sticky 유지
- 하단 패널 높이 캐스케이드: 아래로 끌면 종단 먼저 최소(100px)까지 →
  테이블·유토곡선이 같이 비례 축소(각자 최소 140/160px, 인라인 임시 축소라
  다시 키우면 원래 높이 복귀) → 셋 다 최소면 리사이저 동적 하한이 차단.
  공용 리사이저 min을 함수 지원으로 확장. 반대로 서브패널 펼침으로 부족하면
  메인 패널을 키움(기존 로직 유지)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 19:44:16 +09:00
eomsangdonandClaude Fable 5 75232b9f73 fix(B05): 3D 선택 유지·구조물 폼 규칙·패널 손잡이 정렬·종단 최소높이 확보
- 3D 빈 공간 클릭(회전 드래그 포함)으로 측점 선택이 풀리지 않게 — 해제는
  그래프·사이드 패널에서만 (3D 영역 한정, 2026-08-05 사용자 지시)
- 구조물 폼: 편집 중 타입 변경 시 신규 추가로 전환(입력값 유지),
  자동 배관(origin=pipe)은 타입 잠금(관종·직경만 변경 가능), 리셋 시 폼 초기화
- 접힌 서브패널 손잡이는 열린 패널의 위 경계 수평선에 일렬 배치
  (테이블 접힘+유토 펼침 시 유토곡선 상단)
- 종단 그래프 최소높이(100px) 부족 시 메인 하단 패널 높이를 자동 확장
  (뷰포트 92% 상한) — 서브패널 펼침으로 종단이 뒤로 넘어가는 역전 방지

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 19:21:48 +09:00
eomsangdonandClaude Fable 5 3d5e8988c0 feat(B05): 구조물 드롭다운·관경 자동지정·우클릭/마킹·하단 패널 개편 (계획서 Phase 3~5)
- 구조물 배치 폼: 종류 드롭다운(배관/기성막이/대피로/기타) + 관종·직경/폭/이름
  하위 옵션. 목록·기본값은 config_frontend(정본 config_system.py 미러) 관리
- 관경 자동 지정: 기본 D800, 배수 유효직경 초과 시 바로 위 규격.
  수동 변경(userSized)은 재계산에도 유지. 소구경 리스트 유지
- 종단·배수유역도 우클릭 메뉴에 기성막이/대피로/기타 추가 항목
- 유토곡선·테이블 영역 브라우저 기본 우클릭 메뉴 차단
- 측점 선택 시 배수유역도 계획선 위 다이아몬드 마킹(유역 없는 구조물 포함)
- 3D 선택 마킹: 수직 핀(기둥+역원뿔, depthTest off) — 원형 표기 지양
- 테이블을 유토곡선과 같은 바닥 고정 오버레이 서브패널로 개편.
  접힘 손잡이 일렬(좌 테이블/우 유토곡선), 순서 종단도-테이블-유토곡선
- 테이블 행제목 우측 정렬+좌측 여백, 종단·유토곡선 Y축 눈금 10-13px

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 18:41:55 +09:00