10 #ifndef EIGEN_ROTATIONBASE_H    11 #define EIGEN_ROTATIONBASE_H    17 template<
typename RotationDerived, 
typename MatrixType, 
bool IsVector=MatrixType::IsVectorAtCompileTime>
    28 template<
typename Derived, 
int _Dim>
    41     inline const Derived& 
derived()
 const { 
return *
static_cast<const Derived*
>(
this); }
    42     inline Derived& 
derived() { 
return *
static_cast<Derived*
>(
this); }
    45     inline RotationMatrixType 
toRotationMatrix()
 const { 
return derived().toRotationMatrix(); }
    50     inline RotationMatrixType 
matrix()
 const { 
return derived().toRotationMatrix(); }
    53     inline Derived 
inverse()
 const { 
return derived().inverse(); }
    69     template<
typename OtherDerived>
    75     template<
typename OtherDerived> 
friend    77     { 
return l.
derived() * r.toRotationMatrix(); }
    83       res.
linear().applyOnTheLeft(l);
    88     template<
int Mode, 
int Options>
    92     template<
typename OtherVectorType>
   100 template<
typename RotationDerived, 
typename MatrixType>
   103   enum { Dim = RotationDerived::Dim };
   105   static inline ReturnType 
run(
const RotationDerived& r, 
const MatrixType& m)
   106   { 
return r.toRotationMatrix() * m; }
   109 template<
typename RotationDerived, 
typename Scalar, 
int Dim, 
int MaxDim>
   121 template<
typename RotationDerived,
typename OtherVectorType>
   124   enum { Dim = RotationDerived::Dim };
   128     return r._transformVector(v);
   138 template<
typename _Scalar, 
int _Rows, 
int _Cols, 
int _Storage, 
int _MaxRows, 
int _MaxCols>
   139 template<
typename OtherDerived>
   151 template<
typename _Scalar, 
int _Rows, 
int _Cols, 
int _Storage, 
int _MaxRows, 
int _MaxCols>
   152 template<
typename OtherDerived>
   181 template<
typename Scalar, 
int Dim>
   188 template<
typename Scalar, 
int Dim, 
typename OtherDerived>
   194 template<
typename Scalar, 
int Dim, 
typename OtherDerived>
   197   EIGEN_STATIC_ASSERT(OtherDerived::RowsAtCompileTime==Dim && OtherDerived::ColsAtCompileTime==Dim,
   198     YOU_MADE_A_PROGRAMMING_MISTAKE)
   206 #endif // EIGEN_ROTATIONBASE_H RotationMatrixType matrix() const 
Matrix< Scalar, Dim, 1 > VectorType
static ReturnType run(const RotationDerived &r, const MatrixType &m)
#define EIGEN_STRONG_INLINE
static Matrix< Scalar, 2, 2 > toRotationMatrix(const Scalar &s)
Matrix< Scalar, Dim, Dim > RotationMatrixType
Represents a diagonal matrix with its storage. 
Transform< Scalar, Dim, Isometry > operator*(const Translation< Scalar, Dim > &t) const 
friend Transform< Scalar, Dim, Affine > operator*(const DiagonalMatrix< Scalar, Dim > &l, const Derived &r)
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
VectorType _transformVector(const OtherVectorType &v) const 
Transform< Scalar, Dim, Affine > ReturnType
Represents a translation transformation. 
Transform< Scalar, Dim, Mode > operator*(const Transform< Scalar, Dim, Mode, Options > &t) const 
EIGEN_STRONG_INLINE Matrix()
Default constructor. 
#define EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(TYPE, ROWS, COLS)
Common base class for compact rotation representations. 
Matrix< typename RotationDerived::Scalar, Dim, Dim > ReturnType
static ReturnType run(const RotationDerived &r, const DiagonalMatrix< Scalar, Dim, MaxDim > &m)
internal::traits< Derived >::Scalar Scalar
Represents a rotation/orientation in a 2 dimensional space. 
Matrix< typename RotationDerived::Scalar, Dim, 1 > ReturnType
EIGEN_STRONG_INLINE Matrix & operator=(const Matrix &other)
Assigns matrices to each other. 
EIGEN_STRONG_INLINE internal::rotation_base_generic_product_selector< Derived, OtherDerived, OtherDerived::IsVectorAtCompileTime >::ReturnType operator*(const EigenBase< OtherDerived > &e) const 
const Derived & derived() const 
The matrix class, also used for vectors and row-vectors. 
RotationMatrixType operator*(const UniformScaling< Scalar > &s) const 
Base class for all dense matrices, vectors, and expressions. 
friend RotationMatrixType operator*(const EigenBase< OtherDerived > &l, const Derived &r)
RotationMatrixType toRotationMatrix() const 
static EIGEN_STRONG_INLINE ReturnType run(const RotationDerived &r, const OtherVectorType &v)