feat(774-1): 다시 긋기 = 중간 노드 고름으로 켬 · 다른 중간 노드에 이어야 끝
- 노드 속성 판 · 우클릭 = 중간 노드에 [다시 긋기](선 토막 고름의 [다시 긋기] 뺌) · B05 긋기 중 중간 노드 누름 = 그대로 켬 - 끝 = 같은 선 다른 중간 노드만(rejoinMiss) · 시작 노드 · 끝점 = 못 찍음 + 안내(계속 긋기) · 빈 곳 = 점 찍고 계속 - 고리: 시작 노드 · 이을 중간 노드 · 마우스 올린 중간 노드(paintRejoin · --draw-map-*) · 옛 구간 흐림(dim) 뺌 - 시험: test_771_2 에 끝 판정 · 중간 노드 대조 더함 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,9 +3,9 @@
|
||||
* D03 고름 속성 판(PLAN 585-2 · 598 · 요구 463 13·16 · 11) — 오토캐드 특성 창 꼴 · 판 하나가 고름 꼴마다 몸을 바꿈.
|
||||
*
|
||||
* 판 = 지도 위 떠 있는 판(공용 `createFloatPanel` · 머리 끌어 옮김 · 오른쪽 위) · 고름 있을 때만 · ✕ = 풂.
|
||||
* 노드 — 경위도 · 지반고 · 측점 · 앞 선 길이 · 기울기 · [노드 지움] [지점으로](그 자리에 지점 · 이미 있으면 숨김) ·
|
||||
* [잇기](선 끝 · 638-3).
|
||||
* 선(토막) — 측점 · 길이 · 지반 기울기 · 세트 · [다시 긋기](하나 · 599) [선 지움](가운데 = 구역 둘).
|
||||
* 노드 — 경위도 · 지반고 · 측점 · 앞 선 길이 · 기울기 · [다시 긋기](중간 노드 · 774) [노드 지움]
|
||||
* [지점으로](그 자리에 지점 · 이미 있으면 숨김) · [잇기](선 끝 · 638-3).
|
||||
* 선(토막) — 측점 · 길이 · 지반 기울기 · 세트 · [선 지움](가운데 = 구역 둘).
|
||||
* 구역 — 길이 · 노드 수 · 세트(구역 모든 구간) · 구간 줄 · [구역 지움].
|
||||
* 전체 — 길이 · 구역 수 · 해마다 길이 · [전체 지움](되돌리기 됨).
|
||||
* 세트 구간(왼쪽 해 · 세트 · 구간 줄) — 세트(모두 같으면 그 세트 · 다르면 「여러 세트」) · 구간 줄 · 마커 — 앞뒤 세트 · [마커 지움].
|
||||
@@ -34,7 +34,7 @@ import {
|
||||
segmentPieces,
|
||||
segmentRange,
|
||||
} from "./logic/D03_PlanAnalysis_Select";
|
||||
import { nodeOff, nodeRecord } from "./logic/D03_PlanAnalysis_Span";
|
||||
import { isMiddleNode, nodeOff, nodeRecord } from "./logic/D03_PlanAnalysis_Span";
|
||||
import {
|
||||
createDrawKindFields,
|
||||
DRAW_DEFAULT_LENGTH_M,
|
||||
@@ -71,8 +71,8 @@ export interface PlanPropsParams {
|
||||
addPoint?: (point: Vertex) => void;
|
||||
/** 노드 판 방식 · 값 바꿈 — 노드 · 그 자리 지점 한 걸음. */
|
||||
commitPoints: (points: Vertex[], next: PlanNetwork) => void;
|
||||
/** [다시 긋기](599-3) — 구역 id · 앞 노드 · 뒤 노드. */
|
||||
respan: (line: string, from: number, to: number) => boolean;
|
||||
/** [다시 긋기](774) — 구역 id · 시작 중간 노드. */
|
||||
respan: (line: string, vertex: number) => boolean;
|
||||
}
|
||||
|
||||
export interface PlanProps {
|
||||
@@ -238,6 +238,9 @@ export function createPlanProps(params: PlanPropsParams): PlanProps {
|
||||
title: `${nameOf(line)} · 노드 ${vertex + 1}`,
|
||||
parts,
|
||||
actions: [
|
||||
...(isMiddleNode(vertices.length, vertex)
|
||||
? [button("다시 긋기", "props-respan", () => params.respan(line, vertex))]
|
||||
: []),
|
||||
button("노드 지움", "props-drop-node", () => edit.dropNode(picked.node!)),
|
||||
toPoint,
|
||||
...(featureOn(page, "join") && edit.isEnd(picked.node!)
|
||||
@@ -265,12 +268,6 @@ export function createPlanProps(params: PlanPropsParams): PlanProps {
|
||||
const parts: HTMLElement[] = [createKv(rows)];
|
||||
if (yearsShown(network)) parts.push(setField(inSegments, ranges));
|
||||
const actions = [button("선 지움", "props-drop-segment", edit.dropSelected)];
|
||||
if (single)
|
||||
actions.unshift(
|
||||
button("다시 긋기", "props-respan", () =>
|
||||
params.respan(single.line, single.index, single.index + 1),
|
||||
),
|
||||
);
|
||||
return {
|
||||
title: single
|
||||
? `${nameOf(single.line)} · 선 ${single.index + 1}`
|
||||
|
||||
Reference in New Issue
Block a user