fix(b06): 물넘이 콘크리트 누름 — 얇은 형상 판정면 아래로 최소 두께 12 px(보라 띠 밖) · 누름 = 그 물넘이 고름(걸친 연동 관 · 자기 다른 관 아님) · 경사각도 상자 (294-7)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014utrjfoW831Vc5wJUd13kL
This commit is contained in:
2026-10-12 22:35:58 +09:00
co-authored by Claude Opus 5.5
parent e2e71ad3ca
commit db5b7656db
11 changed files with 355 additions and 17 deletions
+4 -3
View File
@@ -232,13 +232,14 @@ export function createCrossSectionCard(
},
selectCard: () => onSelect(section.station_id),
});
const toggleRevet = (key: RevetPick): void => {
const toggleRevet = (key: RevetPick, ownerM?: number): void => {
const wasSelected = isSelected;
activeRevet = activeRevet === key ? null : key;
showRevetControl(activeRevet !== null);
// 강조는 **연동된 카드 전부**라 제어기를 거친다(제어기가 목록에 다시 칠하기를
// 알린다 — 2026-08-30 사용자). 배선이 없어도 이 카드만은 즉시 맞춘다.
revetOffset?.select(section.chainage_m, activeRevet);
// `ownerM` = 폼에 올릴 시설 자리(물넘이 콘크리트 = 그 물넘이 · 294-7)
revetOffset?.select(section.chainage_m, activeRevet, ownerM);
card.applyRevetHighlight?.(revetOffset?.highlightFor(section) ?? activeRevet);
if (activeRevet !== null && activeArea !== null) {
activeArea = null;
@@ -587,7 +588,7 @@ export function createCrossSectionCard(
// 물넘이포장 · 맹암거 형상 고름(287-5 · 288-2) — 다른 시설과 같은 창구 · 보라 손잡이 아래 · 누름만
const setShapeActive = attachShapePick(
plotLayer,
revetOffset && shapePickRoute(svg, () => toggleRevet("pipe")),
revetOffset && shapePickRoute(svg, (at) => toggleRevet("pipe", at)),
);
if (setShapeActive) {
const baseSetActive = setRevetActive;