fix(B06): I형 집수정 관 유입 끝을 원지반 교점에서 절단
- 관 계산 시작점은 지반에 맞췄지만 그림의 끝은 벽 안쪽 변에서 잘려 꼭짓점이 지반과 어긋나 보였다(2026-08-22 사용자 — 파란 관선이 녹색 지반선과 만나야 함). - I형은 마감면 기준점을 관 하단선-원지반 교점으로 이동(기울기는 벽과 나란히 유지). invert가 토피 상한에 걸려 지반보다 낮아도 그림의 관은 지반 위에서 시작한다. - 검증: 13+15.7 I형 실화면 SVG — 관 유입 하단 꼭짓점 vs 지반 보간 0.1px 차(접점). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -475,6 +475,26 @@ export function computeCulvertLayout(
|
||||
};
|
||||
};
|
||||
deriveAxis();
|
||||
// I형 집수정: 관 유입 끝의 마감면을 **관 하단선이 원지반과 만나는 점**으로 옮긴다
|
||||
// (2026-08-22 사용자 — 관 파란선 시작 꼭짓점이 지반 녹색선 위에 있어야 한다).
|
||||
// invert가 토피 상한에 걸려 지반보다 낮으면 벽 변에서 자른 꼭짓점이 지반과 떠서
|
||||
// 어긋나 보였다. 마감면 기울기(벽과 나란)는 유지하고 기준점만 교점으로 바꾼다.
|
||||
if (basin && basinShape === "I" && endFaces.inlet) {
|
||||
let prevDiff = pipeStart.elevation - groundAt(pipeStart.offset);
|
||||
for (let t = 0.02; t <= 3; t += 0.02) {
|
||||
const px = pipeStart.offset + axis.offset * t;
|
||||
const pe = pipeStart.elevation + axis.elevation * t;
|
||||
const diff = pe - groundAt(px);
|
||||
if (Math.abs(diff) < 0.005 || Math.sign(diff) !== Math.sign(prevDiff)) {
|
||||
endFaces.inlet = {
|
||||
base: { offset: px, elevation: pe },
|
||||
direction: endFaces.inlet.direction,
|
||||
};
|
||||
break;
|
||||
}
|
||||
prevDiff = diff;
|
||||
}
|
||||
}
|
||||
const endCorners = (role: "inlet" | "outlet", endPoint: OffsetPoint): PipeEnd => {
|
||||
const fallback: PipeEnd = {
|
||||
bottom: endPoint,
|
||||
|
||||
Reference in New Issue
Block a user