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 이 되어 고른 것이 풀린다.