fix(B05): BOX암거 패치도 절취 영역 안쪽으로 자른다

패치 리본을 절취 영역 안쪽만 남기는 규칙(`patchClip`)이 세월교에만 걸려 있었다.
`_Corridor_Cut.ts` 가 표식 없는 패치는 손대지 않고 그대로 돌려주므로 BOX암거 패치는
한 번도 안 잘려 절취 영역 밖으로 넘쳤다. BOX도 `wing-box` 커브로 절취 영역을 내므로
같은 반대 규칙이 성립한다. 기슭막이(배수관 세트)는 날개 사다리꼴이 없어 제외.

기하가 바뀌므로 `BUILD_VERSION` 88 → 89 (형식은 안 바뀌어 `ENVELOPE_VERSION` 은 그대로).

검증(wdw · 저장본 실측):
- 수정 전 — BOX 패치 리본 두 벌(198.4~203.5m)에 셀 마스크 없음. `patchClip` 3개.
- 수정 후 — 두 벌 모두 마스크 생김(남은 셀 46/282 · 43/282). `patchClip` 5개.
- 3D 화면(TOP, 지형 끔) — BOX 자리 성토면이 구조물에 맞물려 끊기고, 넘침도 구멍도 없음.
- `tsc --noEmit` 통과, `pytest tmp/tests/ -q` 356 passed / 0 failed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-02 11:27:25 +09:00
co-authored by Claude Opus 5
parent a218d08589
commit dc91a5e831
2 changed files with 11 additions and 2 deletions
+5 -1
View File
@@ -214,7 +214,11 @@ function fnv1a(text: string): string {
// 다음 단 시작점은 윗단 하단 수평선 +근입과 전면 경사선의 교차점(2026-08-22 규칙 승계).
// 88 = 독립 기슭막이 기준을 **맨 위 단**으로 되돌리고 추가 단은 아래로 붙인다(배관 세트와
// 같은 규칙). 기준 자리는 사용자 이동값(기준 올림·좌우)을 탄다(2026-08-28 사용자).
const BUILD_VERSION = 88;
// 89 = BOX암거 패치도 **절취 영역 안쪽으로 자른다**(2026-09-02). 그 규칙이 세월교에만
// 걸려 있어 BOX 패치는 한 번도 안 잘리고 영역 밖으로 넘쳤다 — 실측에서 BOX 패치
// 리본 두 벌(198.4~203.5m)에 셀 마스크가 없었다. BOX도 `wing-box` 커브로 절취
// 영역을 내므로 같은 반대 규칙이 성립한다.
const BUILD_VERSION = 89;
/** 종횡단 정본에서 코리도에 영향을 주는 입력만 요약해 해시 — 갱신 감지 기준. */
export function corridorHash(detail: SectionDetailResponse, routePoints: RoutePoint[]): string {
+6 -1
View File
@@ -264,6 +264,7 @@ export function buildStructurePatchRibbons(
* 날개 사다리꼴 자체가 없다. BOX·기슭막이는 종전 경로를 그대로 탄다.
*/
const isFord = section.ford != null;
const isBox = section.box != null;
const frameOf = (chainageM: number): RouteFrame | null => {
const frame = frameAt(chainageM);
if (!frame || !boxAxis) return frame;
@@ -374,7 +375,11 @@ export function buildStructurePatchRibbons(
chainages: buffer.map((row) => row.chainage),
positions,
patch: true,
...(isFord ? { patchClip: true } : {}),
// 절취 영역 안쪽으로 자르는 규칙은 세월교에만 걸려 있었다 — BOX암거 패치는
// 한 번도 안 잘려 절취 영역 밖으로 넘쳤다(2026-09-02 실측: BOX 패치 리본
// 두 벌에 셀 마스크가 없었다). BOX도 `wing-box` 커브로 절취 영역을 내므로
// 같은 규칙을 태운다. 기슭막이(배수관 세트)는 날개 사다리꼴 자체가 없어 제외.
...(isFord || isBox ? { patchClip: true } : {}),
});
}
buffer = [];