/* ============================================================================= * B05_Profile_UI_Viewer_Debug.ts * 뷰어 **검증용 요약** — 코리도 빌드 결과를 `window.__corridorBuild` 에 얹는다 * (`__corridorClip`·`__corridorScene` 과 같은 용도). * * `B05_Profile_UI_Viewer` 에서 그대로 떼어냈다(700줄 제한, 2026-09-04). 계산은 없고 * 요약 형태만 있으므로 화면 동작에는 영향이 없다. * ========================================================================== */ import type { CorridorBuildResult } from "./B05_Profile_UI_Corridor_Build"; /** * 격자 재배치·투영선이 리본을 흔들었는지 화면 밖에서 수치로 확인한다(2026-08-26). * `raw` 는 원본 참조라 투영선이 실제로 서피스에 얹혔는지 좌표로 대조할 때 쓴다. */ export function setCorridorBuildSummary(build: CorridorBuildResult | null): void { (window as unknown as { __corridorBuild?: unknown }).__corridorBuild = build ? { ribbons: build.ribbons.map((ribbon) => ({ kind: ribbon.kind, side: ribbon.side, rows: ribbon.chainages.length, cols: ribbon.colCount, first: ribbon.chainages[0], last: ribbon.chainages[ribbon.chainages.length - 1], })), outlineRows: build.outline.chainages.length, outline: build.outline, // 구조물 솔리드 요약 — 어떤 시설이 몇 개 섰는지 화면 밖에서 센다(2026-08-28). // 부재키(2026-09-04)도 함께 낸다 — 3D 개별 선택이 무엇을 집었는지 대조한다. structures: (build.structures ?? []).map((solid) => ({ kind: solid.kind, key: solid.key ?? null, at: solid.chainage_m, rings: solid.rings?.length ?? 0, points: solid.polygon?.length ?? 0, })), raw: { ribbons: build.ribbons }, } : null; }