Choreonoid  1.1
CompositeIK.h
[詳解]
1 
6 #ifndef CNOID_BODY_COMPOSITE_IK_H_INCLUDED
7 #define CNOID_BODY_COMPOSITE_IK_H_INCLUDED
8 
9 #include "Body.h"
10 #include "InverseKinematics.h"
11 #include <boost/shared_ptr.hpp>
12 #include "exportdecl.h"
13 
14 namespace cnoid {
15 
16  class Link;
17 
19  {
20  public:
21 
22  CompositeIK(BodyPtr body, Link* targetLink);
23  ~CompositeIK();
24 
25  BodyPtr body() const { return body_; }
26  bool addBaseLink(Link* link);
27  void setMaxIKerror(double e);
28 
29  virtual bool hasAnalyticalIK() const;
30  virtual bool calcInverseKinematics(const Vector3& p, const Matrix3& R);
31 
32 
33  private:
34 
35  BodyPtr body_;
36  Link* targetLink_;
37  struct PathInfo {
38  JointPathPtr path;
39  Vector3 p0;
40  Matrix3 R0;
41  };
42  std::vector<PathInfo> pathList;
43  bool isAnalytical_;
44  };
45 
46  typedef boost::shared_ptr<CompositeIK> CompositeIKptr;
47 }
48 
49 #endif
boost::intrusive_ptr< Body > BodyPtr
Definition: Body.h:22
boost::shared_ptr< JointPath > JointPathPtr
Definition: Body.h:25
Definition: InverseKinematics.h:13
BodyPtr body() const
Definition: CompositeIK.h:25
Definition: CompositeIK.h:18
Definition: EasyScanner.h:16
boost::shared_ptr< CompositeIK > CompositeIKptr
Definition: CompositeIK.h:46
Eigen::Vector3d Vector3
Definition: EigenTypes.h:26
#define CNOID_EXPORT
Definition: Util/exportdecl.h:13
Eigen::Matrix3d Matrix3
Definition: EigenTypes.h:25