fix(B06): 교차점 자동 줌아웃이 5m 사면 규칙에 잘리던 문제
자동 줌아웃 판정이 배수관용 slopeToeOffset(성토사면 5m에서 컷오프)을 써서, 사면이 5m를 넘는 측점은 필요 폭을 과소 산정했고 교차점이 화면 밖에 남았다(2026-08-23 사용자 보고). - _UI_Cross_Fit 재작성: 설계선(design_line)과 지반선의 **실제 교차점**을 0.1m 간격으로 훑어 찾는다(노면·노견·측구 구간은 건너뜀). 설계선이 만나기 전에 끝나면 끝단 기울기 차로 외삽하고 1m 올림. - 카드 자동 줌아웃(effectiveHalfWidth)이 이 값을 쓴다. 보유 샘플 밖으로는 넓히지 않는다(지반이 없어 빈 화면이 될 뿐). - [적용]은 전 측점 중 필요한 최대 폭까지 함께 넓힌다 — 20m를 넘으면 그 값으로 재생성해 각 카드가 자동 줌아웃할 지반을 확보한다. 자체검증: node tmp/tests/test_toe_extrapolate.mjs (사면 18m 교차점을 5m 컷오프 없이 탐색, 설계선이 15m에서 끊겨도 외삽으로 같은 자리), tsc --noEmit 통과. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -119,12 +119,22 @@ export function createCrossSectionCard(
|
||||
/** 유출측 추가 기슭막이 개수 제어(2026-08-22). */
|
||||
extraWalls?: ExtraWallControl,
|
||||
): CrossCardElement {
|
||||
// 실효 표시 반폭 — 개별값 > 전역값(2026-08-06). **구조물 없는 상태**의 절·성토선이
|
||||
// 원지반과 만나는 지점이 반폭 밖이면 이 카드만 자동 줌아웃(2026-08-22 사용자).
|
||||
// 실효 표시 반폭 — 개별값 > 전역값(2026-08-06). 절·성토선이 원지반과 만나는 지점
|
||||
// (교차점)이 반폭 밖이면 **이 카드만** 자동 줌아웃한다(2026-08-22, 판정 기준 개편
|
||||
// 2026-08-23: 배수관용 5m 사면 규칙 대신 실제 교차점 = toeFitHalfWidth).
|
||||
// 보유 샘플 밖까지는 넓히지 않는다 — 지반이 없어 빈 화면이 될 뿐이고, 그 경우
|
||||
// [보기 반폭 적용]이 필요한 폭으로 백엔드 재생성을 건다.
|
||||
const baseHalfWidth = stationWidth?.widthFor(section) ?? crossHalfWidth;
|
||||
const requiredHalfWidth = culvertRequiredHalfWidth(section);
|
||||
const sampledExtent = Math.max(
|
||||
0,
|
||||
...section.samples.map((sample) => Math.abs(sample.offset_m ?? 0)),
|
||||
);
|
||||
const requiredHalfWidth = Math.min(
|
||||
Math.max(culvertRequiredHalfWidth(section) ?? 0, toeFitHalfWidth(section) ?? 0),
|
||||
sampledExtent,
|
||||
);
|
||||
const effectiveHalfWidth =
|
||||
baseHalfWidth !== undefined && requiredHalfWidth !== null
|
||||
baseHalfWidth !== undefined && requiredHalfWidth > 0
|
||||
? Math.max(baseHalfWidth, requiredHalfWidth)
|
||||
: baseHalfWidth;
|
||||
const card: CrossCardElement = document.createElement("article");
|
||||
|
||||
Reference in New Issue
Block a user