dart
Public Member Functions | Static Public Member Functions | List of all members
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 >:
Inheritance graph
[legend]
Collaboration diagram for dart::dynamics::NodeManagerJoinerForBodyNode< Base1, Base2 >:
Collaboration graph
[legend]

Public Member Functions

 NodeManagerJoinerForBodyNode ()=default
 Default constructor.
 
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
 

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/3]

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() [2/3]

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() [3/3]

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.


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