diff --git a/src/multibody/constraint.hpp b/src/multibody/constraint.hpp index 450f3403fc218f836c096ea750825599f6ca9a5e..f3c87ae71a6fa99fe8a9d80e0dd078483ab53e42 100644 --- a/src/multibody/constraint.hpp +++ b/src/multibody/constraint.hpp @@ -102,6 +102,7 @@ namespace se3 class ConstraintTpl : public ConstraintBase<ConstraintTpl < _Dim, _Scalar, _Options > > { public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef ConstraintBase< ConstraintTpl< _Dim, _Scalar, _Options > > Base; diff --git a/src/multibody/joint/joint-composite.hpp b/src/multibody/joint/joint-composite.hpp index 01ed3d89d7b62f3741ba6ec239c96fc421d4ea3f..40228586ff5118b44efa822dc25a3f050f7b6c5b 100644 --- a/src/multibody/joint/joint-composite.hpp +++ b/src/multibody/joint/joint-composite.hpp @@ -21,6 +21,8 @@ #include "pinocchio/assert.hpp" #include "pinocchio/multibody/joint/joint.hpp" +#include <Eigen/StdVector> + EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(se3::SE3) EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(se3::Motion) @@ -56,12 +58,16 @@ namespace se3 typedef Eigen::Matrix<double,Eigen::Dynamic,1> ConfigVector_t; typedef Eigen::Matrix<double,Eigen::Dynamic,1> TangentVector_t; }; + template<> struct traits<JointDataComposite> { typedef JointComposite JointDerived; }; template<> struct traits<JointModelComposite> { typedef JointComposite JointDerived; }; struct JointDataComposite : public JointDataBase<JointDataComposite> { + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + typedef JointComposite Joint; + typedef std::vector<JointData, Eigen::aligned_allocator<JointData> > JointDataVector; SE3_JOINT_TYPEDEF; JointDataVector joints; @@ -99,9 +105,13 @@ namespace se3 struct JointModelComposite : public JointModelBase<JointModelComposite> { + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + typedef JointComposite Joint; SE3_JOINT_TYPEDEF; SE3_JOINT_USE_INDEXES; + typedef std::vector<JointModel, Eigen::aligned_allocator<JointModel> > JointModelVector; + using JointModelBase<JointModelComposite>::id; using JointModelBase<JointModelComposite>::setIndexes;