#pragma once #include "door_risk.hpp" #include #include namespace cms { class DoorZoneAssigner { public: explicit DoorZoneAssigner(std::filesystem::path const& configuration); Json update(int frame, Json const& record, cv::Size size); private: std::string classify(double probability) const; Json features_; double frontMin_{},rearMax_{},minimumHeight_{}; int minimumPoseFeatures_{},historyFrames_{},staleFrames_{}; std::unordered_map> history_; std::unordered_map lastSeen_; }; struct DoorDecisions { Json doors; Json selected; }; DoorDecisions buildDoorRisks(Json const& raw, Json const& assignments, std::string const& activeDoor, bool canValid); }