Line data Source code
1 : #pragma once 2 : 3 : #include <memory> 4 : #include <string> 5 : 6 : #include "Dynamic/Dynamic.hpp" 7 : 8 : namespace Dynamic { 9 : 10 : namespace Env { 11 : class Env; 12 : class Lane; 13 : class TAZ; 14 : } // namespace Env 15 : 16 : class Policy; 17 : 18 0 : class Vehicle { 19 : public: 20 : typedef long ID; 21 : 22 : const ID id; /// @brief Vehicle ID. 23 : const Time depart; /// @brief Departure time. 24 : Env::TAZ &fromTAZ, &toTAZ; /// @brief Origin and destination TAZs. 25 : 26 : protected: 27 : std::shared_ptr<Policy> policy; /// @brief Policy. 28 : 29 : public: 30 : Vehicle( 31 : ID id, 32 : Time depart, 33 : Env::TAZ &fromTAZ, 34 : Env::TAZ &toTAZ, 35 : std::shared_ptr<Policy> policy 36 : ); 37 : 38 : Env::Lane &pickInitialLane(Env::Env &env); 39 : 40 : bool operator==(const Vehicle &other) const; 41 : }; 42 : } // namespace Dynamic