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