feat(B06): 집수정 I형 벽 높이를 노견 접점까지 성장 — 배관은 원지반 유지

- 집수정은 물을 모으는 구조물(2026-08-22 사용자 확정): ㄴ·ㄷ형 바닥판은
  원지반을 대체하며 형태별 별도 구성. 배관(invert)은 원지반 자리 유지.
- I형(공유벽) 높이 = max(관 아래 여유+관경+위 여유, 노견 표고 − invert)
  — 원지반이 낮아 기본 높이로 노견 끝 접점이 안 되면 배관은 그대로 두고
  벽을 노견 표고까지 키운다. 상단 도로측 꼭짓점 = 노견 끝 지점(완전 접점).
- 검증: 13+15.7 — 노견 끝(-2.000, 540.441) = 벽 상단 도로측 꼭짓점,
  오차 dx=0.000 dz=0.000. 관 유입단 (-3.000, 538.091) 원지반 유지.
  화면 스크린샷 대조 완료.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-22 10:29:54 +09:00
co-authored by Claude Opus 5
parent 9edf11745c
commit 3b272307ed
@@ -243,11 +243,18 @@ export function computeCulvertLayout(
// 형식 기본값 = ㄴ(L)형(2026-08-20 사용자 확정). 실무 내공 1.0m(울진 돌집수정).
const shape: BasinShape = "L";
const innerWidth = 1.0;
// 집수정 깊이 = **관 아래 여유 + 관경 + 관 위 여유**(2026-08-21 사용자 확정).
// 종전에는 성토 경사선과의 교점으로 높이를 잡아 지형에 따라 들쭉날쭉했다.
// 위 여유는 기슭막이와 같은 값(0.5)을 써서 좌·우 표현이 어긋나지 않게 한다.
// 집수정은 기슭막이와 달리 **물을 모으려고 만든 구조물**이다(2026-08-22 사용자
// 확정) — 바닥판이 있는 ㄴ·ㄷ형은 그 바닥이 원지반을 대체하고, 형태별로 별도
// 구성한다. 배관(invert)은 원지반 자리를 그대로 지킨다.
// 벽 높이: 기본 = 관 아래 여유 + 관경 + 관 위 여유(2026-08-21). 원지반이 낮아
// 그 높이로 **노견 끝 접점이 안 되면 배관은 그대로 두고 벽을 노견 표고까지
// 키운다**(2026-08-22 사용자 확정 — 상단 도로측 꼭짓점 = 노견 끝 지점).
const floorThickness = BASIN_BOTTOM_CLEARANCE_M;
const wallHeight = diameter + REVET_FREEBOARD_M;
const roleEdge = spec.role === "inlet" ? inletInfo.edge : outletInfo.edge;
const wallHeight = Math.max(
diameter + REVET_FREEBOARD_M,
roleEdge.elevation_m - anchor.elevation,
);
// 벽 단면은 기슭막이와 동일(두께 0.45). 기움은 **수직 기준 반전** — 상단이
// 도로측(내공 쪽)으로 1:0.3 물러난다(2026-08-20 사용자 정정).
const wallOf = (baseOffset: number, dir: number): OffsetPoint[] => {