Summary
100명 단위 시나리오에서도 현실 시간이 크게 늘어나는 병목을 줄이기 위해 도메인 시뮬레이션 hot path에서 반복적인 엔티티 벡터 생성을 줄입니다. 기존 WorldQuery::view() 의미는 유지하고, 비할당 순회 API를 보조로 추가한 뒤 motion 시스템의 엔티티 목록 수집 경로에만 좁게 적용합니다.
Parent Issue
Area
Domain
Target Sprint
Later
Scope
- 기존 WorldQuery::view() 동작은 유지
- 엔진 계층에 비할당 순회 API를 보조로 추가
- 도메인 motion 시스템에서 시뮬레이션 엔티티 목록 수집 버퍼 재사용
- 알고리즘 순서와 결과 의미는 유지
- 최소 테스트 또는 기존 빌드 검증으로 회귀 확인
Acceptance Criteria
- motion 시스템이 매 step마다 불필요한 엔티티 벡터 재할당을 줄인다
- 기존 �iew() 호출자는 기존 의미를 유지한다
- 구조 변경 지연 처리와 phase 경계 semantics가 유지된다
- safecrowd_domain 빌드가 통과한다
Architecture / Dependency Check
- domain은 Qt/application에 의존하지 않는다
- engine 변경은 범용 query API 추가에 한정한다
- include 경로는 #include engine/..., #include domain/... 규칙을 유지한다
- 시뮬레이션 로직은 application으로 올리지 않는다
Verification Plan
- cmake --build --preset build-engine-domain-debug
- 가능한 경우 cmake --build --preset build-no-app-debug --target safecrowd_tests
- 사용자 성능 비교: 동일 시나리오에서 시뮬레이터 시간 28.9초 완료까지의 현실 시간 비교
Dependencies / Blockers
- safecrowd_tests 전체 링크는 기존 ScenarioAuthoring.cpp CMake 포함 누락 이슈가 있어 별도 확인이 필요할 수 있습니다.
Repository Checks
Summary
100명 단위 시나리오에서도 현실 시간이 크게 늘어나는 병목을 줄이기 위해 도메인 시뮬레이션 hot path에서 반복적인 엔티티 벡터 생성을 줄입니다. 기존 WorldQuery::view() 의미는 유지하고, 비할당 순회 API를 보조로 추가한 뒤 motion 시스템의 엔티티 목록 수집 경로에만 좁게 적용합니다.
Parent Issue
Area
Domain
Target Sprint
Later
Scope
Acceptance Criteria
Architecture / Dependency Check
Verification Plan
Dependencies / Blockers
Repository Checks