Summary
결과 그래프의 T90/T95 마커 클릭 시 리플레이가 nearest 샘플 프레임으로 스냅되며 0.1~0.2s 오차가 발생한다. T90/T95가 확정되는 시점의 키프레임을 별도로 저장해 클릭 시 정확한 시점으로 seek 되도록 개선한다.
Area
Domain
Scope
-
ScenarioResultArtifacts의 timing summary에 t90Frame/t95Frame(키프레임) 저장을 추가한다.
시뮬레이션 프레임 동기화(RenderSync) 과정에서 t90Seconds/t95Seconds가 최초로 생성되는 순간 프레임을 1회 캡처한다.
-
persistence(JSON)에 키프레임 저장/로드를 반영한다.
UI는 키프레임이 존재할 때 해당 프레임으로 seek, 없으면 기존 nearest 로직을 유지한다.
Acceptance
-
T90/T95 마커 클릭 시 재생 시간이 T90/T95 값과 일치한다(오차 제거).
-
기존 리플레이 샘플링(0.5s) 정책은 유지된다.
-
기존 시뮬레이션/아티팩트 관련 테스트가 통과한다.
Verification
- cmake --build --preset build-no-app-debug --target safecrowd_tests
- ctest --preset test-no-app-debug
Architecture
-Domain 결과 아티팩트/프레임 동기화 및 persistence 계약 변경에 한정하고, 엔진/Qt UI 의존은 추가하지 않는다.
Summary
결과 그래프의 T90/T95 마커 클릭 시 리플레이가 nearest 샘플 프레임으로 스냅되며 0.1~0.2s 오차가 발생한다. T90/T95가 확정되는 시점의 키프레임을 별도로 저장해 클릭 시 정확한 시점으로 seek 되도록 개선한다.
Area
Domain
Scope
ScenarioResultArtifacts의 timing summary에 t90Frame/t95Frame(키프레임) 저장을 추가한다.
시뮬레이션 프레임 동기화(RenderSync) 과정에서 t90Seconds/t95Seconds가 최초로 생성되는 순간 프레임을 1회 캡처한다.
persistence(JSON)에 키프레임 저장/로드를 반영한다.
UI는 키프레임이 존재할 때 해당 프레임으로 seek, 없으면 기존 nearest 로직을 유지한다.
Acceptance
T90/T95 마커 클릭 시 재생 시간이 T90/T95 값과 일치한다(오차 제거).
기존 리플레이 샘플링(0.5s) 정책은 유지된다.
기존 시뮬레이션/아티팩트 관련 테스트가 통과한다.
Verification
Architecture
-Domain 결과 아티팩트/프레임 동기화 및 persistence 계약 변경에 한정하고, 엔진/Qt UI 의존은 추가하지 않는다.