diff --git a/src/multibody/constraint.hpp b/src/multibody/constraint.hpp index c26b3f9a1a64953e5dcffbd441617e5e92c54ada..0ffb70af2552a229b6dc833a5d65f1bd6b149328 100644 --- a/src/multibody/constraint.hpp +++ b/src/multibody/constraint.hpp @@ -36,7 +36,7 @@ namespace se3 { protected: typedef Derived Derived_t; - SPATIAL_TYPEDEF_ARG(Derived_t); + SPATIAL_TYPEDEF_TEMPLATE(Derived_t); typedef typename traits<Derived_t>::JointMotion JointMotion; typedef typename traits<Derived_t>::JointForce JointForce; typedef typename traits<Derived_t>::DenseBase DenseBase; @@ -87,7 +87,7 @@ namespace se3 public: friend class ConstraintBase< ConstraintTpl< _Dim, _Scalar, _Options > >; - SPATIAL_TYPEDEF_ARG(ConstraintTpl); + SPATIAL_TYPEDEF_TEMPLATE(ConstraintTpl); enum { NV = _Dim, Options = _Options }; diff --git a/src/multibody/joint/joint-revolute.hpp b/src/multibody/joint/joint-revolute.hpp index 296c76b76d080691c283f19190b4e67ac9bcaa8c..a89570a3183ea5a4f2f46b34b85b2f08738c0ecc 100644 --- a/src/multibody/joint/joint-revolute.hpp +++ b/src/multibody/joint/joint-revolute.hpp @@ -81,7 +81,7 @@ namespace se3 template<int axis> struct MotionRevolute : MotionBase < MotionRevolute <axis > > { - SPATIAL_TYPEDEF_ARG(MotionRevolute); + SPATIAL_TYPEDEF_TEMPLATE(MotionRevolute); MotionRevolute() : w(NAN) {} MotionRevolute( const double & w ) : w(w) {} double w; @@ -136,7 +136,7 @@ namespace se3 template<int axis> struct ConstraintRevolute : ConstraintBase < ConstraintRevolute <axis > > { - SPATIAL_TYPEDEF_ARG(ConstraintRevolute); + SPATIAL_TYPEDEF_TEMPLATE(ConstraintRevolute); template<typename D> MotionRevolute<axis> operator*( const Eigen::MatrixBase<D> & v ) const diff --git a/src/spatial/force.hpp b/src/spatial/force.hpp index 388ce02cbc04a82ed2463e19e86859cf5d10d083..6d71cf8e55eefd7688030ac44c7a0059ca7a0191 100644 --- a/src/spatial/force.hpp +++ b/src/spatial/force.hpp @@ -32,7 +32,7 @@ namespace se3 protected: typedef Derived Derived_t; - SPATIAL_TYPEDEF_ARG(Derived_t); + SPATIAL_TYPEDEF_TEMPLATE(Derived_t); public: Derived_t & derived() { return *static_cast<Derived_t*>(this); } @@ -118,7 +118,7 @@ namespace se3 public: friend class ForceBase< ForceTpl< _Scalar, _Options > >; - SPATIAL_TYPEDEF_ARG(ForceTpl); + SPATIAL_TYPEDEF_TEMPLATE(ForceTpl); public: diff --git a/src/spatial/fwd.hpp b/src/spatial/fwd.hpp index aa044e836242640b73dd3e95843fc832b01ac590..5db86da15d7e5d2eec68aea41553c84ca901f932 100644 --- a/src/spatial/fwd.hpp +++ b/src/spatial/fwd.hpp @@ -30,27 +30,47 @@ namespace se3 template<class C> struct traits {}; - #define SPATIAL_TYPEDEF_ARG(derived) \ - typedef typename traits<derived>::Scalar_t Scalar_t; \ - typedef typename traits<derived>::Vector3 Vector3; \ - typedef typename traits<derived>::Vector4 Vector4; \ - typedef typename traits<derived>::Vector6 Vector6; \ - typedef typename traits<derived>::Matrix3 Matrix3; \ - typedef typename traits<derived>::Matrix4 Matrix4; \ - typedef typename traits<derived>::Matrix6 Matrix6; \ - typedef typename traits<derived>::Angular_t Angular_t; \ - typedef typename traits<derived>::Linear_t Linear_t; \ - typedef typename traits<derived>::ActionMatrix_t ActionMatrix_t; \ - typedef typename traits<derived>::Quaternion_t Quaternion_t; \ - typedef typename traits<derived>::SE3 SE3; \ - typedef typename traits<derived>::Force Force; \ - typedef typename traits<derived>::Motion Motion; \ - typedef typename traits<derived>::Symmetric3 Symmetric3; \ - enum { \ - LINEAR = traits<derived>::LINEAR, \ - ANGULAR = traits<derived>::ANGULAR \ - } + #define SPATIAL_TYPEDEF_TEMPLATE(derived) \ + typedef typename traits<derived>::Scalar_t Scalar_t; \ + typedef typename traits<derived>::Vector3 Vector3; \ + typedef typename traits<derived>::Vector4 Vector4; \ + typedef typename traits<derived>::Vector6 Vector6; \ + typedef typename traits<derived>::Matrix3 Matrix3; \ + typedef typename traits<derived>::Matrix4 Matrix4; \ + typedef typename traits<derived>::Matrix6 Matrix6; \ + typedef typename traits<derived>::Angular_t Angular_t; \ + typedef typename traits<derived>::Linear_t Linear_t; \ + typedef typename traits<derived>::ActionMatrix_t ActionMatrix_t; \ + typedef typename traits<derived>::Quaternion_t Quaternion_t; \ + typedef typename traits<derived>::SE3 SE3; \ + typedef typename traits<derived>::Force Force; \ + typedef typename traits<derived>::Motion Motion; \ + typedef typename traits<derived>::Symmetric3 Symmetric3; \ + enum { \ + LINEAR = traits<derived>::LINEAR, \ + ANGULAR = traits<derived>::ANGULAR \ + } + #define SPATIAL_TYPEDEF_NO_TEMPLATE(derived) \ + typedef traits<derived>::Scalar_t Scalar_t; \ + typedef traits<derived>::Vector3 Vector3; \ + typedef traits<derived>::Vector4 Vector4; \ + typedef traits<derived>::Vector6 Vector6; \ + typedef traits<derived>::Matrix3 Matrix3; \ + typedef traits<derived>::Matrix4 Matrix4; \ + typedef traits<derived>::Matrix6 Matrix6; \ + typedef traits<derived>::Angular_t Angular_t; \ + typedef traits<derived>::Linear_t Linear_t; \ + typedef traits<derived>::ActionMatrix_t ActionMatrix_t; \ + typedef traits<derived>::Quaternion_t Quaternion_t; \ + typedef traits<derived>::SE3 SE3; \ + typedef traits<derived>::Force Force; \ + typedef traits<derived>::Motion Motion; \ + typedef traits<derived>::Symmetric3 Symmetric3; \ + enum { \ + LINEAR = traits<derived>::LINEAR, \ + ANGULAR = traits<derived>::ANGULAR \ + } } // namespace se3 diff --git a/src/spatial/inertia.hpp b/src/spatial/inertia.hpp index 8f1951cd15cfe53cce0dc74343c717f033a3427d..edc7fa3fc0df2f0bcfd71df7a20bad51a43f6aee 100644 --- a/src/spatial/inertia.hpp +++ b/src/spatial/inertia.hpp @@ -33,7 +33,7 @@ namespace se3 protected: typedef Derived Derived_t; - SPATIAL_TYPEDEF_ARG(Derived_t); + SPATIAL_TYPEDEF_TEMPLATE(Derived_t); public: Derived_t & derived() { return *static_cast<Derived_t*>(this); } @@ -114,7 +114,7 @@ namespace se3 { public: friend class InertiaBase< InertiaTpl< _Scalar, _Options > >; - SPATIAL_TYPEDEF_ARG(InertiaTpl); + SPATIAL_TYPEDEF_TEMPLATE(InertiaTpl); public: // Constructors diff --git a/src/spatial/motion.hpp b/src/spatial/motion.hpp index d4712f3bd3cfbd82637770b746b7ffdc2ad7c5d0..1bebba72133c5219c3a7c6a122c38858bc497cdf 100644 --- a/src/spatial/motion.hpp +++ b/src/spatial/motion.hpp @@ -34,7 +34,7 @@ namespace se3 typedef Derived Derived_t; - SPATIAL_TYPEDEF_ARG(Derived_t); + SPATIAL_TYPEDEF_TEMPLATE(Derived_t); public: Derived_t & derived() { return *static_cast<Derived_t*>(this); } @@ -135,7 +135,7 @@ namespace se3 class MotionTpl : public MotionBase< MotionTpl< _Scalar, _Options > > { public: - SPATIAL_TYPEDEF_ARG(MotionTpl); + SPATIAL_TYPEDEF_TEMPLATE(MotionTpl); public: @@ -332,7 +332,7 @@ namespace se3 struct BiasZero : public MotionBase< BiasZero > { - SPATIAL_TYPEDEF_ARG(BiasZero); + SPATIAL_TYPEDEF_NO_TEMPLATE(BiasZero); operator Motion () const { return Motion::Zero(); } }; // struct BiasZero diff --git a/src/spatial/se3.hpp b/src/spatial/se3.hpp index 736131ddcec13839b20bf4c48861678ce930bc81..5b9153fbc2b72f5112843d623aa2190b0fbe4e41 100644 --- a/src/spatial/se3.hpp +++ b/src/spatial/se3.hpp @@ -55,7 +55,7 @@ namespace se3 protected: typedef Derived Derived_t; - SPATIAL_TYPEDEF_ARG(Derived_t); + SPATIAL_TYPEDEF_TEMPLATE(Derived_t); public: Derived_t & derived() { return *static_cast<Derived_t*>(this); } @@ -147,7 +147,7 @@ namespace se3 public: friend class SE3Base< SE3Tpl< _Scalar, _Options > >; - SPATIAL_TYPEDEF_ARG(SE3Tpl); + SPATIAL_TYPEDEF_TEMPLATE(SE3Tpl); public: