fix(B06): 독립 기슭막이 좌우 로직을 성토 경로 하나로 통일한다

이관 뒤 독립 기슭막이 벽 역할이 uphill_side로 정해져, 고른 쪽이 상단이면
유입 역할(집수정 후보·placeInletWall·다단 없음), 하단이면 유출 역할
(성토부선+buildExtrasAt)을 타서 좌우 동작이 갈렸다. 새 기하 코드를 만들지
않고 이미 있는 유출 경로 인자를 유입 쪽에도 넘겨 재사용한다.

- Const: revetHeightLimit 콘크리트 4.0 → 5.0 (materialLimit과 통일)
- Geom: hidden_pipe면 basinReason null, 유입 배치에 requireCrossing 전달,
  basinExtras 채널을 유입 벽 성토부선·다단으로 사용, inletFill 생략
- Solve: placeInletWall이 requireCrossing을 통과시킨다(기본 false 유지)
- Wire: 링크 카드에서 hidden_pipe면 유입측 다단·성토부선을 벽 연장에 맞춰 유지
- Panel/View_Structure: hiddenPipe deps 추가 — 집수정 형식 숨김, 유입 벽에도
  단 수 행 표시
- Culvert: hidden_pipe의 basinFill 툴팁 이름을 "유입부"로

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-29 09:34:45 +09:00
co-authored by Claude Opus 5
parent 5142bdde9b
commit c0bebe951d
7 changed files with 68 additions and 32 deletions
@@ -138,11 +138,11 @@ export function structurePanelDeps(ctx: StructurePanelContext): StructurePanelDe
canNudge: (key) => key !== "inlet" || !ctx.inletIsBasin(),
// 걸음 분류(2026-08-29 사용자): **배관 기준벽만 1m**, 나머지(독립 기슭막이 기준벽·
// 배관/독립 종속 추가 벽·옛 D경로 독립 벽)는 0.1m.
fineMove: (key) =>
(key !== "inlet" && key !== "outlet") || ctx.hiddenPipe(),
fineMove: (key) => (key !== "inlet" && key !== "outlet") || ctx.hiddenPipe(),
optionsFor: () => ctx.inletOptions(),
extraState: () => ctx.extraState(),
basinExtraState: () => ctx.basinExtraState(),
hiddenPipe: () => ctx.hiddenPipe(),
setExtraCount: (count) => {
// 줄어들며 사라지는 벽이 선택 중이면 선택을 유출 벽으로 옮긴다(빈 대상 방지).
const active = ctx.activeRevet() ?? "";