Choreonoid  1.5
BodyState.h
Go to the documentation of this file.
1 
6 #ifndef CNOID_BODY_BODY_STATE_H
7 #define CNOID_BODY_BODY_STATE_H
8 
9 #include <cnoid/EigenTypes>
10 #include <cnoid/DataMap>
11 #include "exportdecl.h"
12 
13 namespace cnoid {
14 
15 class Body;
16 
20 class CNOID_EXPORT BodyState : public DataMap<double>
21 {
22 public:
23  enum DataType {
27  ZMP
28  };
29 
30  BodyState();
31  BodyState(const Body& body);
32 
33  void storePositions(const Body& body);
34  bool restorePositions(Body& io_body) const;
35 
36  void setRootLinkPosition(const Position& T);
37  void setRootLinkPosition(const SE3& position);
38  bool getRootLinkPosition(Position& out_T) const;
39  bool getRootLinkPosition(SE3& out_position) const;
40 
41  void setZMP(const Vector3& zmp);
42  bool getZMP(Vector3& out_zmp) const;
43 
44 #ifdef CNOID_BACKWARD_COMPATIBILITY
45  void setRootLinkPosition(const Vector3& translation, const Matrix3& rotation);
46  bool getRootLinkPosition(Vector3& translation, Matrix3& rotation) const;
47 #endif
48 
49 protected:
50 
51  virtual std::map<std::string, int>& nameToIdMap();
52  virtual std::map<int, std::string>& idToNameMap();
53  virtual int nextDynamicId();
54 
55 };
56 
57 };
58 
59 #endif
Definition: Body.h:28
Definition: DataMap.h:33
DataType
Definition: BodyState.h:23
Definition: BodyState.h:25
Definition: BodyState.h:26
Eigen::Transform< double, 3, Eigen::AffineCompact > Position
Definition: EigenTypes.h:73
Definition: EigenTypes.h:80
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
Eigen::Vector3d Vector3
Definition: EigenTypes.h:58
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: BodyState.h:20
Definition: BodyState.h:24
Eigen::Matrix3d Matrix3
Definition: EigenTypes.h:57