33 #ifndef DART_DYNAMICS_SPECIALIZEDNODEMANAGER_HPP_ 34 #define DART_DYNAMICS_SPECIALIZEDNODEMANAGER_HPP_ 36 #include "dart/common/Virtual.hpp" 37 #include "dart/dynamics/NodeManagerJoiner.hpp" 38 #include "dart/dynamics/detail/BasicNodeManager.hpp" 48 template <
class... OtherSpecNodes>
56 DART_DECLARE_CLASS_WITH_VIRTUAL_BASE_BEGIN
57 template <
class SpecNode>
66 template <
class NodeType>
67 std::size_t getNumNodes()
const;
70 template <
class NodeType>
71 NodeType* getNode(std::size_t index);
74 template <
class NodeType>
75 const NodeType* getNode(std::size_t index)
const;
78 template <
class NodeType>
79 static constexpr
bool isSpecializedForNode();
83 template <
class NodeType>
90 template <
class NodeType>
97 template <
class NodeType>
106 DART_DECLARE_CLASS_WITH_VIRTUAL_BASE_END
112 template <
class SpecNode1,
class... OtherSpecNodes>
115 common::Virtual<BodyNodeSpecializedFor<SpecNode1> >,
116 common::Virtual<BodyNodeSpecializedFor<OtherSpecNodes...> > >
122 template <
class... OtherSpecNodes>
130 DART_DECLARE_CLASS_WITH_VIRTUAL_BASE_BEGIN
131 template <
class SpecNode>
145 template <
class NodeType>
146 std::size_t getNumNodes(std::size_t treeIndex)
const;
150 template <
class NodeType>
151 NodeType* getNode(std::size_t treeIndex, std::size_t nodeIndex);
155 template <
class NodeType>
156 const NodeType* getNode(std::size_t treeIndex, std::size_t nodeIndex)
const;
159 template <
class NodeType>
160 NodeType* getNode(
const std::string& name);
163 template <
class NodeType>
164 const NodeType* getNode(
const std::string& name)
const;
168 static constexpr
bool isSpecializedForNode();
172 template <
class NodeType>
173 std::size_t _getNumNodes(
type<NodeType>, std::size_t treeIndex)
const;
176 std::size_t _getNumNodes(
type<SpecNode>, std::size_t treeIndex)
const;
179 template <
class NodeType>
188 template <
class NodeType>
196 static constexpr
bool _isSpecializedForNode(
type<T>);
203 std::vector<BasicNodeManagerForBodyNode::NodeMap::iterator>
210 DART_DECLARE_CLASS_WITH_VIRTUAL_BASE_END
216 template <
class SpecNode1,
class... OtherSpecNodes>
219 common::Virtual<SkeletonSpecializedFor<SpecNode1> >,
220 common::Virtual<SkeletonSpecializedFor<OtherSpecNodes...> > >
227 #include "dart/dynamics/detail/SpecializedNodeManager.hpp" 229 #endif // DART_DYNAMICS_SPECIALIZEDNODEMANAGER_HPP_ Declaration of the variadic template.
Definition: NodeManagerJoiner.hpp:46
Declaration of variadic template.
Definition: NodeManagerJoiner.hpp:116
std::vector< BasicNodeManagerForBodyNode::NodeMap::iterator > mTreeSpecNodeIterators
std::vector of iterators that allow direct access to the specialized Nodes of each tree ...
Definition: SpecializedNodeManager.hpp:204
NodeNameMgrMap::iterator mSpecNodeNameMgrIterator
Iterator that gives direct access to the name manager of the specialized Nodes.
Definition: SpecializedNodeManager.hpp:208
Definition: BasicNodeManager.hpp:96
Declaration of the variadic template.
Definition: SpecializedNodeManager.hpp:123
Definition: BasicNodeManager.hpp:49
Definition: Aspect.cpp:40
BasicNodeManagerForBodyNode::NodeMap::iterator mSpecNodeIterator
Iterator that allows direct access to the specialized Nodes.
Definition: SpecializedNodeManager.hpp:104
Definition: BasicNodeManager.hpp:84
Declaration of the variadic template.
Definition: SpecializedNodeManager.hpp:49