fix(B05): 날개벽이 있는 측은 스트립 끝 횡단선 벽을 빼 중복을 없앤다
날개 사다리꼴 벽면이 이미 그 자리를 막는데 스트립 끝 횡단선 벽이 같은 자리에 한 장 더 서 있었다(2026-08-27 사용자). 날개벽을 낸 측은 끝 횡단선을 안 낸다. 날개가 없는 세트(파형강관 84.3·275.71)는 종전대로 끝 횡단선이 유일한 측벽이다. - Plan: 세트마다 `wingWallSides`를 모아, 그 측은 `cut-wall`에 끝 횡단선을 안 담는다. - BUILD_VERSION 58 → 59. 검증(실빌드 데이터): - 벽 판 20 → **16장**(삼각형 40 → 32), 좌·우 동일. - 세트별 벽 자리: 149.73·200.92는 날개 6마디만, 84.3·275.71은 끝 횡단선 2마디. - 끝선(노견·성토 끝단) 위 판 0 유지, 벽 최대 높이 3.18m 불변. - ISO 근접 캡처에서 구멍 없음 — 겹쳐 있던 판만 사라졌다. - npm run typecheck 통과, prettier 적용. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -108,7 +108,7 @@ function fnv1a(text: string): string {
|
||||
// 복원되어 화면·데이터가 하나도 안 바뀌었다. 기하를 고치면 **반드시** 올릴 것.
|
||||
// 56 = 측벽에서 **노견 쪽·성토 끝단 쪽 리본 경계 벽을 뺀다** — 거기서 잘린 게
|
||||
// 아니라 리본이 끝난 자리다(2026-08-27 사용자).
|
||||
const BUILD_VERSION = 58;
|
||||
const BUILD_VERSION = 59;
|
||||
|
||||
/** 종횡단 정본에서 코리도에 영향을 주는 입력만 요약해 해시 — 갱신 감지 기준. */
|
||||
export function corridorHash(detail: SectionDetailResponse, routePoints: RoutePoint[]): string {
|
||||
|
||||
@@ -387,6 +387,8 @@ export function buildPlanCurves(
|
||||
leftX: section.frame.left_xy[0],
|
||||
leftY: section.frame.left_xy[1],
|
||||
};
|
||||
/** 날개벽 벽면을 낸 측 — 그 측 스트립 끝 횡단선은 겹치므로 안 낸다(2026-08-27 사용자). */
|
||||
const wingWallSides = new Set<Side>();
|
||||
(["left", "right"] as const).forEach((side) => {
|
||||
push("structure", side, structureFootprintLoops(set, side, roadEdgeOf(side), planZ, axis));
|
||||
// 날개벽만 — 성토 끝선까지 이어진 사다리꼴(2026-08-26 사용자). 성토 끝선은
|
||||
@@ -397,6 +399,7 @@ export function buildPlanCurves(
|
||||
push("wing-box", side, wing.loops);
|
||||
// 날개 사다리꼴의 벽 자리 — 성토 끝선 변은 빠져 있다(2026-08-27 사용자).
|
||||
push("cut-wall", side, wing.walls);
|
||||
if (wing.walls.length) wingWallSides.add(side);
|
||||
});
|
||||
|
||||
for (const silhouette of structureSilhouettes(section)) {
|
||||
@@ -510,7 +513,8 @@ export function buildPlanCurves(
|
||||
const spans = projected.filter(
|
||||
(pair): pair is [[number, number, number], [number, number, number]] => pair !== null,
|
||||
);
|
||||
if (spans.length >= 2) {
|
||||
// 날개벽이 있는 측은 그 벽면이 같은 자리를 이미 막는다 — 끝 횡단선은 중복이다.
|
||||
if (spans.length >= 2 && !wingWallSides.has(side)) {
|
||||
push("cut-wall", side, [
|
||||
[spans[0][0], spans[0][1]],
|
||||
[spans[spans.length - 1][0], spans[spans.length - 1][1]],
|
||||
|
||||
Reference in New Issue
Block a user