Choreonoid  1.1
ModelNodeSet.h
説明を見る。
1 
6 #ifndef CNOID_BODY_MODEL_NODE_SET_H_INCLUDED
7 #define CNOID_BODY_MODEL_NODE_SET_H_INCLUDED
8 
9 #include <Eigen/StdVector>
10 #include <cnoid/EigenTypes>
11 #include <cnoid/VrmlNodes>
12 #include <boost/shared_ptr.hpp>
13 #include <boost/signals.hpp>
14 #include "exportdecl.h"
15 
16 namespace cnoid {
17 
18  class VrmlParser;
19 
20  class JointNodeSet;
21  typedef boost::shared_ptr<JointNodeSet> JointNodeSetPtr;
22 
24  {
25  public:
26  typedef std::vector<Affine3, Eigen::aligned_allocator<Affine3> > Affine3Array;
27 
29  std::vector<JointNodeSetPtr> childJointNodeSets;
31  std::vector<VrmlProtoInstancePtr> segmentNodes;
32  std::vector<VrmlProtoInstancePtr> sensorNodes;
33  std::vector<VrmlProtoInstancePtr> hwcNodes;
34  };
35 
36  typedef std::vector<JointNodeSetPtr> JointNodeSetArray;
37 
38  class ModelNodeSetImpl;
39 
41  {
42  public:
43 
44  ModelNodeSet();
45  virtual ~ModelNodeSet();
46 
47  bool loadModelFile(const std::string& filename);
48 
49  int numJointNodes();
50  VrmlProtoInstancePtr humanoidNode();
51  JointNodeSetPtr rootJointNodeSet();
52 
59  boost::signal<void(const std::string& message)> sigMessage;
60 
61  class Exception {
62  public:
63  Exception(const std::string& description) : description(description) { }
64  const char* what() const { return description.c_str(); }
65  private:
66  std::string description;
67  };
68 
69  private:
70  ModelNodeSetImpl* impl;
71  };
72 
73  typedef boost::shared_ptr<ModelNodeSet> ModelNodeSetPtr;
74 };
75 
76 
77 #endif