diff --git a/B05_Profile/B05_Profile_UI_Page_Structures.ts b/B05_Profile/B05_Profile_UI_Page_Structures.ts index 00af15b7..4a68b7a9 100644 --- a/B05_Profile/B05_Profile_UI_Page_Structures.ts +++ b/B05_Profile/B05_Profile_UI_Page_Structures.ts @@ -85,6 +85,12 @@ export function createStructuresBridge(deps: StructuresBridgeDeps) { }); } + /** 물넘이포장은 비정규 측점이 아니다 — 횡단도로 표현할 것이 없어 종단 알약으로만 + * 다룬다(2026-08-28 사용자 확정). 관 정본 대조(setPipeChainages)는 전체 목록을 써야 + * 물넘이가 지워지지 않으므로, **표시·서버 전송 쪽에서만** 뺀다. */ + const withoutFordPavement = (stations: IrregularStation[]): IrregularStation[] => + stations.filter((station) => station.structure !== FACILITY_NAMES.ford_pavement); + /** [초기선 복원] 등에서 그래프의 배관 투영만 지운다 — 관 정본은 건드리지 않는다. */ function clearProjectedStations(): void { pipeStations = []; @@ -102,7 +108,7 @@ export function createStructuresBridge(deps: StructuresBridgeDeps) { .forEach((station) => deps.profilePanel().resetStationEdit(station.chainage_m)); irregularStations = stations; deps.renderStationLines(); - deps.profilePanel().setIrregularStations(stations); + deps.profilePanel().setIrregularStations(withoutFordPavement(stations)); // 좌측 구조물 폼에서 "배관" 항목을 고쳤거나 지웠으면 배수유역도까지 따라가야 한다. // 관 목록이 그대로면 배수유역도가 아무 일도 하지 않으므로 되먹임 고리는 여기서 끊긴다. deps @@ -281,8 +287,8 @@ export function createStructuresBridge(deps: StructuresBridgeDeps) { onPick: (chainage, typeId) => deps.panel().structures.addAt(chainage, typeId), }); }, - /** 그래프·3D가 쓰는 현재 비정규 측점 목록. */ - irregularStations: () => irregularStations, + /** 그래프·3D가 쓰는 현재 비정규 측점 목록(물넘이포장 제외 — 알약 레인 몫). */ + irregularStations: () => withoutFordPavement(irregularStations), /** 관 지점 목록이 바뀜 — 측점 투영과 알약 레인을 한 번에 맞춘다. */ setPipes(pipes: PipeProjection[]): void { pipeStations = pipesToStations(pipes);