Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1
This commit is contained in:
@@ -50,9 +50,9 @@ import {
|
||||
buildAlignment,
|
||||
planElevationAt,
|
||||
toAlignmentBase,
|
||||
} from "../B05_Profile/B05_Profile_UI_Profile_Alignment";
|
||||
import type { ProfileAlignment } from "../B05_Profile/B05_Profile_UI_Profile_Alignment";
|
||||
import { readAlignment, toDesignProfile } from "../B05_Profile/B05_Profile_UI_Profile_Data";
|
||||
} from "../B05_Profile/logic/B05_Profile_UI_Profile_Alignment";
|
||||
import type { ProfileAlignment } from "../B05_Profile/logic/B05_Profile_UI_Profile_Alignment";
|
||||
import { readAlignment, toDesignProfile } from "../B05_Profile/logic/B05_Profile_UI_Profile_Data";
|
||||
import { useStationKeys } from "./B06_Section_Station_Keys";
|
||||
import { readAlignmentDraft } from "../B05_Profile/B05_Profile_UI_Profile_Edit";
|
||||
import { hasStaleDesigns } from "./B06_Section_UI_Section_Common";
|
||||
|
||||
@@ -30,7 +30,7 @@ import type { CrossSectionPatch, SectionDetailResponse } from "./B06_Section_Api
|
||||
import { fetchSectionDetail, saveSections } from "./B06_Section_Api_Fetch";
|
||||
import { USER_TOUCHED_KEYS } from "./B06_Section_Cross_Refresh";
|
||||
import { kindChangedChainages, STRUCTURE_ADJUST_KEYS } from "./B06_Section_Api_Culvert_Options";
|
||||
import type { PipelineStation } from "../A00_Common/design/design_pipeline_types";
|
||||
import type { PipelineStation } from "../A00_Common/design/logic/design_pipeline_types";
|
||||
import {
|
||||
carryStationKeys,
|
||||
registeredKeys,
|
||||
|
||||
@@ -15,8 +15,8 @@ import type { CrossSection } from "./B06_Section_Api_Fetch";
|
||||
import { withoutGuardedFill } from "./B06_Section_UI_Cross_Body_Guard";
|
||||
import { computeBoxLayout, DEFAULT_BOX_SIDE_ADJUST } from "./B06_Section_UI_Cross_Box_Geom";
|
||||
import type { BoxLayout } from "./B06_Section_UI_Cross_Box_Geom";
|
||||
import { REVET_EMBED_DEPTH_M } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { groundInterpolator } from "./B06_Section_UI_Cross_Culvert_Solve";
|
||||
import { REVET_EMBED_DEPTH_M } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import { groundInterpolator } from "./logic/B06_Section_UI_Cross_Culvert_Solve";
|
||||
import { DEFAULT_BASIN_ADJUST, ZERO_ADJUST } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import type { BasinShape, WallAdjust, WallLayout } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import {
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
import type { CrossSection, SectionSample } from "./B06_Section_Api_Fetch";
|
||||
import { computeBoxLayout, DEFAULT_BOX_SIDE_ADJUST } from "./B06_Section_UI_Cross_Box_Geom";
|
||||
import type { BoxLayout } from "./B06_Section_UI_Cross_Box_Geom";
|
||||
import { FILL_SLOPE_RATIO_MIN } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { FILL_SLOPE_RATIO_MIN } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type {
|
||||
CulvertDesignTrim,
|
||||
CulvertLayout,
|
||||
|
||||
@@ -25,9 +25,9 @@ import type {
|
||||
OutletFillSegment,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import { buildExtrasAt } from "./B06_Section_UI_Cross_Culvert_Extra";
|
||||
import { FILL_SLOPE_RATIO_MIN } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { designInterpolator, groundInterpolator } from "./B06_Section_UI_Cross_Culvert_Solve";
|
||||
import { structureCutPoints, structureCutSpec } from "./B06_Section_UI_Cross_Structure_Cut";
|
||||
import { FILL_SLOPE_RATIO_MIN } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import { designInterpolator, groundInterpolator } from "./logic/B06_Section_UI_Cross_Culvert_Solve";
|
||||
import { structureCutPoints, structureCutSpec } from "./logic/B06_Section_UI_Cross_Structure_Cut";
|
||||
|
||||
/** 구체 한쪽 끝의 조작값 — 좌·우를 따로 잡는다(2026-08-25 사용자). */
|
||||
export interface BoxSideAdjust {
|
||||
|
||||
@@ -14,7 +14,7 @@ import {
|
||||
buildRockBoundaryControl,
|
||||
sectionModeLabel,
|
||||
} from "./B06_Section_UI_Cross_Design";
|
||||
import { type FillSlopeLength, fillSlopeLengths } from "./B06_Section_UI_Cross_Fit";
|
||||
import { type FillSlopeLength, fillSlopeLengths } from "./logic/B06_Section_UI_Cross_Fit";
|
||||
import {
|
||||
type DesignChangeHandler,
|
||||
L,
|
||||
|
||||
@@ -24,7 +24,7 @@ import type {
|
||||
WallLayout,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Geom";
|
||||
import { appendPipeInfoText, outlineBox } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import { pipeLengthText } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { pipeLengthText } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import { appendWallTrench, foundationChoice } from "./B06_Section_UI_Cross_Excavation";
|
||||
import {
|
||||
appendChuteBand,
|
||||
|
||||
@@ -22,15 +22,15 @@ import {
|
||||
REVET_LEAN_RATIO,
|
||||
REVET_THICKNESS_M,
|
||||
WALL_MIN_PURE_HEIGHT_M,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
} from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type {
|
||||
OffsetPoint,
|
||||
OutletFillSegment,
|
||||
WallAdjust,
|
||||
WallLayout,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import { structureCutPoints } from "./B06_Section_UI_Cross_Structure_Cut";
|
||||
import type { StructureCutSpec } from "./B06_Section_UI_Cross_Structure_Cut";
|
||||
import { structureCutPoints } from "./logic/B06_Section_UI_Cross_Structure_Cut";
|
||||
import type { StructureCutSpec } from "./logic/B06_Section_UI_Cross_Structure_Cut";
|
||||
import { buildRevetWallGeometry } from "./B06_Section_UI_Cross_Wall";
|
||||
|
||||
export interface OutletExtrasInput {
|
||||
|
||||
@@ -19,9 +19,9 @@ import {
|
||||
REVET_LEAN_RATIO,
|
||||
REVET_THICKNESS_M,
|
||||
revetTargetHeight,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { RevetMaterial } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { outlineLeanOf } from "./B06_Section_UI_Cross_Lean";
|
||||
} from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { RevetMaterial } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import { outlineLeanOf } from "./logic/B06_Section_UI_Cross_Lean";
|
||||
import { buildRevetWallGeometry } from "./B06_Section_UI_Cross_Wall";
|
||||
import {
|
||||
bodyGuardAxes,
|
||||
@@ -46,7 +46,7 @@ import type {
|
||||
import { DEFAULT_BASIN_ADJUST } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
|
||||
// 상수·자료형은 분리 파일에 있고, 기존 import 경로를 유지하기 위해 그대로 다시 내보낸다.
|
||||
export * from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
export * from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
export * from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
|
||||
import {
|
||||
@@ -56,16 +56,16 @@ import {
|
||||
decideInletBasin,
|
||||
BASIN_INNER_WIDTH_M,
|
||||
inletChoiceAvailability,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Basin";
|
||||
} from "./logic/B06_Section_UI_Cross_Culvert_Basin";
|
||||
import { inletGroundConnector } from "./B06_Section_UI_Cross_Culvert_Extra";
|
||||
import { withBackCut } from "./B06_Section_UI_Cross_Structure_Cut";
|
||||
import { withBackCut } from "./logic/B06_Section_UI_Cross_Structure_Cut";
|
||||
import {
|
||||
buildCulvertTiers,
|
||||
drawnFillPoints,
|
||||
outletPipeEnd,
|
||||
slopeZeroAnchor,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Tiers";
|
||||
import type { FillSlopeSegment, WallVertical } from "./B06_Section_UI_Cross_Culvert_Solve";
|
||||
import type { FillSlopeSegment, WallVertical } from "./logic/B06_Section_UI_Cross_Culvert_Solve";
|
||||
import {
|
||||
cutLength,
|
||||
fillSlopeOf,
|
||||
@@ -75,7 +75,7 @@ import {
|
||||
pipeAxisSolver,
|
||||
placePipeWall,
|
||||
slopeLengthAlong,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Solve";
|
||||
} from "./logic/B06_Section_UI_Cross_Culvert_Solve";
|
||||
|
||||
/** 배수관 세트 기하 계산. 부족한 입력이면 null — 그리기와 분리(설계선 트림이 먼저 쓴다). */
|
||||
export function computeCulvertLayout(
|
||||
|
||||
@@ -10,13 +10,13 @@ import {
|
||||
GUARD_CUT_BERM_M,
|
||||
REVET_EMBED_DEPTH_M,
|
||||
REVET_TRAP_TOP_M,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
} from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { OutletExtrasResult } from "./B06_Section_UI_Cross_Culvert_Extra";
|
||||
import { buildExtrasAt } from "./B06_Section_UI_Cross_Culvert_Extra";
|
||||
import { fillWallBaseWidth } from "./B06_Section_UI_Cross_Culvert_Solve";
|
||||
import { fillWallBaseWidth } from "./logic/B06_Section_UI_Cross_Culvert_Solve";
|
||||
import type { OffsetPoint, WallAdjust, WallLayout } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import { outlineLeanOf } from "./B06_Section_UI_Cross_Lean";
|
||||
import { structureCutSpec } from "./B06_Section_UI_Cross_Structure_Cut";
|
||||
import { outlineLeanOf } from "./logic/B06_Section_UI_Cross_Lean";
|
||||
import { structureCutSpec } from "./logic/B06_Section_UI_Cross_Structure_Cut";
|
||||
|
||||
// d의 0점 = **성토선 길이 0 지점**(벽 상단 = 노견 — 2026-08-23 사용자 확정).
|
||||
// 그 자리(하단선 중점)는 이음선 상단점이 노견 끝에 오는 offset이고, 기본 자리는
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* ========================================================================== */
|
||||
|
||||
import type { CulvertSet } from "./B06_Section_Api_Fetch";
|
||||
import type { RevetMaterial } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { RevetMaterial } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
|
||||
/**
|
||||
* 기슭막이 1매의 사용자 조작값(2026-08-22 확정 4축):
|
||||
|
||||
@@ -18,15 +18,15 @@ import {
|
||||
basinSpanOfSpec,
|
||||
FILL_SLOPE_RATIO_MIN,
|
||||
revetSpanOfSpec,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { EXTRA_SPAN_DEFAULT } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { StructureSpan } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
} from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import { EXTRA_SPAN_DEFAULT } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { StructureSpan } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { WallAdjust } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import {
|
||||
designInterpolator,
|
||||
groundInterpolator,
|
||||
slopeToeOffset,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Solve";
|
||||
} from "./logic/B06_Section_UI_Cross_Culvert_Solve";
|
||||
/**
|
||||
* 기슭막이 4축 조작 제어(2026-08-22 확정) — 벽을 눌러 고르고 조정창에서
|
||||
* 좌우(x)·상하(d, 성토선 대각)·높이(h)·재질(m)을 만진다. 고른 벽은 여기 담아 두어
|
||||
|
||||
@@ -24,7 +24,7 @@ import {
|
||||
fetchStructureTypes,
|
||||
readPendingStructures,
|
||||
} from "../B05_Profile/B05_Profile_Api_Structures";
|
||||
import { structureOptionLines } from "../B05_Profile/B05_Profile_UI_Structures_Balloon";
|
||||
import { structureOptionLines } from "../B05_Profile/logic/B05_Profile_UI_Structures_Balloon";
|
||||
import {
|
||||
readGroupItems,
|
||||
readSummaryItem,
|
||||
@@ -32,7 +32,7 @@ import {
|
||||
type SummaryItem,
|
||||
} from "../common_util/common_util_summary_item";
|
||||
import type { CrossNoteCad, CrossSection } from "./B06_Section_Api_Fetch";
|
||||
import { pipeLengthWhole } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { pipeLengthWhole } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
|
||||
const noteKey = (chainageM: number): string => chainageM.toFixed(2);
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ import {
|
||||
type Face,
|
||||
type Pt,
|
||||
type SplitPiece,
|
||||
} from "./B06_Section_UI_Cross_Detail_Geom";
|
||||
} from "./logic/B06_Section_UI_Cross_Detail_Geom";
|
||||
|
||||
const SVG_NS = "http://www.w3.org/2000/svg";
|
||||
export const PIECE_HIT_CLASS = "b06-detail__piece";
|
||||
|
||||
@@ -23,7 +23,7 @@ import type {
|
||||
} from "./B06_Section_Api_Fetch";
|
||||
import type { CrossPickPiece, SectionSample } from "./B06_Section_Api_Types";
|
||||
import type { CrossAxesOptions } from "./B06_Section_UI_Cross_Axes";
|
||||
import { pickLines, piecesValue } from "./B06_Section_UI_Cross_Detail_Geom";
|
||||
import { pickLines, piecesValue } from "./logic/B06_Section_UI_Cross_Detail_Geom";
|
||||
import { attachDetailSelect } from "./B06_Section_UI_Cross_Detail_Select";
|
||||
import { pointsArea } from "./B06_Section_UI_Cross_Pick_Order";
|
||||
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
* ========================================================================== */
|
||||
|
||||
import type { CrossSection } from "./B06_Section_Api_Fetch";
|
||||
import { BERM_INFO_TEXT, bermReviewStations } from "./B06_Section_UI_Cross_Berm_Info";
|
||||
import { fillSlopeLengths, slopeRunLengths } from "./B06_Section_UI_Cross_Fit";
|
||||
import { BERM_INFO_TEXT, bermReviewStations } from "./logic/B06_Section_UI_Cross_Berm_Info";
|
||||
import { fillSlopeLengths, slopeRunLengths } from "./logic/B06_Section_UI_Cross_Fit";
|
||||
import {
|
||||
FILL_SLOPE_WARN_TEXT,
|
||||
fillSlopeWarnings,
|
||||
type FillSlopeWarning,
|
||||
} from "./B06_Section_UI_Cross_FillSlope_Warn";
|
||||
} from "./logic/B06_Section_UI_Cross_FillSlope_Warn";
|
||||
import { L, stationLabel } from "./B06_Section_UI_Section_Common";
|
||||
import { pavedBySpecs } from "./B06_Section_Cross_Refresh";
|
||||
import { createNoticeChips, type NoticeChipRow } from "./B06_Section_UI_Cross_Notice_Chips";
|
||||
|
||||
@@ -21,17 +21,17 @@
|
||||
|
||||
import { groundLine } from "./B06_Section_UI_Cross_Wall_Hatch";
|
||||
import type { CrossSection, FordSet, SectionSample } from "./B06_Section_Api_Fetch";
|
||||
import { GUARD_CUT_BERM_M, pipeWallThicknessM } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { GUARD_CUT_BERM_M, pipeWallThicknessM } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type {
|
||||
BasinLayout,
|
||||
CulvertDesignTrim,
|
||||
OffsetPoint,
|
||||
OutletFillSegment,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import { basinApproachPoints, buildBasin } from "./B06_Section_UI_Cross_Culvert_Basin";
|
||||
import { basinApproachPoints, buildBasin } from "./logic/B06_Section_UI_Cross_Culvert_Basin";
|
||||
import { bermCut, buildExtrasAt } from "./B06_Section_UI_Cross_Culvert_Extra";
|
||||
import { designInterpolator, groundInterpolator } from "./B06_Section_UI_Cross_Culvert_Solve";
|
||||
import { structureCutSpec } from "./B06_Section_UI_Cross_Structure_Cut";
|
||||
import { designInterpolator, groundInterpolator } from "./logic/B06_Section_UI_Cross_Culvert_Solve";
|
||||
import { structureCutSpec } from "./logic/B06_Section_UI_Cross_Structure_Cut";
|
||||
|
||||
/** 측벽 한 매의 조작값 — 좌우만(139-3). `heightM` · `slopeM` 은 옛 저장(측벽마다 높이 · 1:1.2
|
||||
* 대각) 읽기 전용 — `dropM` 이 없을 때 바닥판 표고로 옮김(`fordDropOf`). */
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* · 키보드 방향키 = 십자 버튼(2026-08-23) — 셀렉트·입력 포커스 중엔 양보.
|
||||
* ========================================================================== */
|
||||
|
||||
import { FILL_SLOPE_RATIO_MIN } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { FILL_SLOPE_RATIO_MIN } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
|
||||
/** 조작 버튼 하나 — 클릭이 카드 선택·팬으로 번지지 않게 막는다. */
|
||||
export function makeButton(label: string, title: string, onClick: () => void): HTMLButtonElement {
|
||||
|
||||
@@ -24,11 +24,11 @@ import {
|
||||
REVET_EMBED_DEPTH_M,
|
||||
REVET_THICKNESS_M,
|
||||
WALL_MIN_PURE_HEIGHT_M,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { outlineLeanOf } from "./B06_Section_UI_Cross_Lean";
|
||||
} from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import { outlineLeanOf } from "./logic/B06_Section_UI_Cross_Lean";
|
||||
import { catalogRow } from "../common_util/common_util_structure_catalog";
|
||||
import type { RevetMaterial } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { fillWallBaseWidth, groundInterpolator } from "./B06_Section_UI_Cross_Culvert_Solve";
|
||||
import type { RevetMaterial } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import { fillWallBaseWidth, groundInterpolator } from "./logic/B06_Section_UI_Cross_Culvert_Solve";
|
||||
import { buildExtrasAt } from "./B06_Section_UI_Cross_Culvert_Extra";
|
||||
import {
|
||||
ZERO_ADJUST,
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* ========================================================================== */
|
||||
|
||||
import type { InletStructureChoice, RevetKey, RevetPick } from "./B06_Section_UI_Cross_Culvert";
|
||||
import { REVET_FORMS } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { REVET_FORMS } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { BasinAdjust, WallAdjust } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import type { SpanValues } from "./B06_Section_UI_Cross_Culvert_Wire";
|
||||
import { L } from "./B06_Section_UI_Section_Common";
|
||||
|
||||
@@ -72,7 +72,7 @@ import type { CrossWidthActions } from "./B06_Section_UI_Cross_View_Zoom";
|
||||
import type { CutSlopeControl } from "./B06_Section_UI_Cross_CutSlope";
|
||||
import { createCrossAxes, IDENTITY_VIEW } from "./B06_Section_UI_Cross_Axes";
|
||||
import type { RevetHighlightSetter, RevetPick } from "./B06_Section_UI_Cross_Culvert";
|
||||
import { REVET_FORM_DEFAULT } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { REVET_FORM_DEFAULT } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import {
|
||||
CROSS_PAD,
|
||||
CROSS_WIDTH,
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
import type { CrossSection } from "./B06_Section_Api_Fetch";
|
||||
import type { RevetKey, RevetPick } from "./B06_Section_UI_Cross_Culvert";
|
||||
import { REVET_FORM_DEFAULT } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { REVET_FORM_DEFAULT } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { WallAdjust } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import type {
|
||||
CulvertLink,
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
REVET_EMBED_DEPTH_M,
|
||||
REVET_FORM_DEFAULT,
|
||||
WALL_MIN_PURE_HEIGHT_M,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
} from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import { clampAxis, type AxisDragSpec } from "./B06_Section_UI_Cross_Panel_Base";
|
||||
import type { CulvertLayout } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import type { WallAdjust } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
|
||||
@@ -15,8 +15,8 @@ import {
|
||||
REVET_LEAN_RATIO,
|
||||
REVET_THICKNESS_M,
|
||||
WALL_MIN_PURE_HEIGHT_M,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { RevetMaterial } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
} from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { RevetMaterial } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { OffsetPoint, WallLayout } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import { appendWallHatch } from "./B06_Section_UI_Cross_Wall_Hatch";
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* · 바자 : 세로 말뚝 3줄 + 가로 엮음 눈금.
|
||||
* ========================================================================== */
|
||||
|
||||
import { REVET_THICKNESS_M } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import { REVET_THICKNESS_M } from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { OffsetPoint, WallLayout } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
|
||||
const SVG_NS = "http://www.w3.org/2000/svg";
|
||||
|
||||
@@ -17,7 +17,7 @@ import {
|
||||
import { invalidateSectionDetail } from "./B06_Section_Section_Store";
|
||||
import { onAnySwap } from "./B06_Section_Swap_Bus";
|
||||
import type { DesignViewSave } from "../A00_Common/design/design_shared";
|
||||
import { buildCrossPatches, type CrossPatchSources } from "./B06_Section_UI_Page_Patches";
|
||||
import { buildCrossPatches, type CrossPatchSources } from "./logic/B06_Section_UI_Page_Patches";
|
||||
import {
|
||||
clearState,
|
||||
readByKey,
|
||||
|
||||
@@ -15,7 +15,7 @@ import {
|
||||
applySpanPatch,
|
||||
revetWallSpec,
|
||||
WALL_MIN_PURE_HEIGHT_M,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
} from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { CrossSection, CulvertSet } from "./B06_Section_Api_Fetch";
|
||||
import type { createStationControls } from "./B06_Section_UI_Page_Station_Controls";
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
type SpanValues,
|
||||
type StructureSpanControl,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Wire";
|
||||
import * as CulvertConst from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import * as CulvertConst from "./logic/B06_Section_UI_Cross_Culvert_Const";
|
||||
|
||||
/** 구간값 제어가 페이지·상위 제어기에서 받아 쓰는 창구. */
|
||||
export interface SpanControlDeps {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* ========================================================================== */
|
||||
|
||||
import { useDesignStore } from "../A00_Common/design/design_store";
|
||||
import type { DesignPipeline } from "../A00_Common/design/design_pipeline";
|
||||
import type { DesignPipeline } from "../A00_Common/design/logic/design_pipeline";
|
||||
import { pagePipeline, pipelineDetail } from "../A00_Common/design/design_pipeline_page";
|
||||
import type { SectionDetailResponse } from "./B06_Section_Api_Types";
|
||||
import { onAnySwap, swapSectionStations } from "./B06_Section_Section_Store";
|
||||
|
||||
@@ -31,7 +31,7 @@ import {
|
||||
type StructureType,
|
||||
} from "../B05_Profile/B05_Profile_Api_Structures";
|
||||
import { readPendingPipes, writePendingPipes } from "../B05_Profile/B05_Profile_Api_Pipes_Draft";
|
||||
import { mergeFacilityOptions } from "../B05_Profile/B05_Profile_UI_Drainage_Facility_Merge";
|
||||
import { mergeFacilityOptions } from "../B05_Profile/logic/B05_Profile_UI_Drainage_Facility_Merge";
|
||||
import { fordWaitsOf, waitsFordHeight } from "../B05_Profile/B05_Profile_UI_Drainage_Ford_Fill";
|
||||
import { fetchDetailPipePoints } from "../B04_PreProcess/B04_PreProcess_Api_Fetch";
|
||||
import {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
① 짝(ts ↔ py · 거울 시험):
|
||||
|
||||
- `Engine_Design.py` ↔ `common_util_cross_design.ts` · `Engine_Areas.py` ↔ `common_util_cross_design_areas.ts` · `test_b06_cross_design_mirror.py`
|
||||
- `Engine_Culvert.py` ↔ `common_util_culvert_sets.ts` · `UI_Cross_Culvert_Const.ts` · `test_b06_culvert_sets_mirror.py` · `test_b06_pipe_wall_height_mirror.py`
|
||||
- `Engine_Culvert.py` ↔ `common_util_culvert_sets.ts` · `logic/UI_Cross_Culvert_Const.ts` · `test_b06_culvert_sets_mirror.py` · `test_b06_pipe_wall_height_mirror.py`
|
||||
- `Engine_Structures_Wall.py` ↔ `common_util_structure_walls.ts` · `test_b06_structure_walls_mirror.py`
|
||||
- 지형 표본 = `common_util_surface_sampler` 하나(`Engine_SampleExtend` 도)
|
||||
|
||||
|
||||
+3
-3
@@ -17,9 +17,9 @@ import type {
|
||||
CrossStationResult,
|
||||
PipelineStation,
|
||||
StageContext,
|
||||
} from "../A00_Common/design/design_pipeline_types";
|
||||
import { planElevationAt } from "../B05_Profile/B05_Profile_UI_Profile_Alignment";
|
||||
import { groundSamples } from "./logic/B06_Section_Station_Swap";
|
||||
} from "../../A00_Common/design/logic/design_pipeline_types";
|
||||
import { planElevationAt } from "../../B05_Profile/logic/B05_Profile_UI_Profile_Alignment";
|
||||
import { groundSamples } from "./B06_Section_Station_Swap";
|
||||
|
||||
export { groundSamples };
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
* 순수 계산(DOM · fetch · 세션 없음).
|
||||
* ========================================================================== */
|
||||
|
||||
import type { PipelineStation } from "../../A00_Common/design/design_pipeline_types";
|
||||
import type { PipelineStation } from "../../A00_Common/design/logic/design_pipeline_types";
|
||||
import type { CrossSection, SectionDetailResponse, SectionStation } from "../B06_Section_Api_Fetch";
|
||||
|
||||
interface Sample {
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@
|
||||
* 벽이 선 쪽은 뺀다 — 성토사면 경고와 같은 규칙(`wallSides`).
|
||||
* ========================================================================== */
|
||||
|
||||
import type { CrossSection } from "./B06_Section_Api_Fetch";
|
||||
import type { CrossSection } from "../B06_Section_Api_Fetch";
|
||||
import {
|
||||
wallSides,
|
||||
type FillSlopeSideLength,
|
||||
+2
-2
@@ -20,7 +20,7 @@ import {
|
||||
REVET_FREEBOARD_M,
|
||||
REVET_LEAN_RATIO,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { CrossDesign, CulvertSideSpec } from "./B06_Section_Api_Fetch";
|
||||
import type { CrossDesign, CulvertSideSpec } from "../B06_Section_Api_Fetch";
|
||||
import {
|
||||
minShoulderWallOffset,
|
||||
slopeLengthAlong,
|
||||
@@ -33,7 +33,7 @@ import type {
|
||||
EndFace,
|
||||
OffsetPoint,
|
||||
InletStructureChoice,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
} from "../B06_Section_UI_Cross_Culvert_Types";
|
||||
import { structureCutPoints, structureCutSpec } from "./B06_Section_UI_Cross_Structure_Cut";
|
||||
|
||||
/** 자동(기본) 집수정 모양(54-36) — 좌측 폼 「(기본)」 표시도 이 값. */
|
||||
+2
-2
@@ -4,8 +4,8 @@
|
||||
* 분리했다(700줄 제한). 값의 근거는 각 상수 주석에 지식DB 출처로 남긴다.
|
||||
* ========================================================================== */
|
||||
|
||||
import type { CrossSection, CulvertSideSpec } from "./B06_Section_Api_Fetch";
|
||||
import type { SpanRole, SpanValues } from "./B06_Section_UI_Cross_Culvert_Wire";
|
||||
import type { CrossSection, CulvertSideSpec } from "../B06_Section_Api_Fetch";
|
||||
import type { SpanRole, SpanValues } from "../B06_Section_UI_Cross_Culvert_Wire";
|
||||
|
||||
/** 관 위 최소 토피(m) — 프론트 정의처(백엔드는 `B06_Section_Engine_Culvert.MIN_PIPE_COVER_M`).
|
||||
* ⚠ 임도 배수관 토피 규정이 지식DB에 없어 별표2 교량·암거 "복토 50㎝ 이상"을 교차
|
||||
+2
-2
@@ -4,7 +4,7 @@
|
||||
* 자리 풀이. 본체(`_Cross_Culvert_Geom.ts`)에서 분리했다(700줄 제한).
|
||||
* ========================================================================== */
|
||||
|
||||
import type { SectionSample } from "./B06_Section_Api_Fetch";
|
||||
import type { SectionSample } from "../B06_Section_Api_Fetch";
|
||||
import {
|
||||
FILL_MIN_RISE_M,
|
||||
FILL_SLOPE_MAX_LENGTH_M,
|
||||
@@ -18,7 +18,7 @@ import type {
|
||||
OffsetPoint,
|
||||
PipeEnd,
|
||||
WallAdjust,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
} from "../B06_Section_UI_Cross_Culvert_Types";
|
||||
|
||||
/** 기슭막이 하단선 폭(m) — 사다리꼴 밑변. 자리 기준(하단선 중점) 환산에 쓴다.
|
||||
* `lean` = 그 벽의 전면 기울기(표준경사 · `revetWallSpec().lean`). */
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
* 나눔(`splitAtCrossings`) · 닫힌 영역(`findFaces` · 259-2)은 화면 몫 — 서버는 저장된 조각 두 끝만 검산.
|
||||
* ========================================================================== */
|
||||
|
||||
import type { CrossDesign, CrossPickPiece, SectionSample } from "./B06_Section_Api_Types";
|
||||
import type { CrossDesign, CrossPickPiece, SectionSample } from "../B06_Section_Api_Types";
|
||||
|
||||
export type Pt = [number, number];
|
||||
export type LineKind = CrossPickPiece["line"];
|
||||
+1
-1
@@ -11,7 +11,7 @@
|
||||
* 길이는 `fillSlopeLengths`(카드 머리 「성토사면」 칸과 같은 값)를 받아 쓴다 — 여기서 다시 재지 않는다.
|
||||
* ========================================================================== */
|
||||
|
||||
import type { CrossSection } from "./B06_Section_Api_Fetch";
|
||||
import type { CrossSection } from "../B06_Section_Api_Fetch";
|
||||
import { FILL_SLOPE_MAX_LENGTH_M } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
|
||||
/** 브레인 승인 문구 그대로(2026-09-14) — 고치면 승인을 다시 받을 것. */
|
||||
+1
-1
@@ -12,7 +12,7 @@
|
||||
* 기울기와 지반 기울기 차이로 만나는 자리를 추정한다.
|
||||
* ========================================================================== */
|
||||
|
||||
import type { CrossDesign, CrossSection } from "./B06_Section_Api_Fetch";
|
||||
import type { CrossDesign, CrossSection } from "../B06_Section_Api_Fetch";
|
||||
import { designInterpolator, groundInterpolator } from "./B06_Section_UI_Cross_Culvert_Solve";
|
||||
|
||||
/** 설계선과 지반선이 만났다고 보는 표고 차(m). */
|
||||
+2
-2
@@ -9,8 +9,8 @@
|
||||
* ⚠ 파일 판이 바뀌면 이 import 도 옮길 것 — 시험 `test_b06_wall_lean_table` 이 최신 판을 대조.
|
||||
* ========================================================================== */
|
||||
|
||||
import { type WallLeanInput, wallLeanRatio } from "../common_util/common_util_masonry_slope";
|
||||
import masonrySlope from "../resources/data_masonry/masonry_slope_2026-01-01.json";
|
||||
import { type WallLeanInput, wallLeanRatio } from "../../common_util/common_util_masonry_slope";
|
||||
import masonrySlope from "../../resources/data_masonry/masonry_slope_2026-01-01.json";
|
||||
import { REVET_FORM_DEFAULT } from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
|
||||
/** 벽 전면 기울기 n — 표를 못 고르면 종전 0.3. */
|
||||
+4
-4
@@ -8,10 +8,10 @@
|
||||
* 쓰는 곳 = 흙막이 수평공간 뒤 · 박스 끝 · 세월교 측벽 끝 · ㄴ·ㄷ 집수정 끝 · 절토 쪽 배관 유출 벽 뒤.
|
||||
* ========================================================================== */
|
||||
|
||||
import { cutProfilePoints } from "../common_util/common_util_cross_berm";
|
||||
import type { BermSpec } from "../common_util/common_util_cross_berm";
|
||||
import type { CrossDesign } from "./B06_Section_Api_Fetch";
|
||||
import type { OffsetPoint } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import { cutProfilePoints } from "../../common_util/common_util_cross_berm";
|
||||
import type { BermSpec } from "../../common_util/common_util_cross_berm";
|
||||
import type { CrossDesign } from "../B06_Section_Api_Fetch";
|
||||
import type { OffsetPoint } from "../B06_Section_UI_Cross_Culvert_Types";
|
||||
|
||||
/** 절토 제원 — 암(또는 단일) 경사 · 토사 경사 · 암 경계 오프셋(없으면 경사 하나) · 소단. */
|
||||
export interface StructureCutSpec {
|
||||
+5
-5
@@ -7,11 +7,11 @@
|
||||
* 모으기만 한다 — 판정·한계는 각 제어기가 이미 끝냈다.
|
||||
* ========================================================================== */
|
||||
|
||||
import type { CrossSectionPatch, StoredWallAdjust, StoredWallSpan } from "./B06_Section_Api_Fetch";
|
||||
import type { BasinAdjust } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import type { FordAdjust } from "./B06_Section_UI_Cross_Ford";
|
||||
import type { BoxAdjust } from "./B06_Section_UI_Cross_Box";
|
||||
import type { InletStructureChoice } from "./B06_Section_UI_Cross_Culvert";
|
||||
import type { CrossSectionPatch, StoredWallAdjust, StoredWallSpan } from "../B06_Section_Api_Fetch";
|
||||
import type { BasinAdjust } from "../B06_Section_UI_Cross_Culvert_Types";
|
||||
import type { FordAdjust } from "../B06_Section_UI_Cross_Ford";
|
||||
import type { BoxAdjust } from "../B06_Section_UI_Cross_Box";
|
||||
import type { InletStructureChoice } from "../B06_Section_UI_Cross_Culvert";
|
||||
|
||||
export interface CrossPatchSources {
|
||||
/** 암 경계선 오프셋(누가거리 문자열 키). */
|
||||
Reference in New Issue
Block a user