From 5f0e81345f0f4202e5216dad8753993d503e66a0 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 17 Oct 2026 18:06:38 +0900 Subject: [PATCH] =?UTF-8?q?fix(393-2):=20B05=20=ED=9A=A1=EB=8B=A8=20?= =?UTF-8?q?=ED=8C=90=20=EC=B9=B4=EB=93=9C=20=E2=80=94=20=EC=95=94=20?= =?UTF-8?q?=EA=B2=BD=EA=B3=84=EC=84=A0=20=EC=A0=95=EB=B3=B8=20=EA=B7=B8?= =?UTF-8?q?=EB=8C=80=EB=A1=9C(=EC=9D=BD=EA=B8=B0=20=EC=A0=84=EC=9A=A9=20?= =?UTF-8?q?=C2=B7=20=EB=B0=9C=20=EB=8B=A8=EC=B6=94=20=EC=88=A8=EA=B9=80)?= =?UTF-8?q?=20=C2=B7=20=EA=B7=B8=EB=A6=BC=20=EB=86=92=EC=9D=B4=20=ED=8C=90?= =?UTF-8?q?=20=ED=85=8C=EB=91=90=EB=A6=AC=20=EC=95=88=EC=AA=BD=EC=97=90=20?= =?UTF-8?q?=EB=A7=9E=EC=B6=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XWh5wNNycMkbwMpACz1rte --- B05_Profile/B05_Profile_UI_RouteEdit_Cross.ts | 2 +- B05_Profile/B05_Profile_UI_RouteEdit_Cross_Card.ts | 14 ++++++++++++-- B05_Profile/B05_Profile_UI_Style_RouteEdit.css | 5 +++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/B05_Profile/B05_Profile_UI_RouteEdit_Cross.ts b/B05_Profile/B05_Profile_UI_RouteEdit_Cross.ts index d048aa3dc..d9686b521 100644 --- a/B05_Profile/B05_Profile_UI_RouteEdit_Cross.ts +++ b/B05_Profile/B05_Profile_UI_RouteEdit_Cross.ts @@ -147,7 +147,7 @@ function createPane(title: string, empty: string): CrossPane { let chrome = 0; let interval = 20; function drawCard(preview: CrossPreviewResponse, from: RouteCrossSource): void { - const plotHeight = (): number => Math.max(120, (size.height || 150) - chrome); + const plotHeight = (): number => Math.max(120, (box.clientHeight || 150) - chrome); // 테두리 안쪽 const build = (): HTMLElement => { const card = routeCrossCard( from, diff --git a/B05_Profile/B05_Profile_UI_RouteEdit_Cross_Card.ts b/B05_Profile/B05_Profile_UI_RouteEdit_Cross_Card.ts index fa9ba89c3..9b1255c38 100644 --- a/B05_Profile/B05_Profile_UI_RouteEdit_Cross_Card.ts +++ b/B05_Profile/B05_Profile_UI_RouteEdit_Cross_Card.ts @@ -6,7 +6,7 @@ * · 자료 = 새 노선 상세(계산 묶음) · 없으면 받아 둔 저장 상세 · 노선 초안 중 새 상세가 아직 없으면 없음 * (판은 옛 선 그림 `_Cross_Draw` 로 · 종단 임시 횡단 창도 그것 그대로) * · 단면 사본(station_id 앞머리 · design 사본) — B06 고름 · 줌 기억 · 면적 원본을 안 건드림 - * · 구조물 자리 = 정본만 읽는 제어기(`Structure_Layouts` · 세월교 · 박스 조정값) · 누름 막음(줌 단추만) + * · 구조물 자리 · 암 경계 = 정본만 읽는 제어기(`Structure_Layouts` · 세월교 · 박스 조정값) · 누름 막음(줌 단추만) * ========================================================================== */ import "../B06_Section/B06_Section_UI_Style_Cross_Controls.css"; @@ -26,6 +26,7 @@ import { culvertLinkFor, type CulvertLink } from "../B06_Section/B06_Section_UI_ import { fordAdjustOf } from "../B06_Section/B06_Section_UI_Cross_Ford_Geom"; import type { FordControl } from "../B06_Section/B06_Section_UI_Cross_Ford_Panel"; import { createCrossSectionCard } from "../B06_Section/B06_Section_UI_Cross_View"; +import type { RockBoundaryControl } from "../B06_Section/B06_Section_UI_Cross_Design"; import { designElevationAt } from "../B06_Section/B06_Section_UI_Section_Common"; /** 판 하나가 그릴 측점 — 그때 사본(이전 판으로 내려도 그대로). */ @@ -37,6 +38,15 @@ export interface RouteCrossSource { const none = (): void => undefined; +/** 암 경계선 = 정본 오프셋(없으면 기본 −0.5 · 0 을 넘지 않음 — B06 저장소 규칙) · 조정 없음. */ +const rockBoundary: RockBoundaryControl = { + stepM: 0.1, + defaultOffsetM: -0.5, + offsetFor: (section) => Math.min(section.design?.rock_boundary_offset_m ?? -0.5, 0), + adjust: none, + reset: none, +}; + /** 그 측점 단면 사본 — 상세가 없거나(초안 중 새 상세 전) 측점이 없으면 null. */ export function routeCrossSource( projectId: string, @@ -106,7 +116,7 @@ export function routeCrossCard( plotHeightPx, source.designZ, undefined, - undefined, + rockBoundary, null, undefined, undefined, diff --git a/B05_Profile/B05_Profile_UI_Style_RouteEdit.css b/B05_Profile/B05_Profile_UI_Style_RouteEdit.css index 2a8d4d5c5..909fa327d 100644 --- a/B05_Profile/B05_Profile_UI_Style_RouteEdit.css +++ b/B05_Profile/B05_Profile_UI_Style_RouteEdit.css @@ -262,6 +262,11 @@ cursor: default; } +/* 발 줄 조정 단추(암 경계 등) = 읽기 전용이라 숨김 */ +.b05-routeedit__cross-box > .b06-cross-card > footer button { + display: none; +} + .b05-routeedit__cross-svg { display: block; width: 100%;