#pragma once #include #include #include namespace Orders { class MoveOrder: public Order { public: MoveOrder(const SimCore::Identifier id,const SimCore::Identifier orderingEntity,const SimCore::Identifier orderedEntity,WHISPER::SourceType srcType); MoveOrder(const SimCore::Identifier id,const SimCore::Identifier orderingEntity,const SimCore::Identifier orderedEntity,WHISPER::SourceType srcType,SimCore::Position pos,double speed = 0, int startTime = 0); ~MoveOrder(); void addData(SimCore::Position pos,double speed = 0, int startTime = 0); void setPosition(SimCore::Position pos); void setSpeed(double speed); void setStartTime(uint64_t startTime); SimCore::Position getPosition(); double getSpeed(); uint64_t getStartTime(); virtual WHISPER::Message buildMessage(SimCore::Identifier parentID) override; static std::shared_ptr unpack(WHISPER::Message msg); private: SimCore::Position pos_; double speed_ = 0; uint64_t startTime_ = 0; }; }