From dee16cab377d3f7295ec31eff887fee0eefc5820 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Wed, 28 Oct 2026 07:10:21 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat(B05):=20=ED=8F=89=EB=A9=B4=20=EB=8F=84?= =?UTF-8?q?=EA=B5=AC=EC=A4=84=20=3D=20=EA=B3=B5=EC=9A=A9=20=EC=A7=80?= =?UTF-8?q?=EB=8F=84=20=EB=8F=84=EA=B5=AC=EC=A4=84=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98=2014=20(PLAN=20568-2=20=C2=B7=20=EC=9A=94=EA=B5=AC=20?= =?UTF-8?q?395-1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 글자 유리 단추 줄 · [?] 안내 판 · 나눔선 다섯 → createMapTools 한 줄(긴 설명은 마우스 글 · 누름 동작 · 단축키 그대로) - 3D 단추 = mapToolButton("view3d") · 클래스 b05-route__3d-open 유지 · 거리 재기 aria-pressed 맞춤 - 가이드 촬영 선택자(.b05-routeedit__tools · [data-act="hint-toggle"] · .b05-routeedit__hint.is-open) 그대로 - 시험 고침 — 옛 글자 단추 · 나눔선 · 안내 판 CSS 를 잡던 다섯(차례 · 안내 판 · 절/성토선 이름 · 3D 막이) - 부품 — 빈 묶음 건너뜀 · [hidden] 숨김 규칙 Co-Authored-By: Claude Opus 5.5 --- .../design/design_view_profile_3d_modal.ts | 9 +- .../B05_Profile_UI_RouteEdit_Chrome.ts | 150 +++++++++--------- .../B05_Profile_UI_RouteEdit_Measure.ts | 2 + .../B05_Profile_UI_Style_RouteEdit.css | 57 ++----- resources/tester/helper_345_2_3d_modal.cjs | 7 +- .../tester/test_345_5c_info_hint_collapse.py | 19 ++- resources/tester/test_346_2_footprint_draw.py | 2 +- .../tester/test_353_1_cut_fill_line_smooth.py | 4 +- .../tester/test_b05_routeedit_initial.py | 51 +++--- ui_template/ui_template_map_tools.css | 6 + ui_template/ui_template_map_tools.ts | 6 +- 11 files changed, 145 insertions(+), 168 deletions(-) diff --git a/A00_Common/design/design_view_profile_3d_modal.ts b/A00_Common/design/design_view_profile_3d_modal.ts index 7791d9dd0..4c91b0b63 100644 --- a/A00_Common/design/design_view_profile_3d_modal.ts +++ b/A00_Common/design/design_view_profile_3d_modal.ts @@ -8,7 +8,7 @@ * 그리기 루프 · 포인터 듣기만 멈추고 WebGL 문맥 · 지형은 살린다. 버림은 페이지를 떠날 때만. * ========================================================================== */ -import { createButton } from "@ui/ui_template_elements"; +import { mapToolButton } from "@ui/ui_template_map_tools"; import { openModal } from "@ui/ui_template_modal"; import { createProgressCircle } from "@ui/ui_template_progress"; @@ -73,9 +73,12 @@ export function createViewer3dModal(deps: Viewer3dModalDeps) { shown.close(); } - const button = createButton({ label: "3D", variant: "ghost", onClick: open }); + // 평면 도구줄 아이콘 단추(568-2) — 클래스는 가이드 촬영이 잡음. + const button = mapToolButton("view3d", { + title: "3D 화면을 큰 창으로 엽니다 — 닫으면 그리기를 멈춥니다", + onClick: open, + }); button.classList.add("b05-route__3d-open"); - button.title = "3D 화면을 큰 창으로 엽니다 — 닫으면 그리기를 멈춥니다"; return { park, diff --git a/B05_Profile/B05_Profile_UI_RouteEdit_Chrome.ts b/B05_Profile/B05_Profile_UI_RouteEdit_Chrome.ts index 2e86d1fd4..83ec6d31e 100644 --- a/B05_Profile/B05_Profile_UI_RouteEdit_Chrome.ts +++ b/B05_Profile/B05_Profile_UI_RouteEdit_Chrome.ts @@ -1,4 +1,5 @@ import { createIconButton } from "@ui/ui_template_elements"; +import { createMapTools, mapToolButton } from "@ui/ui_template_map_tools"; import { createSidePanels } from "@ui/ui_template_side_panels"; import { bindFootprintToggle } from "./B05_Profile_UI_RouteEdit_Footprint"; import { bindMarkToggle } from "./B05_Profile_UI_RouteEdit_Marks"; @@ -15,7 +16,7 @@ import { bottomRowNarrow, infoLiftPx } from "./logic/B05_Profile_RouteEdit_InfoL * (지도 왼쪽 위 · ☰ 비킴), [?] 조작 설명은 도구줄 아래 2열, 상태·범례는 왼쪽 아래, 잰 값은 오른쪽 * 아래. 횡단 두 판은 지도 오른쪽을 덮는 판(아래 종단 판이 그 위). * 도구줄 차례(366-2 · 381-2) — [?] | ↶ ↷ | 3D | ⟲ ⟳ · 1m 등고선 · 측점 · 기울기 · 절/성토선 · 거리 재기 | - * 측점 스냅 · 분석 지형. + * 측점 스냅 · 간격 | 분석 지형. 단추는 공용 지도 도구줄(568-2 · `ui_template_map_tools`) 아이콘 — 긴 설명은 마우스 글. * * 자리(345-3) — 모달이 아니라 종단 보기 가운데 위 본문(옛 3D 자리)에 붙는다. 덮개 · 전체 화면 · * 닫기 단추는 걷었다 · [취소] · [확인] · [노선 반영] · [저장 전으로]는 없앰(346-3 · 352-2 — 노선은 페이지 @@ -67,6 +68,17 @@ const SIDE_HANDLE_PX = 32; // 글판 접기 기억(345-5 덧 3) — 페이지 동안만(모듈 값) · 다시 열어도 그대로. let hintOpen = false; +const HINT_LINES = [ + "노드 끌기 = 옮기기", + "노드 클릭 = R 라벨", + "선 두 번 클릭 = 노드 추가", + "노드 오른쪽 클릭 = 삭제", + "측점 눈금 클릭 = 횡단 미리보기", + "Shift+클릭 = 거리·기울기", + "가운데(휠) 버튼 끌기 = 지도 이동", + "휠 = 확대", + "Ctrl+휠 = 돌리기(한 칸 5°)", +]; let infoCollapsed = false; /** 뼈대를 만들어 `parent` 에 붙이고, 자주 쓰는 요소를 집어 돌려준다. */ @@ -79,56 +91,7 @@ export function createRouteEditChrome( overlay.innerHTML = `
-
- - - - - - - - - - - - - - - - - - - -
-
-
- 노드 끌기 = 옮기기노드 클릭 = R 라벨 - 선 두 번 클릭 = 노드 추가노드 오른쪽 클릭 = 삭제 - 측점 눈금 클릭 = 횡단 미리보기Shift+클릭 = 거리·기울기 - 가운데(휠) 버튼 끌기 = 지도 이동휠 = 확대 - Ctrl+휠 = 돌리기(한 칸 5°) -
-
+