Summary
대피 완료된 에이전트가 이후 Motion 시스템의 이동, 경로 전진, 공간 인덱스, 회피, 충돌 해소 계산에 계속 포함되어 100명 시나리오 후반부에도 불필요한 계산 비용이 남는 문제를 줄입니다.
Parent Issue
Area
Domain
Target Sprint
Later
Scope
ScenarioSimulationMotionSystem 내부에서 전체 시뮬레이션 엔티티 목록과 미대피 활성 엔티티 목록을 분리합니다.
EvacuationStatus.evacuated == true인 에이전트는 Motion hot path 계산에서 제외합니다.
- 총원 집계, 완료 판정, T90/T95 키프레임 판단은 기존 전체 엔티티 기준을 유지합니다.
- 출입구 큐, 흐름 용량, 경로 선택 알고리즘 등 시뮬레이션 모델 변경은 포함하지 않습니다.
Acceptance Criteria
- 이미 대피 완료된 에이전트가 Motion 시스템의 이동/회피/충돌 해소 루프에 들어가지 않습니다.
- 새로 대피 완료된 에이전트는 같은 프레임의 후속 Motion 계산에서 제외됩니다.
- 시뮬레이션 완료 판정은 전체 에이전트 수 기준으로 유지됩니다.
safecrowd_domain과 safecrowd_app 빌드가 통과합니다.
Architecture / Dependency Check
- 변경은
src/domain 내부에 한정합니다.
- domain은 Qt/application에 의존하지 않습니다.
- engine 계층 API는 변경하지 않습니다.
- include 경로와 기존 계층 방향
application -> domain -> engine을 유지합니다.
Verification Plan
cmake --build --preset build-engine-domain-debug --target safecrowd_domain
cmake --build --preset build-debug --target safecrowd_app
- 동일 시나리오에서 대피 완료 후 active agent 수가 줄어드는 구간의 체감 성능 비교
Dependencies / Blockers
Repository Checks
Summary
대피 완료된 에이전트가 이후 Motion 시스템의 이동, 경로 전진, 공간 인덱스, 회피, 충돌 해소 계산에 계속 포함되어 100명 시나리오 후반부에도 불필요한 계산 비용이 남는 문제를 줄입니다.
Parent Issue
Area
Domain
Target Sprint
Later
Scope
ScenarioSimulationMotionSystem내부에서 전체 시뮬레이션 엔티티 목록과 미대피 활성 엔티티 목록을 분리합니다.EvacuationStatus.evacuated == true인 에이전트는 Motion hot path 계산에서 제외합니다.Acceptance Criteria
safecrowd_domain과safecrowd_app빌드가 통과합니다.Architecture / Dependency Check
src/domain내부에 한정합니다.application -> domain -> engine을 유지합니다.Verification Plan
cmake --build --preset build-engine-domain-debug --target safecrowd_domaincmake --build --preset build-debug --target safecrowd_appDependencies / Blockers
duplicateScenarioDraft,computeScenarioDiffKeys링크 이슈가 별도로 남아 있을 수 있습니다.Repository Checks