Skip to content

[Domain] issue 16,17#127

Merged
learncold merged 9 commits into
mainfrom
sohyun
Apr 13, 2026
Merged

[Domain] issue 16,17#127
learncold merged 9 commits into
mainfrom
sohyun

Conversation

@95x8x9
Copy link
Copy Markdown
Collaborator

@95x8x9 95x8x9 commented Apr 12, 2026

Summary

  • 이슈 Task-Implement first pressure or crush-risk metric only #16 의 요구사항인 에이전트 압박 하중(Compression Force) 및 누적 노출(Exposure) 지표 계산 시스템(CompressionSystem)을 구현했습니다.

  • 에이전트 간 밀집(Agent-to-Agent) 및 벽/장애물 짓눌림(Agent-to-Wall) 수학적 투영 로직을 적용했습니다.

  • 데이터 지향적 순회를 위해 코어 엔진인 PackedComponentStorage에 getEntities() 기능을 추가했습니다.

  • 렌더러로 지표를 전달하기 위해 도메인 공통 타입(Point2D)을 사용하여 SimulationSnapshot 구조를 개선했습니다.

AgentComponents.h를 신규 생성하여 Position, Agent 등의 엔티티 필수 컴포넌트를 정의했습니다.

Related Issue

Area

  • Engine
  • Domain
  • Application
  • Docs
  • Build
  • Analysis
  • Chore

Architecture Check

  • I kept the dependency direction application -> domain -> engine.
  • I did not add Qt UI code to src/domain.
  • I did not add domain or application dependencies to src/engine.
  • I used src/ as the include root.

Verification

  • cmake --preset windows-debug
  • cmake --build --preset build-debug
  • ctest --preset test-debug
  • Not run (reason below)

Risks / Follow-up

  • CompressionSystem 내부에 FORCE_THRESHOLD (0.5f) 및 EXPOSURE_THRESHOLD (2.0f) 값이 현재 하드코딩되어 있습니다. 추후 기획 파라미터나 시나리오 설정값에 따라 유동적으로 주입되도록 파라미터화(Parameterization) 작업이 필요합니다.

  • PackedComponentStorage에 순회를 위한 getEntities() Getter가 추가되었습니다. 엔진 코어 영역 수정이 포함되었으므로 로직 리뷰를 부탁드립니다.

@95x8x9 95x8x9 requested a review from learncold as a code owner April 12, 2026 11:01
@learncold learncold merged commit 8501ceb into main Apr 13, 2026
2 checks passed
@learncold learncold deleted the sohyun branch April 13, 2026 10:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Task-Define minimal SimulationSnapshot for rendering and stats Task-Implement first pressure or crush-risk metric only

2 participants