Go to the documentation of this file.
41 I_.template triangularView<Eigen::Lower>() = I;
50 : m_(m), h_(h), I_(ltI)
77 I.template triangularView<Eigen::Upper>() = I_.transpose();
78 I.template triangularView<Eigen::StrictlyLower>() = I_;
87 m <<
inertia(), hCross, hCross.transpose(), matrix3_t::Identity() * m_;
94 return RBInertia<T2>(T2(m_), h_.template cast<T2>(), I_.template cast<T2>());
101 I.template triangularView<Eigen::Lower>() = I_ + rbI.I_;
108 I.template triangularView<Eigen::Lower>() = I_ - rbI.I_;
119 I_.template triangularView<Eigen::Lower>() += rbI.I_;
127 I_.template triangularView<Eigen::Lower>() -= rbI.I_;
133 template<
typename T2>
137 I.template triangularView<Eigen::Lower>() = scalar * I_;
145 template<
typename Derived>
146 void mul(
const Eigen::MatrixBase<Derived> & mv, Eigen::MatrixBase<Derived> & result)
const;
150 return m_ == rbI.m_ && h_ == rbI.h_ && I_ == rbI.I_;
155 return m_ != rbI.m_ || h_ != rbI.h_ || I_ != rbI.I_;
164 template<
typename T,
typename T2>
184 Eigen::vector3ToCrossMatrix<T>(mass * com) * Eigen::vector3ToCrossMatrix<T>(com).transpose();
185 return rotation * (inertia + trans) * rotation.transpose();
std::ostream & operator<<(std::ostream &out, const ABInertia< T > &abI)
Definition: ABInertia.h:183
Matrix< T, 3, 3 > Matrix3
Definition: EigenTypedef.h:20
matrix6_t matrix() const
@retrun Non compact spatial rigid body inertia matrix.
Definition: RBInertia.h:83
const matrix3_t & lowerTriangularInertia() const
Definition: RBInertia.h:68
RBInertia()
Definition: RBInertia.h:32
Definition: ForceVec.h:19
T mass() const
Definition: RBInertia.h:56
Definition: ABInertia.h:10
Matrix3< T > vector3ToCrossMatrix(const Vector3< T > &vec)
Definition: EigenUtility.h:16
Matrix< T, 3, 1 > Vector3
Definition: EigenTypedef.h:18
RBInertia(T m, const vector3_t &h, const matrix3_t &I)
Definition: RBInertia.h:39
RBInertia(T m, const vector3_t &h, const Eigen::TriangularView< matrix3_t, Eigen::Lower > <I)
Definition: RBInertia.h:49
matrix3_t inertia() const
Definition: RBInertia.h:74
bool operator!=(const RBInertia< T > &rbI) const
Definition: RBInertia.h:153
RBInertia< T > operator+(const RBInertia< T > &rbI) const
Definition: RBInertia.h:98
RBInertia< T2 > cast() const
Definition: RBInertia.h:92
ABInertia< T > operator*(T2 scalar, const ABInertia< T > &abI)
Definition: ABInertia.h:177
Eigen::Matrix3< T > matrix3_t
Definition: RBInertia.h:28
RBInertia< T > operator-(const RBInertia< T > &rbI) const
Definition: RBInertia.h:105
const vector3_t & momentum() const
Definition: RBInertia.h:62
RBInertia< T > operator-() const
Definition: RBInertia.h:112
bool operator==(const RBInertia< T > &rbI) const
Definition: RBInertia.h:148
Eigen::Matrix6< T > matrix6_t
Definition: RBInertia.h:29
Eigen::Vector3< T > vector3_t
Definition: RBInertia.h:27
RBInertia< T > & operator-=(const RBInertia< T > &rbI)
Definition: RBInertia.h:125
Matrix< T, 6, 6 > Matrix6
Definition: EigenTypedef.h:15
RBInertia< T > operator*(T2 scalar) const
Definition: RBInertia.h:134
void mul(const Eigen::MatrixBase< Derived > &mv, Eigen::MatrixBase< Derived > &result) const
Definition: Operators.h:165
Eigen::Matrix3< T > inertiaToOrigin(const Eigen::Matrix3< T > &inertia, T mass, const Eigen::Vector3< T > &com, const Eigen::Matrix3< T > &rotation)
Definition: RBInertia.h:178
RBInertia< T > & operator+=(const RBInertia< T > &rbI)
Definition: RBInertia.h:117