33 #ifdef KDL_USE_NEW_TREE_INTERFACE 34 #include <boost/shared_ptr.hpp> 35 #endif //#ifdef KDL_USE_NEW_TREE_INTERFACE 41 #ifdef KDL_USE_NEW_TREE_INTERFACE 44 typedef boost::shared_ptr<TreeElement> TreeElementPtr;
45 typedef boost::shared_ptr<const TreeElement> TreeElementConstPtr;
46 typedef std::map<std::string, TreeElementPtr>
SegmentMap;
49 #define GetTreeElementChildren(tree_element) (tree_element)->children 50 #define GetTreeElementParent(tree_element) (tree_element)->parent 51 #define GetTreeElementQNr(tree_element) (tree_element)->q_nr 52 #define GetTreeElementSegment(tree_element) (tree_element)->segment 54 #else //#ifdef KDL_USE_NEW_TREE_INTERFACE 56 typedef std::map<std::string,TreeElement>
SegmentMap;
59 #define GetTreeElementChildren(tree_element) (tree_element).children 60 #define GetTreeElementParent(tree_element) (tree_element).parent 61 #define GetTreeElementQNr(tree_element) (tree_element).q_nr 62 #define GetTreeElementSegment(tree_element) (tree_element).segment 64 #endif //#ifdef KDL_USE_NEW_TREE_INTERFACE 69 TreeElement(
const Segment& segment_in,
const SegmentMap::const_iterator& parent_in,
unsigned int q_nr_in):
75 static TreeElementType
Root(
const std::string& root_name)
77 #ifdef KDL_USE_NEW_TREE_INTERFACE 79 #else //#define KDL_USE_NEW_TREE_INTERFACE 87 std::vector<SegmentMap::const_iterator >
children;
90 TreeElement(
const std::string& name):segment(name), q_nr(0) {}
108 bool addTreeRecursive(SegmentMap::const_iterator root,
const std::string& hook_name);
114 explicit Tree(
const std::string& root_name=
"root");
128 bool addSegment(
const Segment&
segment,
const std::string& hook_name);
138 bool addChain(
const Chain& chain,
const std::string& hook_name);
149 bool addTree(
const Tree& tree,
const std::string& hook_name);
177 SegmentMap::const_iterator
getSegment(
const std::string& segment_name)
const 179 return segments.find(segment_name);
188 return segments.find(root_name);
202 bool getChain(
const std::string& chain_root,
const std::string& chain_tip,
Chain& chain)
const;
unsigned int nrOfSegments
Definition: tree.hpp:104
SegmentMap::const_iterator getRootSegment() const
Request the root segment of the tree.
Definition: tree.hpp:186
This class encapsulates a simple segment, that is a "rigid body" (i.e., a frame and a rigid body...
Definition: segment.hpp:46
TreeElement TreeElementType
Definition: tree.hpp:57
This class encapsulates a serial kinematic interconnection structure.
Definition: chain.hpp:35
unsigned int getNrOfJoints() const
Request the total number of joints in the tree.
Definition: tree.hpp:159
const SegmentMap & getSegments() const
Definition: tree.hpp:205
unsigned int getNrOfSegments() const
Request the total number of segments in the tree.
Definition: tree.hpp:168
std::map< std::string, TreeElement > SegmentMap
Definition: tree.hpp:39
std::string root_name
Definition: tree.hpp:106
SegmentMap::const_iterator parent
Definition: tree.hpp:86
TreeElement(const std::string &name)
Definition: tree.hpp:90
Segment segment
Definition: tree.hpp:84
Definition: articulatedbodyinertia.cpp:28
unsigned int q_nr
Definition: tree.hpp:85
virtual ~Tree()
Definition: tree.hpp:210
TreeElement(const Segment &segment_in, const SegmentMap::const_iterator &parent_in, unsigned int q_nr_in)
Definition: tree.hpp:69
SegmentMap segments
Definition: tree.hpp:102
static TreeElementType Root(const std::string &root_name)
Definition: tree.hpp:75
std::vector< SegmentMap::const_iterator > children
Definition: tree.hpp:87
unsigned int nrOfJoints
Definition: tree.hpp:103
This class encapsulates a tree kinematic interconnection structure.
Definition: tree.hpp:99
SegmentMap::const_iterator getSegment(const std::string &segment_name) const
Request the segment of the tree with name segment_name.
Definition: tree.hpp:177