feat(B06): 지형에 막힌 좌우 이동을 벽 툴팁으로 알림

추가 기슭막이를 옆으로 옮겨도 안 움직이는 측점이 있어(실측 1.0m 요청에 0.00~0.18m),
막는 규칙(원지반 매몰 금지)이 되돌린 양을 벽에 남기고 툴팁에 적음.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-06 20:13:47 +09:00
co-authored by Claude Opus 5
parent 8ee858e8fa
commit d529ebd170
3 changed files with 11 additions and 1 deletions
+4 -1
View File
@@ -176,7 +176,10 @@ export function appendCulvertOverlay(
(wall.floatGapM > 0.01
? ` · ⚠ 바닥 원지반 이격 ${wall.floatGapM.toFixed(2)}m — 하부 지지 구조물 별도(추가 예정)`
: ` · 근입 ${REVET_EMBED_DEPTH_M.toFixed(2)}m(실무 기초콘크리트 H=0.5 — 법정 규정 없음)`) +
(wall.lengthM ? ` · 연장 ${wall.lengthM.toFixed(1)}m` : ""),
(wall.lengthM ? ` · 연장 ${wall.lengthM.toFixed(1)}m` : "") +
(wall.shiftBlockedM
? ` · ⚠ 좌우 이동 ${wall.shiftBlockedM.toFixed(2)}m 는 지형에 막힘(더 나가면 벽이 묻힘)`
: ""),
);
if (onSelectRevet) revetShape.classList.add("is-selectable");
revetShapes.set(wallKey, revetShape);
@@ -439,6 +439,10 @@ export function buildOutletExtras(input: OutletExtrasInput): OutletExtrasResult
Math.max(0, base - groundBase),
form,
);
// 요청한 좌우 이동을 지형이 막았으면 그 양을 남긴다 — 「눌러도 안 움직인다」의 까닭을
// 툴팁으로 알리기 위함이다(2026-09-06 실측: 다섯 측점 중 넷이 1.0m 요청에 0.0m 이동).
const blocked = Math.max(0, (requestedX ?? 0) - appliedX);
if (blocked > 0.005) wall.shiftBlockedM = Math.round(blocked * 100) / 100;
walls.push(wall);
// 되받기 — 지반에 맞춰 조정한 값이 **실제 적용 높이**다(조정창이 그대로 받아 적는다).
appliedAdjusts.push({
@@ -71,6 +71,9 @@ export interface WallLayout {
* 별도 지지 구조물로 메운다(추가 예정). 0이면 지반 위(근입 0.5m).
*/
floatGapM: number;
/** 사용자가 요청한 좌우 이동을 **지형이 막아 못 나간** 거리(m, 2026-09-06).
* 0보다 크면 그 자리에서 더 나가면 벽이 원지반에 묻힌다는 뜻이라 툴팁으로 알린다. */
shiftBlockedM?: number;
/** 재질(메/찰/콘크리트) — 높이 한계를 정한다(2026-08-22 사용자). */
material: RevetMaterial;
outward: number;