Go to the documentation of this file.
36 M_.template triangularView<Eigen::Lower>() = M;
37 I_.template triangularView<Eigen::Lower>() = I;
45 ABInertia(
const Eigen::TriangularView<matrix3_t, Eigen::Lower> & ltM,
47 const Eigen::TriangularView<matrix3_t, Eigen::Lower> & ltI)
48 : M_(ltM), H_(H), I_(ltI)
63 M.template triangularView<Eigen::Upper>() = M_.transpose();
64 M.template triangularView<Eigen::StrictlyLower>() = M_;
84 I.template triangularView<Eigen::Upper>() = I_.transpose();
85 I.template triangularView<Eigen::StrictlyLower>() = I_;
100 return ABInertia<T2>(M_.template cast<T2>(), H_.template cast<T2>(), I_.template cast<T2>());
107 M.template triangularView<Eigen::Lower>() = M_ + rbI.M_;
108 I.template triangularView<Eigen::Lower>() = I_ + rbI.I_;
115 M.template triangularView<Eigen::Lower>() = M_ - rbI.M_;
116 I.template triangularView<Eigen::Lower>() = I_ - rbI.I_;
127 M_.template triangularView<Eigen::Lower>() += rbI.M_;
129 I_.template triangularView<Eigen::Lower>() += rbI.I_;
135 M_.template triangularView<Eigen::Lower>() -= rbI.M_;
137 I_.template triangularView<Eigen::Lower>() -= rbI.I_;
141 template<
typename T2>
145 M.template triangularView<Eigen::Lower>() = scalar * M_;
146 I.template triangularView<Eigen::Lower>() = scalar * I_;
157 template<
typename Derived>
158 void mul(
const Eigen::MatrixBase<Derived> & mv, Eigen::MatrixBase<Derived> & result)
const;
162 return M_ == abI.M_ && H_ == abI.H_ && I_ == abI.I_;
167 return M_ != abI.M_ || H_ != abI.H_ || I_ != abI.I_;
176 template<
typename T,
typename T2>
ABInertia(const matrix3_t &M, const matrix3_t &H, const matrix3_t &I)
Definition: ABInertia.h:33
std::ostream & operator<<(std::ostream &out, const ABInertia< T > &abI)
Definition: ABInertia.h:183
Matrix< T, 3, 3 > Matrix3
Definition: EigenTypedef.h:20
ABInertia< T > operator-(const ABInertia< T > &rbI) const
Definition: ABInertia.h:112
bool operator==(const ABInertia< T > &abI) const
Definition: ABInertia.h:160
Definition: ForceVec.h:19
ABInertia< T > operator+(const ABInertia< T > &rbI) const
Definition: ABInertia.h:104
ABInertia(const Eigen::TriangularView< matrix3_t, Eigen::Lower > <M, const matrix3_t &H, const Eigen::TriangularView< matrix3_t, Eigen::Lower > <I)
Definition: ABInertia.h:45
Definition: ABInertia.h:10
Eigen::Matrix3< T > matrix3_t
Definition: ABInertia.h:22
ABInertia< T > operator-() const
Definition: ABInertia.h:120
Matrix< T, 3, 1 > Vector3
Definition: EigenTypedef.h:18
const matrix3_t & lowerTriangularMassMatrix() const
Definition: ABInertia.h:54
const matrix3_t & gInertia() const
Definition: ABInertia.h:69
const matrix3_t & lowerTriangularInertia() const
Definition: ABInertia.h:75
ABInertia()
Definition: ABInertia.h:26
ABInertia< T > operator*(T2 scalar) const
Definition: ABInertia.h:142
matrix3_t massMatrix() const
Definition: ABInertia.h:60
Eigen::Vector3< T > vector3_t
Definition: ABInertia.h:21
ABInertia< T > operator*(T2 scalar, const ABInertia< T > &abI)
Definition: ABInertia.h:177
Definition: ABInertia.h:18
ABInertia< T > & operator+=(const ABInertia< T > &rbI)
Definition: ABInertia.h:125
ABInertia< T > & operator-=(const ABInertia< T > &rbI)
Definition: ABInertia.h:133
matrix6_t matrix() const
@retrun Non compact spatial articulated body inertia matrix.
Definition: ABInertia.h:90
void mul(const Eigen::MatrixBase< Derived > &mv, Eigen::MatrixBase< Derived > &result) const
Definition: Operators.h:195
bool operator!=(const ABInertia< T > &abI) const
Definition: ABInertia.h:165
Matrix< T, 6, 6 > Matrix6
Definition: EigenTypedef.h:15
ABInertia< T2 > cast() const
Definition: ABInertia.h:98
Eigen::Matrix6< T > matrix6_t
Definition: ABInertia.h:23
matrix3_t inertia() const
Definition: ABInertia.h:81