Skip to content

Task-Fire/Smoke hazard authoring/data foundation 통합 #226

@SilverSupplier

Description

@SilverSupplier

Summary

Fire/Smoke hazard를 v2 simulation interaction의 입력 기반으로 추가합니다. 이 이슈는 authoring/data/persistence/diff까지만 담당하고 runtime movement/result behavior는 #222에서 처리합니다.

Parent Issue

#218

Area

Domain / Application

Target Sprint

Sprint 3

Scope

  • EnvironmentState에 Fire/Smoke hazard draft 모델을 추가합니다.
  • Fire/Smoke kind, severity, affected zone/floor, position, active interval, note를 저장합니다.
  • workspace JSON 저장/로드에 hazard 목록을 포함합니다.
  • 기존 JSON에 hazards가 없어도 빈 목록으로 호환 로드합니다.
  • scenario diff에서 environment.hazards 변경을 감지합니다.
  • Scenario Authoring UI에서 hazard 추가, 편집, 삭제와 canvas marker 표시를 제공합니다.
  • runtime movement/result effect는 이 이슈에 포함하지 않고 #222에서 처리합니다.

Acceptance Criteria

  • Fire/Smoke hazard를 시나리오에 추가, 편집, 삭제할 수 있습니다.
  • 저장 후 다시 불러와도 hazard 목록과 필드 값이 유지됩니다.
  • baseline 대비 hazard 변경 시 variation diff에 environment.hazards가 표시됩니다.
  • UI copy는 hazard가 v2 simulation input임을 드러냅니다.
  • hazard authoring 자체는 runtime movement/result effect를 만들지 않습니다.

Architecture / Dependency Check

  • domain 입력 계약은 src/domain의 scenario authoring model에 둡니다.
  • application은 domain 모델을 authoring UI와 persistence에 연결합니다.
  • domain에는 Qt 의존성을 추가하지 않습니다.
  • engine에는 hazard 관련 의존성이나 물리 시스템을 추가하지 않습니다.

Verification Plan

  • cmake --build --preset build-no-app-debug
  • ctest --preset test-no-app-debug
  • UI 변경이 포함되므로 가능하면 cmake --build --preset build-debug
  • 가능하면 ctest --preset test-debug

Dependencies / Blockers

Repository Checks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions