feat(B06): 관 접속 절·성토선 3도 물매 + 교차점 보간 + 절성토 교차 기준 자동 줌아웃
- 관 유도 접속선을 0도 → **3도**로: 유입측은 계류 쪽 오름(물이 관으로), 유출측 매몰 절토선은 계류 쪽 내림(물이 밖으로). 집수정 I형 되메움선도 동일 - 모든 유도선·성토부선 끝점을 격자점이 아니라 **선형 보간 교차점**에 붙여 선이 원지반을 미세하게 벗어나던 문제 해소(2026-08-22 사용자 지적) - 카드 자동 줌아웃: **구조물 없는 상태**의 설계 절·성토선이 원지반과 만나는 지점(+0.5m)이 표시 반폭 밖이면 그 카드만 반폭을 넓혀 그린다. 보유 샘플 범위를 넘는 경우는 기존 전역 반폭 재생성 경로(applyPanelToAll)가 담당 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,7 @@ import type { SectionSample } from "./B06_Section_Api_Fetch";
|
||||
import {
|
||||
FILL_MIN_RISE_M,
|
||||
FILL_SLOPE_MAX_LENGTH_M,
|
||||
PIPE_CONNECT_GRADE,
|
||||
FILL_SLOPE_RATIO_MIN,
|
||||
REVET_HEIGHT_STEP_M,
|
||||
REVET_LEAN_RATIO,
|
||||
@@ -15,7 +16,7 @@ import {
|
||||
REVET_TRAP_TOP_M,
|
||||
} from "./B06_Section_UI_Cross_Culvert_Const";
|
||||
import type { OffsetPoint, PipeEnd, WallAdjust } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||
import { horizontalCrossing } from "./B06_Section_UI_Cross_Culvert_Extra";
|
||||
import { slopedCrossing } from "./B06_Section_UI_Cross_Culvert_Extra";
|
||||
|
||||
/** 기슭막이 하단선 폭(m) — 사다리꼴 밑변. 자리 기준(하단선 중점) 환산에 쓴다. */
|
||||
export function fillWallBaseWidth(height: number): number {
|
||||
@@ -386,9 +387,10 @@ export function placePipeWall(input: {
|
||||
if (input.requireCrossing) {
|
||||
const placeable = (anchorOffset: number, invertE: number): boolean =>
|
||||
invertE >= input.groundAt(anchorOffset) - 0.01 ||
|
||||
horizontalCrossing(
|
||||
slopedCrossing(
|
||||
{ offset: anchorOffset, elevation: invertE },
|
||||
input.outward,
|
||||
-PIPE_CONNECT_GRADE,
|
||||
input.groundAt,
|
||||
input.limitOffset,
|
||||
) !== null;
|
||||
|
||||
Reference in New Issue
Block a user