00001 /***************************************************************************** 00002 * \author 00003 * Erwin Aertbelien, Div. PMA, Dep. of Mech. Eng., K.U.Leuven 00004 * 00005 * \version 00006 * LRL V0.2 00007 * 00008 * \par History 00009 * - $log$ 00010 * 00011 * \par Release 00012 * $Id: trajectory_composite.h 22 2004-09-21 08:58:54Z eaertbellocal $ 00013 * $Name: $ 00014 ****************************************************************************/ 00015 00016 00017 #ifndef TRAJECTORY_COMPOSITE_H 00018 #define TRAJECTORY_COMPOSITE_H 00019 00020 #include "trajectory.hpp" 00021 #include "path_composite.hpp" 00022 #include <vector> 00023 00024 00025 00026 namespace KDL { 00032 class Trajectory_Composite: public Trajectory 00033 { 00034 typedef std::vector<Trajectory*> VectorTraj; 00035 typedef std::vector<double> VectorDouble; 00036 VectorTraj vt; // contains the element Trajectories 00037 VectorDouble vd; // contains end time for each Trajectory 00038 double duration; // total duration of the composed 00039 // Trajectory 00040 00041 public: 00042 Trajectory_Composite(); 00043 // Constructs an empty composite 00044 00045 virtual double Duration() const; 00046 virtual Frame Pos(double time) const; 00047 virtual Twist Vel(double time) const; 00048 virtual Twist Acc(double time) const; 00049 00050 virtual void Add(Trajectory* elem); 00051 // Adds trajectory <elem> to the end of the sequence. 00052 00053 virtual void Destroy(); 00054 virtual void Write(std::ostream& os) const; 00055 virtual Trajectory* Clone() const; 00056 00057 virtual ~Trajectory_Composite(); 00058 }; 00059 00060 00061 } 00062 00063 #endif