5 #ifndef __pinocchio_force_ref_hpp__ 6 #define __pinocchio_force_ref_hpp__ 11 template<
typename Vector6ArgType>
21 typedef Eigen::Matrix<Scalar,3,1,Options>
Vector3;
22 typedef Eigen::Matrix<Scalar,6,6,Options>
Matrix6;
24 typedef typename Vector6ArgType::template FixedSegmentReturnType<3>::Type
LinearType;
25 typedef typename Vector6ArgType::template FixedSegmentReturnType<3>::Type
AngularType;
26 typedef typename Vector6ArgType::template ConstFixedSegmentReturnType<3>::Type
ConstLinearType;
27 typedef typename Vector6ArgType::template ConstFixedSegmentReturnType<3>::Type
ConstAngularType;
37 template<typename Vector6ArgType>
43 template<
typename Vector6ArgType,
typename MotionDerived>
49 template<
typename Vector6ArgType>
53 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
58 using Base::operator=;
59 using Base::operator==;
60 using Base::operator!=;
66 EIGEN_STATIC_ASSERT(Vector6ArgType::ColsAtCompileTime == 1,
67 YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX);
68 assert(f_like.size() == 6);
80 ConstAngularType
angular_impl()
const {
return ConstAngularType(m_ref.derived(),ANGULAR); }
81 ConstLinearType
linear_impl()
const {
return ConstLinearType(m_ref.derived(),LINEAR); }
82 AngularType
angular_impl() {
return m_ref.template segment<3> (ANGULAR); }
83 LinearType
linear_impl() {
return m_ref.template segment<3> (LINEAR); }
88 EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(V3,3);
95 EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(V3,3);
106 template<
typename Vector6ArgType>
116 typedef Eigen::Matrix<Scalar,3,1,Options>
Vector3;
117 typedef Eigen::Matrix<Scalar,6,6,Options>
Matrix6;
119 typedef typename Vector6ArgType::template ConstFixedSegmentReturnType<3>::Type
ConstLinearType;
120 typedef typename Vector6ArgType::template ConstFixedSegmentReturnType<3>::Type
ConstAngularType;
127 typedef ConstDataRefType DataRefType;
133 template<typename Vector6ArgType>
138 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
146 EIGEN_STATIC_ASSERT(Vector6ArgType::ColsAtCompileTime == 1,
147 YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX);
148 assert(f_like.size() == 6);
154 ConstAngularType
angular_impl()
const {
return ConstAngularType(m_ref.derived(),ANGULAR); }
155 ConstLinearType
linear_impl()
const {
return ConstLinearType(m_ref.derived(),LINEAR); }
166 #endif // ifndef __pinocchio_force_ref_hpp__ JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
DataRefType ToVectorReturnType
traits< ForceRef< Vector6ArgType > >::ForcePlain ReturnType
ConstAngularType angular_impl() const
traits< ForceRef >::DataRefType DataRefType
ToVectorConstReturnType toVector_impl() const
Vector6ArgType::template ConstFixedSegmentReturnType< 3 >::Type ConstLinearType
Eigen::Matrix< Scalar, 3, 1, Options > Vector3
Vector6ArgType::Scalar Scalar
Return type of the ation of a Motion onto an object of type D.
ConstDataRefType ToVectorConstReturnType
PINOCCHIO_EIGEN_REF_CONST_TYPE(Matrix6Like) operator*(const Eigen
ConstDataRefType ToVectorConstReturnType
ConstAngularType angular_impl() const
ConstLinearType linear_impl() const
ConstLinearType LinearType
Eigen::Matrix< Scalar, 6, 6, Options > Matrix6
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef ForceDense< ForceRef > Base
ForcePlain PlainReturnType
ForceRef(typename PINOCCHIO_EIGEN_REF_CONST_TYPE(Vector6ArgType) f_like)
Eigen::Matrix< Scalar, 6, 6, Options > Matrix6
ToVectorReturnType toVector_impl()
#define FORCE_TYPEDEF_TPL(Derived)
ForceTpl< Scalar, Options > ForcePlain
ToVectorConstReturnType toVector_impl() const
Vector6ArgType::Scalar Scalar
ConstLinearType linear_impl() const
void linear_impl(const Eigen::MatrixBase< V3 > &v)
ForceTpl< Scalar, Options > ForcePlain
#define PINOCCHIO_EIGEN_REF_TYPE(D)
Main pinocchio namespace.
Vector6ArgType::template ConstFixedSegmentReturnType< 3 >::Type ConstLinearType
PINOCCHIO_EIGEN_PLAIN_TYPE(ConfigVectorType) integrate(const ModelTpl< Scalar
Integrate a configuration vector for the specified model for a tangent vector during one unit time...
ConstAngularType AngularType
Vector6ArgType::template ConstFixedSegmentReturnType< 3 >::Type ConstAngularType
Common traits structure to fully define base classes for CRTP.
const ForceRef & ref() const
DataRefType ToVectorReturnType
AngularType angular_impl()
traits< ForceRef >::DataRefType DataRefType
Vector6ArgType::template ConstFixedSegmentReturnType< 3 >::Type ConstAngularType
traits< ForceRef< Vector6ArgType > >::ForcePlain ReturnType
void angular_impl(const Eigen::MatrixBase< V3 > &w)
Vector6ArgType::template FixedSegmentReturnType< 3 >::Type LinearType
ForceRef(typename PINOCCHIO_EIGEN_REF_TYPE(Vector6ArgType) f_like)
Default constructor from a 6 dimensional vector.
ForceRef(const ForceRef &other)
Copy constructor from another ForceRef.
Vector6ArgType::template FixedSegmentReturnType< 3 >::Type AngularType
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef ForceDense< ForceRef > Base
Eigen::Matrix< Scalar, 3, 1, Options > Vector3