|
DART 6.12.2
|
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.