fix(455 433-5 관 옮김 이웃): 새 꼭짓점 이웃이 옮기기 전 계획고에서 뜨면 맞춤 — 바로 앞뒤부터 1mm 넘는 만큼 · 높이 고친 꼭짓점 그대로 · TS ↔ 파이썬 짝
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -344,14 +344,15 @@ export function oneStationList<S extends ListedStation, P extends { chainage_m:
|
||||
* 정수 m 맞춤 자리(272)면 높이 그대로 옮김. 옮긴 관 · 구조물(427) — 짝 못 찾은 옛 측점과 새 측점이 같은
|
||||
* 수면 차례대로 짝 · 높이 고친 꼭짓점(`edited` = 저장 `station_offsets` 키)은 높이째 · 나머지 새 측점은
|
||||
* `seat`(세움은 부르는 쪽이 `seatBornNodes` · B05_Profile/logic/B05_Profile_Grade_Seat.ts) · 짝 없는 옛
|
||||
* 꼭짓점은 지움. 거울 시험 = `resources/tester/test_427_1_follow_seat.py`.
|
||||
* 꼭짓점은 지움 · `held` = 옮긴 뒤 높이 고친 꼭짓점 측점(서버 옮긴 `station_offsets` 키 · 433-5).
|
||||
* 거울 시험 = `resources/tester/test_427_1_follow_seat.py`.
|
||||
*/
|
||||
export function followMovedNodes<N extends { chainage_m: number }>(
|
||||
nodes: ReadonlyArray<N>,
|
||||
gone: ReadonlyArray<number>,
|
||||
born: ReadonlyArray<number>,
|
||||
edited: ReadonlyArray<string> = [],
|
||||
): { nodes: N[]; seat: number[] } {
|
||||
): { nodes: N[]; seat: number[]; held: number[] } {
|
||||
const target = (old: number): number | null => {
|
||||
const near = born.find((value) => Math.abs(value - old) < 0.006);
|
||||
if (near !== undefined) return near;
|
||||
@@ -379,5 +380,10 @@ export function followMovedNodes<N extends { chainage_m: number }>(
|
||||
const to = moves.get(old) ?? null;
|
||||
return to === null || seat.includes(to) ? [] : [{ ...node, chainage_m: to }];
|
||||
});
|
||||
return { nodes: kept, seat };
|
||||
const held = edited.flatMap((key) => {
|
||||
const old = gone.find((value) => Math.abs(value - Number(key)) < 0.006);
|
||||
const to = old === undefined ? Number(key) : (moves.get(old) ?? null);
|
||||
return to === null ? [] : [to];
|
||||
});
|
||||
return { nodes: kept, seat, held };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user