- design_page_route 새로(칸 · 끄는 모듈 없음) · 채움 = design_page_data pageSectionContext(횡단 context · 세션 캐시) 하나 - 읽는 곳 = 종단 보기 [저장] 몫 · 횡단 보기 · 종단도 render · 평면 횡단 판(노선 번호 훑기 지움) · 3D · 측점 그림 - 페이지 떠남에 칸 비움 · 저장 정본 바뀜엔 그대로 - design_profile 700줄 앞 쪼갬(design_profile_context — 만들 때 넘기는 것 · 미리보기 대기) - 시험 test_384_2b · 평면 횡단 판 시험 = 페이지 노선 값만 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TteK8mfYZetk5P3bEZkyVZ
33 lines
2.0 KiB
TypeScript
33 lines
2.0 KiB
TypeScript
/* =============================================================================
|
|
* A00_Common/design/design_profile_context.ts
|
|
* 종단도 한 벌(`design_profile`)을 만들 때 넘기는 것 · 횡단 미리보기 대기 — 700줄 쪼갬(386-2b).
|
|
* ========================================================================== */
|
|
|
|
import type { RouteProfilePanelCallbacks } from "../../B05_Profile/B05_Profile_UI_Profile_Panel_Types";
|
|
import type { DesignSideFactory, DesignView } from "./design_profile_slots";
|
|
|
|
/** 종단도를 만들 때 넘기는 것. */
|
|
export interface DesignProfileContext {
|
|
projectId: string;
|
|
/** 처음 보기. */
|
|
view: DesignView;
|
|
/** 오른쪽 판 — 없으면 판 없이 종단 열만. */
|
|
side?: DesignSideFactory;
|
|
/** 도구줄 [초기화] 바로 왼쪽에 놓는 단추([새 창]) — 다시 그려도 그 자리. */
|
|
toolLead?: HTMLElement;
|
|
/** 측점 선택 변경 — 같은 측점 재선택·빈 곳 클릭이면 null(해제)로 알린다. */
|
|
onSelectStation: (stationId: string | null) => void;
|
|
/** [초기선 복원] 클릭 시 함께 실행(비정규 측점 등 다른 조작값도 초기화하려고 페이지가 넘긴다). */
|
|
onResetAll?: () => void;
|
|
callbacks?: RouteProfilePanelCallbacks;
|
|
}
|
|
|
|
/** 계획고 편집 후 횡단을 다시 계산하기까지 기다리는 시간(ms).
|
|
* ▲/▼ 길게 누르기(초당 10회)·끌기에서 매 프레임 다시 돌지 않게 마지막 값만 계산한다.
|
|
* 계산이 브라우저 안에서 끝나면서(2026-09-03) 서버 왕복이 사라져 250→60ms 로 줄였다 —
|
|
* 실측 전 측점(128) 재계산 7.5ms 라 손을 떼는 즉시 유토곡선이 따라온다.
|
|
* 60→16ms(2026-09-06) — ▲ 한 번에 라벨이 서기까지 중앙 130ms 를 쟀는데 그중 60ms 가
|
|
* 이 대기였다. 한 프레임(16ms)이면 연속 입력은 여전히 마지막 값만 계산한다.
|
|
* 횡단 보기는 120ms — 계산마다 카드를 갈아 끼워 길게 누르면 멈춤이 쌓임(9da48d5e7 · 54-22). */
|
|
export const CROSS_PREVIEW_DEBOUNCE_MS = 16;
|