
eomsangdonandClaude Opus 5
3651ad9875
feat(B05): 종단 계획선 전체 측점 폴리라인 전환 + 직선화·쉬프트·undo/redo 신설
2026-09-02 사용자 지시 9건 반영. 화면 실조작 검증은 다음 세션 몫 (사용자 지시로
코딩까지만 진행).
1. 초기 계획선 = 전체 측점 폴리라인 — `design_ground_following_profile()` 신설.
모든 측점을 변화점으로 잡고 계획고 = 원지반고, 라운드는 R을 지정한 자리에만
(`build_curves(only_explicit=)`·`build_alignment(only_explicit_curves=)`).
basis `ground_polyline`. 관 정착 선형은 폴백으로 내림.
2. 구간 쉬프트(⬆⬇) 삭제.
3. [직선화] 신설 — `B05_Profile_UI_Profile_Straighten.ts`. 두 측점의 라운드에 탄젠트한
직선으로 대체하고 사이 라운드 삭제. 직선 틸팅 시 가운데 라운드 + 양측 탄젠트 재구성.
4. [쉬프트] 신설 — 직선 구간을 기하에서 되읽어(`detectStraightRun`) 복수 선택,
최외곽 라운드 중심 기준 상·하 평행이동.
5. 방향키 조작 — 상하 0.1m 계획고, 좌우 0.1m 누가거리(구조물·비정규 측점 한정).
6. undo/redo 신설 — B05·B06 조작 세션 키 묶음 스냅샷(`_Profile_History.ts`).
버튼은 요약줄 맨 앞(최대 기울기 좌측), 21x17px. Ctrl+Z / Ctrl+Shift+Z.
7. 종단 요약줄의 횡단배수 최소고 표시 삭제(산식·편집 차단은 유지).
8. [편집 되돌리기] 버튼 삭제 — undo/redo로 대체.
9. 지형 구분 기본값 특수지형 — 패널 셀렉트와 백엔드 기본값(스키마·체인 폴백) 일치.
700줄 제한 — 패널을 `_Profile_Panel_Tools` · `_Profile_Preview` 로 분리하고 측점↔구조물
짝짓기를 `_Profile_Structures` 로 이관(842줄 → 696줄).
검증: tsc --noEmit 오류 0, ruff format/check 통과,
pytest tmp/tests/ -q → 366 passed / 14 skipped / 0 failed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-02 19:30:16 +09:00
..
2026-09-02 18:03:18 +09:00
2026-08-29 11:15:29 +09:00
2026-08-08 10:03:11 +09:00
2026-08-08 10:03:11 +09:00
2026-09-02 19:30:16 +09:00
2026-09-02 19:30:16 +09:00
2026-08-08 10:03:11 +09:00
2026-09-02 19:30:16 +09:00
2026-09-02 16:15:25 +09:00
2026-09-02 16:15:25 +09:00
2026-08-28 08:38:58 +09:00
2026-09-02 19:30:16 +09:00
2026-08-08 10:03:11 +09:00
2026-08-30 19:38:24 +09:00
2026-08-08 10:03:11 +09:00
2026-08-08 10:03:11 +09:00
2026-08-30 12:54:29 +09:00
2026-08-28 15:41:24 +09:00
2026-09-02 18:03:18 +09:00
2026-09-02 16:20:17 +09:00
2026-09-02 19:30:16 +09:00
2026-08-28 19:09:28 +09:00
2026-09-01 20:18:33 +09:00
2026-08-24 19:56:40 +09:00
2026-09-01 20:18:33 +09:00
2026-08-28 12:54:45 +09:00
2026-09-02 16:52:38 +09:00
2026-09-02 16:52:38 +09:00
2026-09-02 10:50:10 +09:00
2026-09-02 11:27:25 +09:00
2026-08-27 22:32:01 +09:00
2026-09-02 12:06:54 +09:00
2026-08-25 20:03:42 +09:00
2026-09-02 11:41:41 +09:00
2026-08-27 22:13:26 +09:00
2026-08-27 22:13:26 +09:00
2026-08-27 18:42:15 +09:00
2026-08-27 18:42:15 +09:00
2026-08-23 13:58:00 +09:00
2026-08-27 22:13:26 +09:00
2026-08-28 12:54:45 +09:00
2026-08-27 22:13:26 +09:00
2026-09-02 16:52:38 +09:00
2026-08-29 12:01:22 +09:00
2026-08-26 18:38:30 +09:00
2026-09-02 16:52:38 +09:00
2026-08-23 13:11:49 +09:00
2026-08-26 17:18:47 +09:00
2026-09-02 12:06:54 +09:00
2026-08-19 19:46:03 +09:00
2026-08-30 12:05:22 +09:00
2026-08-30 12:23:38 +09:00
2026-08-17 18:19:46 +09:00
2026-09-02 16:52:38 +09:00
2026-09-02 16:52:38 +09:00
2026-08-18 19:38:52 +09:00
2026-08-19 18:32:55 +09:00
2026-08-08 10:03:11 +09:00
2026-08-17 17:09:05 +09:00
2026-08-19 18:33:03 +09:00
2026-09-02 16:48:01 +09:00
2026-08-28 19:09:28 +09:00
2026-08-29 11:15:29 +09:00
2026-09-02 16:48:01 +09:00
2026-09-02 19:30:16 +09:00
2026-09-02 19:30:16 +09:00
2026-09-02 19:30:16 +09:00
2026-08-17 14:05:32 +09:00
2026-09-02 19:30:16 +09:00
2026-08-17 18:51:21 +09:00
2026-09-02 19:30:16 +09:00
2026-08-17 18:51:21 +09:00
2026-08-08 10:03:11 +09:00
2026-08-23 16:27:41 +09:00
2026-09-02 19:30:16 +09:00
2026-09-02 19:30:16 +09:00
2026-09-02 19:30:16 +09:00
2026-09-02 19:30:16 +09:00
2026-09-02 19:30:16 +09:00
2026-09-02 19:30:16 +09:00
2026-08-08 10:03:11 +09:00
2026-08-08 10:03:11 +09:00
2026-09-02 19:30:16 +09:00
2026-08-18 19:14:05 +09:00
2026-08-18 19:51:08 +09:00
2026-08-19 18:17:22 +09:00
2026-08-19 18:56:06 +09:00
2026-08-29 18:37:16 +09:00
2026-08-28 12:16:38 +09:00
2026-08-08 10:03:11 +09:00
2026-08-30 12:05:22 +09:00
2026-09-02 19:30:16 +09:00
2026-08-25 20:03:42 +09:00
2026-09-02 16:30:59 +09:00
2026-08-19 18:32:55 +09:00
2026-09-02 16:30:59 +09:00
2026-08-17 09:06:19 +09:00