DART
6.7.3
|
SkeletonSpecializedForNode allows classes that inherit Skeleton 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 | |
SkeletonSpecializedFor () | |
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 > | |
constexpr bool | _isSpecializedForNode (type< NodeType >) |
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 > | |
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 > | |
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 T > | |
static constexpr bool | isSpecializedForNode () |
Check if this Manager is specialized for a specific type of Node. More... | |
Protected Member Functions | |
template<class NodeType > | |
std::size_t | _getNumNodes (type< NodeType >, std::size_t treeIndex) const |
Redirect to BasicNodeManagerForSkeleton::getNumNodes(std::size_t) More... | |
std::size_t | _getNumNodes (type< SpecNode >, std::size_t treeIndex) const |
Specialized implementation of getNumNodes(std::size_t) More... | |
template<class NodeType > | |
NodeType * | _getNode (type< NodeType >, std::size_t treeIndex, std::size_t nodeIndex) |
Redirect to BasicNodeManagerForSkeleton::getNode(std::size_t, std::size_t) More... | |
SpecNode * | _getNode (type< SpecNode >, std::size_t treeIndex, std::size_t nodeIndex) |
Specialized implementation of getNode(std::size_t, std::size_t) More... | |
template<class NodeType > | |
NodeType * | _getNode (type< NodeType >, const std::string &name) |
Redirect to BasicNodeManagerForSkeleton::getNode(const std::string&) More... | |
SpecNode * | _getNode (type< SpecNode >, const std::string &name) |
Specialized implementation of getNode(const std::string&) More... | |
template<class NodeType > | |
std::size_t | _getNumNodes (type< NodeType >) const |
Redirect to BasicNodeManagerForBodyNode::getNumNodes() More... | |
std::size_t | _getNumNodes (type< SpecNode >) const |
Specialized implementation of getNumNodes() More... | |
template<class NodeType > | |
NodeType * | _getNode (type< NodeType >, std::size_t index) |
Redirect to BasicNodeManagerForBodyNode::getNode(std::size_t) More... | |
SpecNode * | _getNode (type< SpecNode >, std::size_t index) |
Specialized implementation of getNode(std::size_t) More... | |
Static Protected Member Functions | |
template<class T > | |
static constexpr bool | _isSpecializedForNode (type< T >) |
Return false. More... | |
static constexpr bool | _isSpecializedForNode (type< SpecNode >) |
Return true. More... | |
Protected Attributes | |
std::vector< BasicNodeManagerForBodyNode::NodeMap::iterator > | mTreeSpecNodeIterators |
std::vector of iterators that allow direct access to the specialized Nodes of each tree More... | |
NodeNameMgrMap::iterator | mSpecNodeNameMgrIterator |
Iterator that gives direct access to the name manager of the specialized Nodes. More... | |
NodeNameMgrMap | mNodeNameMgrMap |
NameManager for tracking Nodes. More... | |
std::vector< NodeMap > | mTreeNodeMaps |
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... | |
BasicNodeManagerForBodyNode::NodeMap::iterator | mSpecNodeIterator |
Iterator that allows direct access to the specialized Nodes. More... | |
SkeletonSpecializedForNode allows classes that inherit Skeleton to have constant-time access to a specific type of Node.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
dart::dynamics::SkeletonSpecializedFor< SpecNode >::SkeletonSpecializedFor |
|
protected |
Redirect to BasicNodeManagerForSkeleton::getNode(const std::string&)
|
protectedinherited |
Redirect to BasicNodeManagerForBodyNode::getNode(std::size_t)
|
protected |
Redirect to BasicNodeManagerForSkeleton::getNode(std::size_t, std::size_t)
|
protected |
Specialized implementation of getNode(const std::string&)
|
protectedinherited |
Specialized implementation of getNode(std::size_t)
|
protected |
Specialized implementation of getNode(std::size_t, std::size_t)
|
protectedinherited |
Redirect to BasicNodeManagerForBodyNode::getNumNodes()
|
protected |
Redirect to BasicNodeManagerForSkeleton::getNumNodes(std::size_t)
|
protectedinherited |
Specialized implementation of getNumNodes()
|
protected |
Specialized implementation of getNumNodes(std::size_t)
|
constexpr |
|
staticconstexprprotected |
Return true.
|
staticconstexprprotected |
Return false.
NodeType * dart::dynamics::SkeletonSpecializedFor< SpecNode >::getNode | ( | const std::string & | name | ) |
Get the Node of the specified type with the given name.
const NodeType * dart::dynamics::SkeletonSpecializedFor< SpecNode >::getNode | ( | const std::string & | name | ) | const |
Get the Node of the specified type with the given name.
|
inherited |
Get the Node of the specified type and the specified index.
|
inherited |
Get the Node of the specified type and the specified index.
|
inherited |
Get the Node of the specified type and the specified index.
|
inherited |
Get the Node of the specified type and the specified index.
|
inherited |
Get the Node of the specified type and the specified index.
NodeType * dart::dynamics::SkeletonSpecializedFor< SpecNode >::getNode | ( | std::size_t | treeIndex, |
std::size_t | nodeIndex | ||
) |
Get the nodeIndexth Node of the specified type within the tree of treeIndex.
const NodeType * dart::dynamics::SkeletonSpecializedFor< SpecNode >::getNode | ( | std::size_t | treeIndex, |
std::size_t | nodeIndex | ||
) | const |
Get the nodeIndexth Node of the specified type within the tree of treeIndex.
|
inherited |
Get the number of Nodes corresponding to the specified type.
|
inherited |
Get the number of Nodes corresponding to the specified type.
|
inherited |
Get the number of Nodes corresponding to the specified type.
std::size_t dart::dynamics::SkeletonSpecializedFor< SpecNode >::getNumNodes | ( | std::size_t | treeIndex | ) | const |
Get the number of Nodes of the specified type that are in the treeIndexth tree of this Skeleton.
|
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.
|
protectedinherited |
NameManager for tracking Nodes.
|
protectedinherited |
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.
|
protectedinherited |
Iterator that allows direct access to the specialized Nodes.
|
protected |
Iterator that gives direct access to the name manager of the specialized Nodes.
|
protectedinherited |
A NodeMap for each tree to allow tree Nodes to be accessed independently.
|
protected |
std::vector of iterators that allow direct access to the specialized Nodes of each tree