feat(344-2): 첫 계획선 · 관 자리 투영 · 구조물 좌표 따라감 · 계획고 옮김 짝
- 첫 계획선(계획고 = 지반고) base_pvi TS 짝 = B05_Profile/logic/B05_Profile_Grade_Ground.ts(1순위만 · 못 서는 땅은 null = 서버로 다시 셈) - 관 자리 투영 TS 짝 · 구조물 따라감 py · ts 짝 = common_util_route_follow(정수 m · 구간 끝 밂 · 0 ~ 연장 자름 · 20 m 넘으면 멀어짐 표시 · 상수 STRUCTURE_ROUTE_DRIFT_MAX_M) - 구조물 x · y 저장(저장 때 노선 위 자리 · 자리가 그대로면 옛 좌표 지킴 · 옛 자료는 읽을 때 채움) · 노선 [확인] 때 구조물 정본이 좌표를 따라감 - 노선 바뀜 때 계획고 옮김 = 바뀐 구간만 새 지반 첫 계획선 · 앞 그대로 · 뒤 길이 차만큼 밂(B05_Profile_Engine_Grade_Carry.py ↔ logic/B05_Profile_Grade_Carry.ts) - 거울 시험 test_344_2_route_pairs(+ helper cjs) · buildCurves · evaluateAt 내보냄 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
This commit is contained in:
@@ -281,13 +281,13 @@ function resolvePvi(
|
||||
return [...nodes.values()].sort((a, b) => a.chainage_m - b.chainage_m);
|
||||
}
|
||||
|
||||
interface WorkingCurve extends AlignmentCurve {
|
||||
export interface WorkingCurve extends AlignmentCurve {
|
||||
grade_in: number;
|
||||
grade_out: number;
|
||||
}
|
||||
|
||||
/** 각 변화점에 대칭 종단곡선을 삽입한다 (좌우 직선이 남도록 반쪽 길이를 제한). */
|
||||
function buildCurves(
|
||||
export function buildCurves(
|
||||
pvi: AlignmentNode[],
|
||||
policy: AlignmentPolicy,
|
||||
curveRadii: Record<string, number>,
|
||||
@@ -352,7 +352,7 @@ function buildCurves(
|
||||
}
|
||||
|
||||
/** 직선 + 종단곡선으로 구성된 계획선을 임의 chainage에서 평가한다. */
|
||||
function evaluateAt(
|
||||
export function evaluateAt(
|
||||
pviS: number[],
|
||||
pviZ: number[],
|
||||
curves: WorkingCurve[],
|
||||
|
||||
Reference in New Issue
Block a user