21 #ifndef _OF_TRAJECTORYFOLLOWER_ 22 #define _OF_TRAJECTORYFOLLOWER_ 26 #include <osg/Callback> 27 #include <osg/ref_ptr> 28 #include <osg/observer_ptr> 31 #include <OpenThreads/Mutex> 83 void setTrajectory(Trajectory *traj);
87 void addTrajectory(Trajectory *traj);
91 void removeTrajectory(Trajectory *traj);
94 inline void setFollowType(
unsigned int data, FollowMode mode)
99 inline void getFollowType(
unsigned int &data, FollowMode &mode)
const 106 bool setXData(
const Trajectory::DataSource &src);
107 bool setYData(
const Trajectory::DataSource &src);
108 bool setZData(
const Trajectory::DataSource &src);
109 const Trajectory::DataSource* getDataSource()
const {
return _dataSource; }
115 void setDefaultData();
116 bool getUsingDefaultData() {
return _usingDefaultData; }
121 void setTime(
double time);
122 void setOffsetTime(
double offsetTime);
123 inline bool isFollowingTime()
const 124 {
return _followTime; }
126 double getLastTime()
const {
return _lastAdjustedTime; }
127 Trajectory* getLastTrajectory()
const {
return _follow.get(); }
130 virtual bool run(osg::Object*
object, osg::Object* data);
141 double _computeTime(
double time);
147 bool _updateState(
double time, FollowData data);
150 bool _verifyDataSources()
const 153 for(
auto traj : _trajList)
155 if(!traj->verifyData(_dataSource))
return false;
160 typedef std::vector<osg::ref_ptr<Trajectory> > TrajList;
163 osg::observer_ptr<Trajectory> _follow;
168 Trajectory::DataSource _dataSource[3];
170 bool _usingDefaultData;
173 bool _needsUpdate, _followTime;
176 double _lastAdjustedTime;
178 OpenThreads::Mutex _mutex;
187 #endif // !define _OF_TRAJECTORYFOLLOWER_
Abstract base class that is informed of changes to Trajectory objects.
Definition: Trajectory.hpp:261
virtual void dataAdded(Trajectory *traj)
Definition: TrajectoryFollower.hpp:135
Definition: CoordinateAxes.hpp:29
FollowMode
Definition: TrajectoryFollower.hpp:60
Holds a collection of data vectors.
Definition: Trajectory.hpp:42
virtual void dataCleared(Trajectory *traj)
Definition: TrajectoryFollower.hpp:134
FollowData
Definition: TrajectoryFollower.hpp:67
Updates FrameTransform objects from Trajectory objects.
Definition: TrajectoryFollower.hpp:52