dart
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
dart::dynamics::BodyNodeSpecializedFor< SpecNode > Class Template Reference

BodyNodeSpecializedFor allows classes that inherit BodyNode to have constant-time access to a specific type of Node. More...

#include <SpecializedNodeManager.hpp>

Inheritance diagram for dart::dynamics::BodyNodeSpecializedFor< SpecNode >:
Inheritance graph
[legend]
Collaboration diagram for dart::dynamics::BodyNodeSpecializedFor< SpecNode >:
Collaboration graph
[legend]

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

Static Public Member Functions

template<class NodeType >
static constexpr bool isSpecializedForNode ()
 Check if this Manager is specialized for a specific type of Node.
 
- 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.
 

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

Detailed Description

template<class SpecNode>
class dart::dynamics::BodyNodeSpecializedFor< SpecNode >

BodyNodeSpecializedFor allows classes that inherit BodyNode to have constant-time access to a specific type of Node.


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