#pragma once #include #include "agent.h" #include #define RADUIS 10 #define BLIND_ANGLE M_PI/3 class Enviroment { private: double lenth; double width; std::vector *multi_agent; std::vector> adjacency_matrix; std::vector coordinat_matrix; public: Enviroment(std::vector *, double, double); ~Enviroment(void); void Observe(void); void ObserveFromData(std::vector); bool isRight(Agent*, Agent*); bool isLeft(Agent*, Agent*); int LeftRightDirection(Agent*, Agent*); bool isInBlindAngle(Agent*, Agent*); bool isInSenseRaduis(Agent*, Agent*); AgentState GetRelativeCoordinate(Agent*, Agent*); std::vector> GetAdjMat(); std::vector GetCoorMat(); std::vector GetTargets(); void RunOnce(); };