hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType > Class Template Reference

Main abstract class. More...

#include <hpp/constraints/symbolic-calculus.hh>

Inheritance diagram for hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >:
[legend]
Collaboration diagram for hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >:
[legend]

Public Member Functions

 CalculusBase ()
 
 CalculusBase (const ValueType &value, const JacobianType &jacobian)
 
 CalculusBase (const CalculusBase &o)
 
const ValueType & value () const
 
const JacobianType & jacobian () const
 
void computeValue (const ConfigurationIn_t arg)
 
void computeJacobian (const ConfigurationIn_t arg)
 
void invalidate ()
 
const CrossType & cross () const
 
void computeCrossValue (const ConfigurationIn_t arg)
 

Protected Member Functions

void init (const typename Traits< T >::Ptr_t &ptr)
 

Protected Attributes

ValueType value_
 
JacobianType jacobian_
 
CrossType cross_
 
bool vValid_
 
bool jValid_
 
bool cValid_
 

Additional Inherited Members

- Public Types inherited from hpp::constraints::CalculusBaseAbstract< ValueType, JacobianType >
typedef ValueType ValueType_t
 
typedef JacobianType JacobianType_t
 

Detailed Description

template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
class hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >

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

template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::CalculusBase ( )
inline
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::CalculusBase ( const ValueType &  value,
const JacobianType &  jacobian 
)
inline
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::CalculusBase ( const CalculusBase< T, ValueType, JacobianType, CrossType > &  o)
inline

Member Function Documentation

template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
void hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::computeCrossValue ( const ConfigurationIn_t  arg)
inline
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
void hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::computeJacobian ( const ConfigurationIn_t  arg)
inlinevirtual
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
void hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::computeValue ( const ConfigurationIn_t  arg)
inlinevirtual
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
const CrossType& hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::cross ( ) const
inline
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
void hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::init ( const typename Traits< T >::Ptr_t &  ptr)
inlineprotected
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
void hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::invalidate ( )
inlinevirtual
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
const JacobianType& hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::jacobian ( ) const
inlinevirtual
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
const ValueType& hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::value ( ) const
inlinevirtual

Member Data Documentation

template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
CrossType hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::cross_
protected
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
bool hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::cValid_
protected
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
JacobianType hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::jacobian_
protected
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
bool hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::jValid_
protected
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
ValueType hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::value_
protected
template<class T, class ValueType = vector3_t, class JacobianType = JacobianMatrix, class CrossType = CrossMatrix>
bool hpp::constraints::CalculusBase< T, ValueType, JacobianType, CrossType >::vValid_
protected