00001 00005 #ifndef VEH_POSE_PLAYER_H 00006 #define VEH_POSE_PLAYER_H 00007 00008 #include <vector> 00009 #include <utils/Player.h> 00010 #include <TimeSource/TimeSource.h> 00011 #include <VehPoseDest/VehPose.h> 00012 #include <VehPoseDest/VehPoseStructs.h> 00013 00014 namespace utils { 00015 class ConfigFile; 00016 class Vec3d; 00017 class SymbolTable; 00018 }; 00019 00026 class VehPosePlayer { 00027 public: 00034 bool open(utils::ConfigFile& params, utils::SymbolTable* globals); 00035 00039 bool advance(); 00040 00046 bool getCurPose(utils::Time& time, VehPose& pose); 00047 00056 bool nextPose(utils::Time& time, VehPose& pose, bool blocking=true); 00057 00065 bool getPose(utils::Time time, VehPose& pose); 00066 00068 TimeSource::PlayerManager* getManager() { return &_mgr; } 00069 00070 private: 00071 void set_pose(VehPose& pose); 00072 00073 private: 00074 TimeSource::PlayerManager _mgr; 00075 utils::Player* _player; 00076 00077 VehPoseDataStruct _input_area; 00078 utils::Time _play_time; 00079 }; 00080 00081 #endif 00082