DART  6.10.1
dart::dynamics::detail::BasicNodeManagerForSkeleton Class Reference

#include <BasicNodeManager.hpp>

Inheritance diagram for dart::dynamics::detail::BasicNodeManagerForSkeleton:
dart::dynamics::detail::BasicNodeManagerForBodyNode dart::dynamics::SkeletonSpecializedFor< SpecNode >

Public Types

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 > * >
 

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. More...
 
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. More...
 
template<class NodeType >
const NodeType * getNode (const std::string &name) const
 Get the Node of the specified type with the given name. More...
 
template<class NodeType >
NodeType * getNode (std::size_t index)
 Get the Node of the specified type and the specified index. More...
 
template<class NodeType >
const NodeType * getNode (std::size_t index) const
 Get the Node of the specified type and the specified index. More...
 
template<class NodeType >
std::size_t getNumNodes () const
 Get the number of Nodes corresponding to the specified type. More...
 
template<class NodeType >
std::size_t getNumNodes () const
 Get the number of Nodes corresponding to the specified type. More...
 
template<class NodeType >
NodeType * getNode (std::size_t index)
 Get the Node of the specified type and the specified index. More...
 
template<class NodeType >
const NodeType * getNode (std::size_t index) const
 Get the Node of the specified type and the specified index. More...
 

Static Public Member Functions

template<class NodeType >
static constexpr bool isSpecializedForNode ()
 Check if this Manager is specialized for a specific type of Node. More...
 

Protected Attributes

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

Member Typedef Documentation

◆ NodeDestructorSet

◆ NodeMap

using dart::dynamics::detail::BasicNodeManagerForBodyNode::NodeMap = std::map<std::type_index, std::vector<Node*> >
inherited

◆ NodeNameMgrMap

◆ SpecializedTreeNodes

using dart::dynamics::detail::BasicNodeManagerForBodyNode::SpecializedTreeNodes = std::map<std::type_index, std::vector<NodeMap::iterator>*>
inherited

Member Function Documentation

◆ getNode() [1/8]

template<class NodeType >
NodeType * dart::dynamics::detail::BasicNodeManagerForSkeleton::getNode ( const std::string &  name)

Get the Node of the specified type with the given name.

◆ getNode() [2/8]

template<class NodeType >
const NodeType * dart::dynamics::detail::BasicNodeManagerForSkeleton::getNode ( const std::string &  name) const

Get the Node of the specified type with the given name.

◆ getNode() [3/8]

template<class NodeType >
NodeType * dart::dynamics::detail::BasicNodeManagerForBodyNode::getNode ( std::size_t  index)
inherited

Get the Node of the specified type and the specified index.

◆ getNode() [4/8]

template<class NodeType >
NodeType * dart::dynamics::detail::BasicNodeManagerForBodyNode::getNode ( class NodeType  )

Get the Node of the specified type and the specified index.

◆ getNode() [5/8]

template<class NodeType >
const NodeType * dart::dynamics::detail::BasicNodeManagerForBodyNode::getNode ( std::size_t  index) const
inherited

Get the Node of the specified type and the specified index.

◆ getNode() [6/8]

template<class NodeType >
const NodeType * dart::dynamics::detail::BasicNodeManagerForBodyNode::getNode ( class NodeType  )

Get the Node of the specified type and the specified index.

◆ getNode() [7/8]

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() [8/8]

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.

◆ getNumNodes() [1/3]

template<class NodeType >
std::size_t dart::dynamics::detail::BasicNodeManagerForBodyNode::getNumNodes
inherited

Get the number of Nodes corresponding to the specified type.

◆ getNumNodes() [2/3]

template<class NodeType >
std::size_t dart::dynamics::detail::BasicNodeManagerForBodyNode::getNumNodes ( class NodeType  )

Get the number of Nodes corresponding to the specified type.

◆ getNumNodes() [3/3]

template<class NodeType >
std::size_t dart::dynamics::detail::BasicNodeManagerForSkeleton::getNumNodes ( std::size_t  treeIndex) const

Get the number of Nodes of the specified type that are in the treeIndexth tree of this Skeleton.

◆ isSpecializedForNode()

template<class NodeType >
constexpr bool dart::dynamics::detail::BasicNodeManagerForBodyNode::isSpecializedForNode
staticconstexprinherited

Check if this Manager is specialized for a specific type of Node.

Member Data Documentation

◆ mNodeDestructors

NodeDestructorSet dart::dynamics::detail::BasicNodeManagerForBodyNode::mNodeDestructors
protectedinherited

A set for storing the Node destructors.

◆ mNodeMap

NodeMap dart::dynamics::detail::BasicNodeManagerForBodyNode::mNodeMap
protectedinherited

Map that retrieves the Nodes of a specified type.

◆ mNodeNameMgrMap

NodeNameMgrMap dart::dynamics::detail::BasicNodeManagerForSkeleton::mNodeNameMgrMap
protected

NameManager for tracking Nodes.

◆ 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.

◆ mTreeNodeMaps

std::vector<NodeMap> dart::dynamics::detail::BasicNodeManagerForSkeleton::mTreeNodeMaps
protected

A NodeMap for each tree to allow tree Nodes to be accessed independently.