DART  6.6.2
dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 > Class Template Reference

NodeManagerJoiner allows classes that inherit from various SpecializedNodeManager types to be inherited by a single derived class. More...

#include <NodeManagerJoiner.hpp>

Inheritance diagram for dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >:
dart::dynamics::NodeManagerJoinerForSkeleton< Base1, Base2 >

Public Member Functions

 NodeManagerJoinerForBodyNode ()=default
 Default constructor. More...
 
template<typename Base1Arg , typename... Base2Args>
 NodeManagerJoinerForBodyNode (Base1Arg &&arg1, Base2Args &&... args2)
 This constructor allows one argument to be passed to the Base1 constructor and arbitrarily many arguments to be passed to the Base2 constructor. More...
 
template<typename Base1Arg >
 NodeManagerJoinerForBodyNode (Base1Arg &&arg1, common::NoArgTag)
 This constructor passes one argument to the Base1 constructor and no arguments to the Base2 constructor. More...
 
template<typename... Base2Args>
 NodeManagerJoinerForBodyNode (common::NoArgTag, Base2Args &&... args2)
 This constructor passes no arguments to the Base1 constructor and arbitrarily many arguments to the Base2 constructor. More...
 
template<class NodeType >
std::size_t getNumNodes () const
 
template<class NodeType >
NodeType * getNode (std::size_t index)
 
template<class NodeType >
const NodeType * getNode (std::size_t index) const
 
template<class T >
T * getNode (std::size_t index)
 
template<class T >
const T * getNode (std::size_t index) const
 

Static Public Member Functions

template<class NodeType >
static constexpr bool isSpecializedForNode ()
 

Detailed Description

template<class Base1, class Base2>
class dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >

NodeManagerJoiner allows classes that inherit from various SpecializedNodeManager types to be inherited by a single derived class.

This class solved the diamond-of-death problem for multiple SpecializedNodeManager inheritance.

Constructor & Destructor Documentation

◆ NodeManagerJoinerForBodyNode() [1/4]

template<class Base1 , class Base2 >
dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >::NodeManagerJoinerForBodyNode ( )
default

Default constructor.

◆ NodeManagerJoinerForBodyNode() [2/4]

template<class Base1 , class Base2 >
template<typename Base1Arg , typename... Base2Args>
dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >::NodeManagerJoinerForBodyNode ( Base1Arg &&  arg1,
Base2Args &&...  args2 
)

This constructor allows one argument to be passed to the Base1 constructor and arbitrarily many arguments to be passed to the Base2 constructor.

◆ NodeManagerJoinerForBodyNode() [3/4]

template<class Base1 , class Base2 >
template<typename Base1Arg >
dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >::NodeManagerJoinerForBodyNode ( Base1Arg &&  arg1,
common::NoArgTag   
)

This constructor passes one argument to the Base1 constructor and no arguments to the Base2 constructor.

◆ NodeManagerJoinerForBodyNode() [4/4]

template<class Base1 , class Base2 >
template<typename... Base2Args>
dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >::NodeManagerJoinerForBodyNode ( common::NoArgTag  ,
Base2Args &&...  args2 
)

This constructor passes no arguments to the Base1 constructor and arbitrarily many arguments to the Base2 constructor.

Member Function Documentation

◆ getNode() [1/4]

template<class Base1 , class Base2 >
template<class T >
T* dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >::getNode ( std::size_t  index)

◆ getNode() [2/4]

template<class Base1 , class Base2 >
template<class NodeType >
NodeType* dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >::getNode ( std::size_t  index)

◆ getNode() [3/4]

template<class Base1 , class Base2 >
template<class T >
const T* dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >::getNode ( std::size_t  index) const

◆ getNode() [4/4]

template<class Base1 , class Base2 >
template<class NodeType >
const NodeType* dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >::getNode ( std::size_t  index) const

◆ getNumNodes()

template<class Base1 , class Base2 >
template<class T >
std::size_t dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >::getNumNodes

◆ isSpecializedForNode()

template<class Base1 , class Base2 >
template<class T >
constexpr bool dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >::isSpecializedForNode
staticconstexpr