6 #ifndef __pinocchio_se3_base_hpp__ 7 #define __pinocchio_se3_base_hpp__ 25 template<
class Derived>
28 PINOCCHIO_SE3_TYPEDEF_TPL(Derived);
30 Derived & derived() {
return *
static_cast<Derived*
>(
this); }
31 const Derived& derived()
const {
return *
static_cast<const Derived*
>(
this); }
33 ConstAngularRef rotation()
const {
return derived().rotation_impl(); }
34 ConstLinearRef translation()
const {
return derived().translation_impl(); }
35 AngularRef rotation() {
return derived().rotation_impl(); }
36 LinearRef translation() {
return derived().translation_impl(); }
37 void rotation(
const AngularType & R) { derived().rotation_impl(R); }
38 void translation(
const LinearType & t) { derived().translation_impl(t); }
40 HomogeneousMatrixType toHomogeneousMatrix()
const 42 return derived().toHomogeneousMatrix_impl();
44 operator HomogeneousMatrixType()
const {
return toHomogeneousMatrix(); }
58 return derived().toActionMatrix_impl();
68 return derived().toActionMatrixInverse_impl();
71 ActionMatrixType toDualActionMatrix()
const 72 {
return derived().toDualActionMatrix_impl(); }
74 void disp(std::ostream & os)
const 76 static_cast<const Derived*
>(
this)->disp_impl(os);
80 operator*(
const Derived & m2)
const 81 {
return derived().__mult__(m2); }
86 act(
const D & d)
const 88 return derived().act_impl(d);
95 return derived().actInv_impl(d);
98 bool operator==(
const Derived & other)
const 99 {
return derived().isEqual(other); }
101 bool operator!=(
const Derived & other)
const 102 {
return !(*
this == other); }
104 bool isApprox(
const Derived & other,
const Scalar & prec = Eigen::NumTraits<Scalar>::dummy_precision())
const 106 return derived().isApprox_impl(other, prec);
109 friend std::ostream & operator <<(std::ostream & os,const SE3Base<Derived> & X)
120 return derived().isIdentity(prec);
127 #endif // ifndef __pinocchio_se3_base_hpp__ ActionMatrixType toActionMatrixInverse() const
The action matrix of .
bool isIdentity(const typename traits< Derived >::Scalar &prec=Eigen::NumTraits< typename traits< Derived >::Scalar >::dummy_precision()) const
ActionMatrixType toActionMatrix() const
The action matrix of .
Main pinocchio namespace.
Common traits structure to fully define base classes for CRTP.
SE3GroupAction< D >::ReturnType actInv(const D &d) const
by = aXb.actInv(ay)
SE3GroupAction< D >::ReturnType act(const D &d) const
ay = aXb.act(by)