Choreonoid  1.1
PoseProvider.h
説明を見る。
1 
6 #ifndef CNOID_BODY_POSE_PROVIDER_H_INCLUDED
7 #define CNOID_BODY_POSE_PROVIDER_H_INCLUDED
8 
9 #include "Body.h"
10 #include <vector>
11 #include <boost/optional.hpp>
12 #include <cnoid/EigenTypes>
13 
14 namespace cnoid {
15 
17  {
18  public:
19  virtual ~PoseProvider() { };
20  virtual Body* body() const = 0;
21  virtual double beginningTime() const = 0;
22  virtual double endingTime() const = 0;
23  virtual bool seek(double time) = 0;
24  virtual bool seek(double time, int waistLinkIndex, const Vector3& waistTranslation) = 0;
25  virtual int baseLinkIndex() const = 0;
26  virtual bool getBaseLinkPosition(Vector3& out_p, Matrix3& out_R) const = 0;
27  virtual void getJointPositions(std::vector< boost::optional<double> >& out_q) const = 0;
28  virtual boost::optional<Vector3> zmp() const = 0;
29  };
30 }
31 
32 #endif