pinocchio  2.7.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
CartesianProductOperationVariantTpl< _Scalar, _Options, LieGroupCollectionTpl > Struct Template Reference

Dynamic Cartesian product composed of elementary Lie groups defined in LieGroupVariant. More...

#include <pinocchio/multibody/liegroup/cartesian-product-variant.hpp>

Public Types

typedef LieGroupCollectionTpl< Scalar, Options > LieGroupCollection
 
typedef LieGroupGenericTpl< LieGroupCollection > LieGroupGeneric
 
typedef LieGroupCollection::LieGroupVariant LieGroupVariant
 

Public Member Functions

 CartesianProductOperationVariantTpl ()
 Default constructor.
 
 CartesianProductOperationVariantTpl (const LieGroupGeneric &lg)
 Constructor with one single Lie group. More...
 
 CartesianProductOperationVariantTpl (const LieGroupGeneric &lg1, const LieGroupGeneric &lg2)
 Constructor with two Lie groups. More...
 
template<typename LieGroupDerived >
void append (const LieGroupBase< LieGroupDerived > &lg)
 Append a Lie group to the Cartesian product. More...
 
void append (const LieGroupGeneric &lg)
 Append a Lie group to the Cartesian product. More...
 
template<ArgumentPosition arg, class ConfigL_t , class ConfigR_t , class JacobianOut_t >
void dDifference_impl (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< JacobianOut_t > &J) const
 
template<ArgumentPosition arg, class ConfigL_t , class ConfigR_t , class JacobianIn_t , class JacobianOut_t >
void dDifference_product_impl (const ConfigL_t &q0, const ConfigR_t &q1, const JacobianIn_t &Jin, JacobianOut_t &Jout, bool dDifferenceOnTheLeft, const AssignmentOperatorType op) const
 
template<class ConfigL_t , class ConfigR_t , class Tangent_t >
void difference_impl (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< Tangent_t > &d) const
 
template<class Config_t , class Tangent_t , class JacobianOut_t >
void dIntegrate_dq_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, const AssignmentOperatorType op=SETTO) const
 
template<class Config_t , class Tangent_t , class JacobianOut_t >
void dIntegrate_dv_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, const AssignmentOperatorType op=SETTO) const
 
template<class Config_t , class Tangent_t , class JacobianIn_t , class JacobianOut_t >
void dIntegrate_product_impl (const Config_t &q, const Tangent_t &v, const JacobianIn_t &Jin, JacobianOut_t &Jout, bool dIntegrateOnTheLeft, const ArgumentPosition arg, const AssignmentOperatorType op) const
 
template<class Config_t , class Tangent_t , class JacobianIn_t , class JacobianOut_t >
void dIntegrateTransport_dq_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &J_in, const Eigen::MatrixBase< JacobianOut_t > &J_out) const
 
template<class Config_t , class Tangent_t , class JacobianOut_t >
void dIntegrateTransport_dq_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J) const
 
template<class Config_t , class Tangent_t , class JacobianIn_t , class JacobianOut_t >
void dIntegrateTransport_dv_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &J_in, const Eigen::MatrixBase< JacobianOut_t > &J_out) const
 
template<class Config_t , class Tangent_t , class JacobianOut_t >
void dIntegrateTransport_dv_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J) const
 
template<class ConfigIn_t , class Velocity_t , class ConfigOut_t >
void integrate_impl (const Eigen::MatrixBase< ConfigIn_t > &q, const Eigen::MatrixBase< Velocity_t > &v, const Eigen::MatrixBase< ConfigOut_t > &qout) const
 
template<class Config_t , class Jacobian_t >
void integrateCoeffWiseJacobian_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Jacobian_t > &J) const
 
template<typename LieGroup1 , typename LieGroup2 >
bool isEqual (const CartesianProductOperation< LieGroup1, LieGroup2 > &other) const
 
bool isEqual_impl (const CartesianProductOperationVariantTpl &other) const
 
template<class Config_t >
bool isNormalized_impl (const Eigen::MatrixBase< Config_t > &qout, const Scalar &prec) const
 
template<class ConfigL_t , class ConfigR_t >
bool isSameConfiguration_impl (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Scalar &prec) const
 
std::string name () const
 
ConfigVector_t neutral () const
 
template<class Config_t >
void normalize_impl (const Eigen::MatrixBase< Config_t > &qout) const
 
int nq () const
 
int nv () const
 
CartesianProductOperationVariantTpl operator* (const CartesianProductOperationVariantTpl &other) const
 Cartesian product between *this and other. More...
 
CartesianProductOperationVariantTploperator*= (const CartesianProductOperationVariantTpl &other)
 Append other to *this. More...
 
template<typename LieGroupDerived >
CartesianProductOperationVariantTploperator*= (const LieGroupBase< LieGroupDerived > &lg)
 Append a Lie group to *this. More...
 
CartesianProductOperationVariantTploperator*= (const LieGroupGeneric &lg)
 Append a Lie group to *this. More...
 
 PINOCCHIO_LIE_GROUP_TPL_PUBLIC_INTERFACE (CartesianProductOperationVariantTpl)
 
template<class Config_t >
void random_impl (const Eigen::MatrixBase< Config_t > &qout) const
 
template<class ConfigL_t , class ConfigR_t , class ConfigOut_t >
void randomConfiguration_impl (const Eigen::MatrixBase< ConfigL_t > &lower, const Eigen::MatrixBase< ConfigR_t > &upper, const Eigen::MatrixBase< ConfigOut_t > &qout) const
 
template<class ConfigL_t , class ConfigR_t >
Scalar squaredDistance_impl (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1) const
 

Protected Member Functions

 PINOCCHIO_ALIGNED_STD_VECTOR (LieGroupGeneric) liegroups
 

Protected Attributes

std::vector< Index > lg_nqs
 
std::vector< Index > lg_nvs
 
std::string m_name
 
ConfigVector_t m_neutral
 
Index m_nq
 
Index m_nv
 

Detailed Description

template<typename _Scalar, int _Options, template< typename, int > class LieGroupCollectionTpl>
struct pinocchio::CartesianProductOperationVariantTpl< _Scalar, _Options, LieGroupCollectionTpl >

Dynamic Cartesian product composed of elementary Lie groups defined in LieGroupVariant.

Definition at line 18 of file cartesian-product-variant.hpp.

Constructor & Destructor Documentation

◆ CartesianProductOperationVariantTpl() [1/2]

CartesianProductOperationVariantTpl ( const LieGroupGeneric lg)
inlineexplicit

Constructor with one single Lie group.

Parameters
[in]lgLie group variant to insert inside the Cartesian product

Definition at line 59 of file cartesian-product-variant.hpp.

◆ CartesianProductOperationVariantTpl() [2/2]

CartesianProductOperationVariantTpl ( const LieGroupGeneric lg1,
const LieGroupGeneric lg2 
)
inline

Constructor with two Lie groups.

Parameters
[in]lg1Lie group variant to insert inside the Cartesian product
[in]lg2Lie group variant to insert inside the Cartesian product

Definition at line 73 of file cartesian-product-variant.hpp.

Member Function Documentation

◆ append() [1/2]

void append ( const LieGroupBase< LieGroupDerived > &  lg)
inline

Append a Lie group to the Cartesian product.

Parameters
[in]lgLie group to insert inside the Cartesian product

Definition at line 95 of file cartesian-product-variant.hpp.

◆ append() [2/2]

void append ( const LieGroupGeneric lg)

Append a Lie group to the Cartesian product.

Parameters
[in]lgLie group variant to insert inside the Cartesian product

◆ operator*()

CartesianProductOperationVariantTpl operator* ( const CartesianProductOperationVariantTpl< _Scalar, _Options, LieGroupCollectionTpl > &  other) const

Cartesian product between *this and other.

Parameters
[in]otherCartesianProductOperation to compose with this
Returns
A new Cartesian product betwenn *this and other.

◆ operator*=() [1/3]

CartesianProductOperationVariantTpl& operator*= ( const CartesianProductOperationVariantTpl< _Scalar, _Options, LieGroupCollectionTpl > &  other)

Append other to *this.

Parameters
[in]otherCartesianProductOperation to append to *this.

◆ operator*=() [2/3]

CartesianProductOperationVariantTpl& operator*= ( const LieGroupBase< LieGroupDerived > &  lg)
inline

Append a Lie group to *this.

Parameters
[in]lgLieGroupGeneric to append to *this.

Definition at line 134 of file cartesian-product-variant.hpp.

◆ operator*=() [3/3]

CartesianProductOperationVariantTpl& operator*= ( const LieGroupGeneric lg)
inline

Append a Lie group to *this.

Parameters
[in]lgLieGroupGeneric to append to *this.

Definition at line 122 of file cartesian-product-variant.hpp.


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