dart
Public Member Functions | Protected Attributes | List of all members
dart::dynamics::detail::BasicNodeManagerForSkeleton Class Reference
Inheritance diagram for dart::dynamics::detail::BasicNodeManagerForSkeleton:
Inheritance graph
[legend]
Collaboration diagram for dart::dynamics::detail::BasicNodeManagerForSkeleton:
Collaboration graph
[legend]

Public Member Functions

template<class NodeType >
std::size_t getNumNodes (std::size_t treeIndex) const
 Get the number of Nodes of the specified type that are in the treeIndexth tree of this Skeleton.
 
template<class NodeType >
NodeType * getNode (std::size_t treeIndex, std::size_t nodeIndex)
 Get the nodeIndexth Node of the specified type within the tree of treeIndex. More...
 
template<class NodeType >
const NodeType * getNode (std::size_t treeIndex, std::size_t nodeIndex) const
 Get the nodeIndexth Node of the specified type within the tree of treeIndex. More...
 
template<class NodeType >
NodeType * getNode (const std::string &name)
 Get the Node of the specified type with the given name.
 
template<class NodeType >
const NodeType * getNode (const std::string &name) const
 Get the Node of the specified type with the given name.
 
- Public Member Functions inherited from dart::dynamics::detail::BasicNodeManagerForBodyNode
 BasicNodeManagerForBodyNode ()=default
 Default constructor.
 
 BasicNodeManagerForBodyNode (const BasicNodeManagerForBodyNode &)=delete
 Delete copy constructors and assignment operators.
 
BasicNodeManagerForBodyNodeoperator= (const BasicNodeManagerForBodyNode &)=delete
 
template<class NodeType >
std::size_t getNumNodes () const
 Get the number of Nodes corresponding to the specified type.
 
template<class NodeType >
NodeType * getNode (std::size_t index)
 Get the Node of the specified type and the specified index.
 
template<class NodeType >
const NodeType * getNode (std::size_t index) const
 Get the Node of the specified type and the specified index.
 
template<class NodeType >
DART_DECLARE_CLASS_WITH_VIRTUAL_BASE_END std::size_t getNumNodes () const
 

Protected Attributes

NodeNameMgrMap mNodeNameMgrMap
 NameManager for tracking Nodes.
 
std::vector< NodeMap > mTreeNodeMaps
 A NodeMap for each tree to allow tree Nodes to be accessed independently.
 
SpecializedTreeNodes mSpecializedTreeNodes
 A map that allows SpecializedNodeManagers to have a direct iterator to the tree-wise storage of its specialized Node. More...
 
- Protected Attributes inherited from dart::dynamics::detail::BasicNodeManagerForBodyNode
NodeMap mNodeMap
 Map that retrieves the Nodes of a specified type.
 
NodeDestructorSet mNodeDestructors
 A set for storing the Node destructors.
 

Additional Inherited Members

- Public Types inherited from dart::dynamics::detail::BasicNodeManagerForBodyNode
using NodeMap = std::map< std::type_index, std::vector< Node * > >
 
using NodeDestructorSet = std::unordered_set< NodeDestructorPtr >
 
using NodeNameMgrMap = std::map< std::type_index, common::NameManager< Node * > >
 
using SpecializedTreeNodes = std::map< std::type_index, std::vector< NodeMap::iterator > * >
 
- Static Public Member Functions inherited from dart::dynamics::detail::BasicNodeManagerForBodyNode
template<class NodeType >
static constexpr bool isSpecializedForNode ()
 Check if this Manager is specialized for a specific type of Node.
 

Member Function Documentation

◆ getNode() [1/2]

template<class NodeType >
NodeType * dart::dynamics::detail::BasicNodeManagerForSkeleton::getNode ( std::size_t  treeIndex,
std::size_t  nodeIndex 
)

Get the nodeIndexth Node of the specified type within the tree of treeIndex.

◆ getNode() [2/2]

template<class NodeType >
const NodeType * dart::dynamics::detail::BasicNodeManagerForSkeleton::getNode ( std::size_t  treeIndex,
std::size_t  nodeIndex 
) const

Get the nodeIndexth Node of the specified type within the tree of treeIndex.

Member Data Documentation

◆ mSpecializedTreeNodes

SpecializedTreeNodes dart::dynamics::detail::BasicNodeManagerForSkeleton::mSpecializedTreeNodes
protected

A map that allows SpecializedNodeManagers to have a direct iterator to the tree-wise storage of its specialized Node.

Each entry in this map contains a pointer to a vector of iterators. Each vector of iterators is stored in its corresponding SpecializedNodeManager. This system allows Node specialization to be extensible, enabling custom derived Skeleton types that are specialized for more than the default specialized Nodes.


The documentation for this class was generated from the following file: