Geometry/EulerAngles: introduce canonicalEulerAngles

This commit is contained in:
Juraj Oršulić
2023-05-19 15:42:22 +00:00
committed by Rasmus Munk Larsen
parent 7d9bb90f15
commit c18f94e3b0
3 changed files with 308 additions and 107 deletions

View File

@@ -399,9 +399,12 @@ template<typename Derived> class MatrixBase
EIGEN_DEVICE_FUNC
inline PlainObject unitOrthogonal(void) const;
EIGEN_DEVICE_FUNC
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC
inline Matrix<Scalar,3,1> eulerAngles(Index a0, Index a1, Index a2) const;
EIGEN_DEVICE_FUNC
inline Matrix<Scalar,3,1> canonicalEulerAngles(Index a0, Index a1, Index a2) const;
// put this as separate enum value to work around possible GCC 4.3 bug (?)
enum { HomogeneousReturnTypeDirection = ColsAtCompileTime==1&&RowsAtCompileTime==1 ? ((internal::traits<Derived>::Flags&RowMajorBit)==RowMajorBit ? Horizontal : Vertical)
: ColsAtCompileTime==1 ? Vertical : Horizontal };