6 #ifndef __pinocchio_se3_base_hpp__ 7 #define __pinocchio_se3_base_hpp__ 29 template<
class Derived>
34 Derived &
derived() {
return *
static_cast<Derived*
>(
this); }
35 const Derived&
derived()
const {
return *
static_cast<const Derived*
>(
this); }
46 return derived().toHomogeneousMatrix_impl();
62 return derived().toActionMatrix_impl();
72 return derived().toActionMatrixInverse_impl();
76 {
return derived().toDualActionMatrix_impl(); }
78 void disp(std::ostream & os)
const 80 static_cast<const Derived*
>(
this)->disp_impl(os);
85 {
return derived().__mult__(m2); }
99 return derived().actInv_impl(d);
103 {
return derived().isEqual(other); }
106 {
return !(*
this == other); }
108 bool isApprox(
const Derived & other,
const Scalar & prec = Eigen::NumTraits<Scalar>::dummy_precision())
const 110 return derived().isApprox_impl(other, prec);
113 friend std::ostream & operator <<(std::ostream & os,const SE3Base<Derived> &
X)
124 return derived().isIdentity(prec);
132 return derived().isNormalized(prec);
155 #endif // ifndef __pinocchio_se3_base_hpp__ SE3GroupAction< D >::ReturnType actInv(const D &d) const
by = aXb.actInv(ay)
void rotation(const AngularType &R)
void translation(const LinearType &t)
bool isNormalized(const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
ActionMatrixType toDualActionMatrix() const
PlainType normalized() const
ActionMatrixType toActionMatrix() const
The action matrix of .
void disp(std::ostream &os) const
bool operator==(const Derived &other) const
bool isIdentity(const typename traits< Derived >::Scalar &prec=Eigen::NumTraits< typename traits< Derived >::Scalar >::dummy_precision()) const
void normalize()
Normalize *this in such a way the rotation part of *this lies on SO(3).
const Derived & derived() const
HomogeneousMatrixType toHomogeneousMatrix() const
ConstAngularRef rotation() const
Main pinocchio namespace.
Base class for rigid transformation.
bool isApprox(const Derived &other, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
Common traits structure to fully define base classes for CRTP.
SE3GroupAction< D >::ReturnType act(const D &d) const
ay = aXb.act(by)
ActionMatrixType toActionMatrixInverse() const
The action matrix of .
PINOCCHIO_SE3_TYPEDEF_TPL(Derived)
SE3GroupAction< Derived >::ReturnType operator*(const Derived &m2) const
bool operator!=(const Derived &other) const
ConstLinearRef translation() const