- 통째 이동 = _Plan · _Plan_Footprint · _Cut · _Carve · _Carve_Wing · _Union · _Skirt - 잘라 냄(원본은 Old 같은 이름) = _Build(스케치 · 자르기 · 패치 꼬리 · 깃발 · 측벽 지반 표고) · _Build_Types · _Envelope · _Mesh(patch · cellMask · trimTris · cutWalls · planCurves) · 뷰어 디버그 · 뷰어코리도(__corridorPlanCurves) - BUILD_VERSION · 행 자리 그대로 — 노면 · 구조물 · 외곽 같음(옛 저장본 남는 몫은 무시) - 시험 2개 + 도우미 2 = resources/tester/old/ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QND7Co43B24zK2P937rdxt
56 lines
2.4 KiB
TypeScript
56 lines
2.4 KiB
TypeScript
/* =============================================================================
|
|
* 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,
|
|
planCurves: build.planCurves ?? [],
|
|
cutWalls: build.cutWalls ?? [],
|
|
},
|
|
planCurves: (build.planCurves ?? []).map((curve) => ({
|
|
source: curve.source,
|
|
role: curve.role,
|
|
side: curve.side,
|
|
at: curve.setChainageM,
|
|
loops: curve.loops.length,
|
|
points: curve.loops.reduce((sum, loop) => sum + loop.length, 0),
|
|
z0: curve.loops[0]?.[0]?.[2] ?? null,
|
|
planZ: curve.planZ,
|
|
})),
|
|
}
|
|
: null;
|
|
}
|