feat(D03 긋기): 기본값 길이·기울기 고정 · 버튼 자유지정 오른쪽 · Tab 방식 바꿈 · 안 쓰는 칸 숨김 (PLAN 625-1 · 요구 530 · 531)
- 방식 차례 = 자유지정 · 길이·기울기 고정 / 길이 고정 · 기울기 고정 · 「자유」 → 「자유지정」 - 긋기 처음 방식 = 길이·기울기 고정(기억 안 함) - Tab(긋는 중) = 자유지정 ↔ 길이·기울기 고정 · 등록부 plan.drawKind · 긋기 아닐 때 = 초점 이동 그대로 - 길이 · 기울기 칸 = 방식에 안 쓰면 숨김 · 막힘 = 권한 없음만 - 지도 안내 글 Tab · Shift 줄 · 겹 hover 에 shift 인자(625-2 몫) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -101,7 +101,7 @@ export interface PlanMapLayer {
|
||||
base?: boolean;
|
||||
draw: (context: CanvasRenderingContext2D, map: ScreenMap) => void;
|
||||
press?: (px: number, py: number, map: ScreenMap, button: 0 | 2, shift: boolean) => boolean;
|
||||
hover?: (px: number, py: number, map: ScreenMap) => void;
|
||||
hover?: (px: number, py: number, map: ScreenMap, shift: boolean) => void;
|
||||
release?: (map: ScreenMap) => void;
|
||||
/** 「연도 마커」를 끌고 지나감(참 = 받을 겹) · 놓음(참 = 받음) — 585-3. */
|
||||
dragOver?: (px: number, py: number, map: ScreenMap) => boolean;
|
||||
@@ -210,6 +210,8 @@ export function createPlanMap(events: PlanMapEvents): PlanMap {
|
||||
"Enter = 긋기 끝",
|
||||
"Esc = 긋기 취소",
|
||||
"Backspace = 마지막 점 빼기",
|
||||
"Tab(긋는 중) = 자유지정 ↔ 길이·기울기 고정",
|
||||
"Shift 누른 채(길이·기울기 고정) = 부채꼴 사이 기울기 자리 · 길이 그대로",
|
||||
"[다시 긋기] = 앞 노드부터 긋고 뒤 노드에 붙으면 끝",
|
||||
"누름 = 노드 · 선 고름 · 다시 누름 = 선 → 구역 → 전체로 넓힘",
|
||||
"Shift+누름 = 선 더함 · 뺌",
|
||||
@@ -458,7 +460,7 @@ export function createPlanMap(events: PlanMapEvents): PlanMap {
|
||||
perfTime("plan:pointermove", () => {
|
||||
const [px, py] = at(event);
|
||||
const map = screenMap();
|
||||
for (const layer of layers) layer.hover?.(px, py, map);
|
||||
for (const layer of layers) layer.hover?.(px, py, map, event.shiftKey);
|
||||
drawTop();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user