diff --git a/A00_Common/design/design_pipeline_types.ts b/A00_Common/design/design_pipeline_types.ts index 1693c24cb..2b73d0f35 100644 --- a/A00_Common/design/design_pipeline_types.ts +++ b/A00_Common/design/design_pipeline_types.ts @@ -24,7 +24,7 @@ * | 단계 | 주인 | deps | 출력 | * | route | sub8 | input.route | RouteLine | * | follow | sub1 | route | FollowPatch(입력 고침) | - * | stations | sub1·sub2| route · input.pipes · input.structures | PipelineStation[](지반 null) | + * | stations | sub7 | route · input.pipes · input.structures | PipelineStation[](지반 null) | * | ground | sub8 | stations | GroundOutput | * | planline | sub1 | ground | AlignmentBase(첫 계획선) | * | profile | sub1 | planline · input.alignment | ProfileAlignment | @@ -37,6 +37,16 @@ * * 가게 키(`design_store.ts`) — routeDraft(입력 · 세션 즉시) · stations(ground 단계 출력) · * profile · footprint(메모리 우선 · 멈춘 뒤 한 번 세션) · generation(메모리만). + * + * 측점 열쇠(344-3 · `stationKey` · `B05_Profile/logic/B05_Profile_Sections_Stations.ts`): + * | 측점 | 열쇠 | 뜻 | + * | 일반(격자) | grid:k | k = 원래 격자 번호(누가거리 ÷ 측점 간격 반올림) · 노선 모양이 바뀌어도 같은 번호 · 스냅으로 옮긴 측점은 원래 번호 | + * | 관 | pipe: | 관 세션 id(없으면 `pipe-{누가거리 2자리}`) | + * | 구조물 | structure: | structure_id · 구간형 시작 · 끝 = `:start` · `:end` 덧붙임 | + * | 시종점 | end:BP · end:EP | 그 자리 관 · 구조물이 있어도 시종점(서버 bp · ep 와 같음) | + * · 같은 m(0.005) 관 · 구조물이 겹치면 관 열쇠 하나 · 격자 자리에 얹히면 관 · 구조물 열쇠(격자는 숨음). + * · 누가거리를 글로 쓸 때(초안 칸 · 서버 이월) 자릿수 0.01 m 하나 — `stationText`. + * · 세션 횡단 초안 · 서버 이월을 이 열쇠로 바꾸는 일 = sub2(344-3 나머지). * ========================================================================== */ import type { @@ -116,8 +126,18 @@ export interface RangePart { /* ── 출력 ───────────────────────────────────────────────────────────────── */ /** route 단계 — 원호가 섞인 그린 노선(`_RouteEdit_Curve` 짝) · 누가거리. */ +/** 설계 곡선표 한 줄 — 서버 `RoutePlanCurve` · `EditedCurve` 와 같은 칸(반경 · 바깥쪽 · 스냅 재료). */ +export interface DesignCurve { + start: Vertex; + apex: Vertex; + end: Vertex; + radius_m: number; +} + export interface RouteLine { line: Vertex[]; + /** 설계 곡선표(없으면 빈 칸 = 측점마다 반경을 잼 · 서버와 같음). */ + curves: DesignCurve[]; /** line 정점마다 누가거리(m). */ chainage: number[]; lengthM: number; @@ -148,7 +168,7 @@ export interface StationGround { /** 측점 한 자리 — stations 가 만들고 ground 가 지반을 채움. 가게 키 `stations`. */ export interface PipelineStation { - /** 측점 키 — 규칙 = 344-3(sub2 · 0.01 m · 격자 = 격자 번호 · 구조물 · 관 = id). */ + /** 측점 열쇠 — 머리 표(grid:k · pipe: · structure: · end:BP/EP). */ key: string; chainageM: number; x: number;