Skip to content

Task-Door closure crowd response 구현 #223

@SilverSupplier

Description

@SilverSupplier

Summary

닫힌 문을 hard route constraint로 유지하면서, 군중이 문폐쇄를 감지하고 잠깐 대기/감속 후 우회하거나 분산 대기하도록 개선합니다. #218의 scenario runtime interaction v2 안에서 Fire/Smoke와 독립된 Door Closure behavior를 담당합니다.

Parent Issue

#218

Area

Domain

Target Sprint

Sprint 3

Scope

  • connectionBlockShouldBeActive 의미를 중앙화합니다: empty intervals는 항상 폐쇄, finite는 [start,end], end <= start는 start 이후 계속 폐쇄입니다.
  • 다음 planned connection이 닫혔을 때 closure reaction state에 감지/ready 시각을 기록합니다.
  • closureAware == false 동안 접근 속도를 감속하고, ready 이후 대체 경로를 탐색합니다.
  • 대체 경로가 없으면 문 앞 고정 대신 현재 zone 안의 분산 hold target으로 이동합니다.
  • finite closure가 끝나면 no-exit 상태에서 재시도할 수 있게 합니다.
  • Fire/Smoke hazard 행동과 UI 표시 변경은 이 이슈에 포함하지 않습니다.

Acceptance Criteria

  • downstream closed connection이 있으면 patience 이후 대체 경로로 우회합니다.
  • 유일한 문이 닫힌 경우 agents가 얼어붙지 않고 분산 대기합니다.
  • finite closure가 끝나면 agents가 재시도해서 탈출할 수 있습니다.
  • 기존 no-block scenario는 기존 허용 범위 내에서 유지됩니다.

Architecture / Dependency Check

  • 문폐쇄 행동은 src/domain 시뮬레이션 시스템에 둡니다.
  • Qt/application 계층에 행동 로직을 추가하지 않습니다.
  • engine은 connection block 개념을 알지 않습니다.

Verification Plan

  • Connection-block active-semantics tests.
  • Route/replanning tests for downstream closure, no-exit hold, reopen recovery.
  • cmake --build --preset build-no-app-debug
  • ctest --preset test-no-app-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