[Engine] WorldQuery ECS 읽기 facade 구현#69
Merged
Merged
Conversation
- WorldQuery: view<T...>(), contains<T>(), get<T>() read-only facade 추가 - EntityRegistry: eachAlive() 템플릿 순회 메서드 추가 - WorldQueryTests: view 필터링, 미등록 타입, 파괴된 entity, contains, get 검증 5개 테스트 추가 - CMakeLists.txt: WorldQuery.h, WorldQueryTests.cpp 등록 Closes #9 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
EcsCore에 대한 읽기 전용 facadeWorldQuery구현:view<T...>(),contains<T>(),get<T>()(const/non-const 오버로드)EntityRegistry::eachAlive()추가: 살아있는 entity와Signature를 한 번에 순회하는 템플릿 메서드WorldQueryTests추가: view 필터링, 미등록 타입, 파괴된 entity 제외,contains,get검증 (5개)CMakeLists.txt에WorldQuery.h,WorldQueryTests.cpp등록Related Issue
Area
Architecture Check
application -> domain -> engine.src/domain.domainorapplicationdependencies tosrc/engine.src/as the include root.Verification
cmake --preset windows-debugcmake --build --preset build-debugctest --preset test-debugRisks / Follow-up
get<T>()non-const 오버로드로WorldQuery를 통한 컴포넌트 데이터 수정 가능 — entity/component 생명주기 변경은EcsCore에서만 가능해 구조적 안전성 유지EntityRegistry::eachAlive()는view<T...>()구현에 필요한 최소 지원 메서드로 Task-Implement generation-safe Entity handle and EntityRegistry #6 범위를 소폭 확장