hpp::constraints::CalculusBase< T > Class Template Reference

Main abstract class. More...

#include <hpp/constraints/tools.hh>

Inheritance diagram for hpp::constraints::CalculusBase< T >:
Collaboration diagram for hpp::constraints::CalculusBase< T >:

Public Member Functions

 CalculusBase ()
 
const eigen::vector3_tvalue () const
 
const JacobianMatrixjacobian () const
 
const CrossMatrixcross () const
 
void computeCrossValue ()
 
template<typename RhsType >
CrossProduct< T, RhsType > operator^ (const RhsType &rhs) const
 
template<typename RhsType >
Difference< T, RhsType > operator- (const RhsType &rhs) const
 
template<typename RhsType >
Sum< T, RhsType > operator+ (const RhsType &rhs) const
 
ScalarMultiply< T > operator* (const value_type &scalar) const
 
- Public Member Functions inherited from hpp::constraints::CalculusBaseAbstract
virtual void computeValue ()=0
 
virtual void computeJacobian ()=0
 

Protected Attributes

eigen::vector3_t value_
 
JacobianMatrix jacobian_
 
CrossMatrix cross_
 

Additional Inherited Members

- Static Public Member Functions inherited from hpp::constraints::CalculusBaseAbstract
template<typename Type >
static boost::shared_ptr< Type > create (const Type &copy)
 

Detailed Description

template<class T>
class hpp::constraints::CalculusBase< T >

Main abstract class.

The framework is using CRTP to virtual function calls overload. Keep in mind, so far, no mathematical simplification is done on the expression you provide. It means that you may have a more efficient expression by calculating and simplifying the jacobian yourself. These classes provide:

  • a fast way of defining new constraints,
  • a robust way of calculation of jacobians - hand calculation error proof
  • a fast way to check the results of your calculations.

Constructor & Destructor Documentation

◆ CalculusBase()

template<class T>
hpp::constraints::CalculusBase< T >::CalculusBase ( )
inline

Member Function Documentation

◆ computeCrossValue()

template<class T>
void hpp::constraints::CalculusBase< T >::computeCrossValue ( )
inline

◆ cross()

template<class T>
const CrossMatrix& hpp::constraints::CalculusBase< T >::cross ( ) const
inline

◆ jacobian()

template<class T>
const JacobianMatrix& hpp::constraints::CalculusBase< T >::jacobian ( ) const
inlinevirtual

◆ operator*()

template<class T>
ScalarMultiply< T > hpp::constraints::CalculusBase< T >::operator* ( const value_type scalar) const
inline

◆ operator+()

template<class T>
template<typename RhsType >
Sum< T, RhsType > hpp::constraints::CalculusBase< T >::operator+ ( const RhsType &  rhs) const
inline

◆ operator-()

template<class T>
template<typename RhsType >
Difference< T, RhsType > hpp::constraints::CalculusBase< T >::operator- ( const RhsType &  rhs) const
inline

◆ operator^()

template<class T>
template<typename RhsType >
CrossProduct< T, RhsType > hpp::constraints::CalculusBase< T >::operator^ ( const RhsType &  rhs) const
inline

◆ value()

template<class T>
const eigen::vector3_t& hpp::constraints::CalculusBase< T >::value ( ) const
inlinevirtual

Member Data Documentation

◆ cross_

template<class T>
CrossMatrix hpp::constraints::CalculusBase< T >::cross_
protected

◆ jacobian_

template<class T>
JacobianMatrix hpp::constraints::CalculusBase< T >::jacobian_
protected

◆ value_

template<class T>
eigen::vector3_t hpp::constraints::CalculusBase< T >::value_
protected