DART 6.10.1
|
BodyNodeSpecializedFor allows classes that inherit BodyNode to have constant-time access to a specific type of Node. More...
#include <SpecializedNodeManager.hpp>
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 | |
BodyNodeSpecializedFor () | |
Default constructor. | |
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. | |
Static Public Member Functions | |
template<class NodeType > | |
static constexpr bool | isSpecializedForNode () |
Check if this Manager is specialized for a specific type of Node. | |
Protected Member Functions | |
template<class NodeType > | |
std::size_t | _getNumNodes (type< NodeType >) const |
Redirect to BasicNodeManagerForBodyNode::getNumNodes() | |
std::size_t | _getNumNodes (type< SpecNode >) const |
Specialized implementation of getNumNodes() | |
template<class NodeType > | |
NodeType * | _getNode (type< NodeType >, std::size_t index) |
Redirect to BasicNodeManagerForBodyNode::getNode(std::size_t) | |
SpecNode * | _getNode (type< SpecNode >, std::size_t index) |
Specialized implementation of getNode(std::size_t) | |
Static Protected Member Functions | |
template<class NodeType > | |
static constexpr bool | _isSpecializedForNode (type< NodeType >) |
Return false. | |
static constexpr bool | _isSpecializedForNode (type< SpecNode >) |
Return true. | |
Protected Attributes | |
BasicNodeManagerForBodyNode::NodeMap::iterator | mSpecNodeIterator |
Iterator that allows direct access to the specialized Nodes. | |
NodeMap | mNodeMap |
Map that retrieves the Nodes of a specified type. | |
NodeDestructorSet | mNodeDestructors |
A set for storing the Node destructors. | |
BodyNodeSpecializedFor allows classes that inherit BodyNode to have constant-time access to a specific type of Node.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
dart::dynamics::BodyNodeSpecializedFor< SpecNode >::BodyNodeSpecializedFor | ( | ) |
Default constructor.
|
protected |
Redirect to BasicNodeManagerForBodyNode::getNode(std::size_t)
|
protected |
Specialized implementation of getNode(std::size_t)
|
protected |
Redirect to BasicNodeManagerForBodyNode::getNumNodes()
|
protected |
Specialized implementation of getNumNodes()
|
staticconstexprprotected |
Return false.
|
staticconstexprprotected |
Return true.
NodeType * dart::dynamics::BodyNodeSpecializedFor< SpecNode >::getNode | ( | std::size_t | index | ) |
Get the Node of the specified type and the specified index.
const NodeType * dart::dynamics::BodyNodeSpecializedFor< SpecNode >::getNode | ( | std::size_t | index | ) | const |
Get the Node of the specified type and the specified index.
std::size_t dart::dynamics::BodyNodeSpecializedFor< SpecNode >::getNumNodes | ( | ) | const |
Get the number of Nodes corresponding to the specified type.
|
staticconstexpr |
Check if this Manager is specialized for a specific type of Node.
|
protectedinherited |
A set for storing the Node destructors.
|
protectedinherited |
Map that retrieves the Nodes of a specified type.
|
protected |
Iterator that allows direct access to the specialized Nodes.