From b492a9195ae04c0d01348bb25c730086071fb29c Mon Sep 17 00:00:00 2001 From: umsangdon Date: Tue, 29 Sep 2026 19:53:00 +0900 Subject: [PATCH] =?UTF-8?q?feat(B05):=20=EA=B3=84=ED=9A=8D=EB=85=B8?= =?UTF-8?q?=EC=84=A0=20=ED=8E=B8=EC=A7=91=20=EC=B0=BD=20=E2=80=94=20?= =?UTF-8?q?=EC=B8=A1=EC=A0=90=20=EB=9D=BC=EB=B2=A8=20=EA=B8=80=EC=9E=90=20?= =?UTF-8?q?=C2=B7=20=ED=98=B8=EB=A5=BC=20=EB=88=8C=EB=9F=AC=EB=8F=84=20?= =?UTF-8?q?=EA=B3=A0=EB=A6=84(22-2=20=C2=B7=2022-3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 누르기(Pointer)에 라벨 상자를 넘기고 눈금 다음에 라벨 · 호 갈래를 더함 - 호를 누르면 교각점을 누른 것과 같은 곡선 · 같은 패널(끌기 없음) - 우선순위 점 · 손잡이 > 눈금 > 라벨 > 호 > 등고선 Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01EauA2ATmqNRbeV48s9CcBr --- B05_Profile/B05_Profile_UI_RouteEdit_Pointer.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/B05_Profile/B05_Profile_UI_RouteEdit_Pointer.ts b/B05_Profile/B05_Profile_UI_RouteEdit_Pointer.ts index 173e4ec4..a3eb75eb 100644 --- a/B05_Profile/B05_Profile_UI_RouteEdit_Pointer.ts +++ b/B05_Profile/B05_Profile_UI_RouteEdit_Pointer.ts @@ -17,10 +17,12 @@ import { type Vertex, } from "./B05_Profile_UI_RouteEdit_Curve"; import { + arcAtScreen, handleAtScreen, nodeAtScreen, segmentAtScreen, stationAtScreen, + stationLabelBoxes, } from "./B05_Profile_UI_RouteEdit_Input"; import { curveShortfalls, @@ -186,6 +188,7 @@ export function bindRouteEditPointer(params: RouteEditPointerParams): RouteEditP px, py, STATION_HIT_PX, + stationLabelBoxes(canvas), ); if (chainage === null) return false; void params.crossPreview.open(chainage); @@ -193,6 +196,19 @@ export function bindRouteEditPointer(params: RouteEditPointerParams): RouteEditP })() ) { /* 횡단 창이 떴다 — 더 집지 않는다. */ + } else if ( + // 호(곡선 부분)를 누르면 그 곡선을 고른다 — 교각점을 누른 것과 같다(끌기만 없다). 점·눈금 다음. + ((): boolean => { + const node = arcAtScreen(state.curveInfo, toScreen, px, py); + if (node < 0) return false; + params.setPicked(node); + params.measure.clear(); + params.syncCurveBar(); + params.draw(); + return true; + })() + ) { + /* 곡선을 골랐다 — 등고선은 안 집는다. */ } else if (state.contours) { // 노드도 손잡이도 아니면 **등고선**을 집는다 — 노선 편집이 늘 먼저다(계획서 0-9 ⑦). // 빈 자리를 누르면 -1 이 되어 고른 것이 풀린다.