![]() |
Chemical Data Processing Library C++ API - Version 1.4.0
|
\( N \times N \) rotation matrix backed by a unit quaternion (or an axis-angle representation). More...
#include <AffineTransform.hpp>
Inheritance diagram for CDPL::Math::RotationMatrix< T >:Public Types | |
| typedef T | ValueType |
| The scalar value type. More... | |
| typedef const T | Reference |
Reference type (always a const reference — elements are computed). More... | |
| typedef const T | ConstReference |
| Constant reference type to an element. More... | |
| typedef std::size_t | SizeType |
| The unsigned size type. More... | |
| typedef std::ptrdiff_t | DifferenceType |
| The signed difference type. More... | |
| typedef MatrixReference< SelfType > | ClosureType |
| Closure type used when this matrix appears inside another expression. More... | |
| typedef const MatrixReference< const SelfType > | ConstClosureType |
| Constant closure type used when this matrix appears inside another expression. More... | |
| typedef Matrix< T, std::vector< T > > | MatrixTemporaryType |
| Concrete temporary matrix type used by expression-template machinery. More... | |
| typedef Vector< T, std::vector< T > > | VectorTemporaryType |
| Concrete temporary vector type used when assembling vectors from this matrix. More... | |
Public Types inherited from CDPL::Math::MatrixContainer< RotationMatrix< T > > | |
| typedef RotationMatrix< T > | ContainerType |
| The derived matrix container type. More... | |
Public Types inherited from CDPL::Math::MatrixExpression< E > | |
| typedef E | ExpressionType |
| The derived matrix expression type. More... | |
Public Types inherited from CDPL::Math::Expression< E > | |
| typedef E | ExpressionType |
| The derived expression type (made available to expression-template machinery). More... | |
Public Member Functions | |
| template<typename E > | |
| RotationMatrix (SizeType n, const QuaternionExpression< E > &q) | |
| Constructs an \( N \times N \) rotation matrix from the unit quaternion q. More... | |
| template<typename T1 , typename T2 , typename T3 , typename T4 > | |
| RotationMatrix (SizeType n, const T1 &w, const T2 &ux, const T3 &uy, const T4 &uz) | |
| Constructs an \( N \times N \) rotation matrix from an axis-angle representation. More... | |
| RotationMatrix (const RotationMatrix &m) | |
| Constructs a copy of the rotation matrix m. More... | |
| template<typename E > | |
| void | set (const QuaternionExpression< E > &q) |
| Sets the rotation from the unit quaternion q. More... | |
| template<typename T1 , typename T2 , typename T3 , typename T4 > | |
| void | set (const T1 &w, const T2 &ux, const T3 &uy, const T4 &uz) |
| Sets the rotation from an axis-angle representation. More... | |
| ConstReference | operator() (SizeType i, SizeType j) const |
| Returns the rotation-matrix entry at (i, j). More... | |
| bool | isEmpty () const |
| Tells whether the matrix is empty (size zero). More... | |
| SizeType | getSize1 () const |
| Returns the dimension N (the row count). More... | |
| SizeType | getSize2 () const |
| Returns the dimension N (the column count). More... | |
| SizeType | getMaxSize1 () const |
| Returns the maximum representable row count. More... | |
| SizeType | getMaxSize2 () const |
| Returns the maximum representable column count. More... | |
| RotationMatrix & | operator= (const RotationMatrix &m) |
| Copy-assigns the dimension and the underlying quaternion components from m. More... | |
| void | swap (RotationMatrix &m) |
| Swaps the dimension and the underlying quaternion components with m. More... | |
| void | resize (SizeType n) |
| Resizes the matrix dimension to n (the underlying quaternion is left unchanged). More... | |
Public Member Functions inherited from CDPL::Math::MatrixContainer< RotationMatrix< T > > | |
| const ContainerType & | operator() () const |
Returns a const reference to the derived matrix container. More... | |
| ContainerType & | operator() () |
| Returns a reference to the derived matrix container. More... | |
Public Member Functions inherited from CDPL::Math::MatrixExpression< E > | |
| const ExpressionType & | operator() () const |
Returns a const reference to the derived matrix expression. More... | |
| ExpressionType & | operator() () |
| Returns a reference to the derived matrix expression. More... | |
Friends | |
| void | swap (RotationMatrix &m1, RotationMatrix &m2) |
| ADL-enabled free-function form of swap(). More... | |
Additional Inherited Members | |
Protected Member Functions inherited from CDPL::Math::MatrixContainer< RotationMatrix< T > > | |
| MatrixContainer () | |
| ~MatrixContainer () | |
Protected Member Functions inherited from CDPL::Math::MatrixExpression< E > | |
| MatrixExpression () | |
| ~MatrixExpression () | |
Protected Member Functions inherited from CDPL::Math::Expression< E > | |
| Expression () | |
| ~Expression () | |
\( N \times N \) rotation matrix backed by a unit quaternion (or an axis-angle representation).
The first \( 3 \times 3 \) block holds the rotation; the remaining diagonal entries are 1 (identity) and all other entries are 0. The size \( N \) is configurable and typically chosen to fit the surrounding coordinate system (e.g. 4 for homogeneous transformations).
| T | The scalar value type. |
| typedef T CDPL::Math::RotationMatrix< T >::ValueType |
The scalar value type.
| typedef const T CDPL::Math::RotationMatrix< T >::Reference |
Reference type (always a const reference — elements are computed).
| typedef const T CDPL::Math::RotationMatrix< T >::ConstReference |
Constant reference type to an element.
| typedef std::size_t CDPL::Math::RotationMatrix< T >::SizeType |
The unsigned size type.
| typedef std::ptrdiff_t CDPL::Math::RotationMatrix< T >::DifferenceType |
The signed difference type.
| typedef MatrixReference<SelfType> CDPL::Math::RotationMatrix< T >::ClosureType |
Closure type used when this matrix appears inside another expression.
| typedef const MatrixReference<const SelfType> CDPL::Math::RotationMatrix< T >::ConstClosureType |
Constant closure type used when this matrix appears inside another expression.
| typedef Matrix<T, std::vector<T> > CDPL::Math::RotationMatrix< T >::MatrixTemporaryType |
Concrete temporary matrix type used by expression-template machinery.
| typedef Vector<T, std::vector<T> > CDPL::Math::RotationMatrix< T >::VectorTemporaryType |
Concrete temporary vector type used when assembling vectors from this matrix.
|
inline |
Constructs an \( N \times N \) rotation matrix from the unit quaternion q.
| E | The quaternion expression type. |
| n | The matrix dimension N. |
| q | The unit quaternion expressing the rotation. |
|
inline |
Constructs an \( N \times N \) rotation matrix from an axis-angle representation.
| T1 | The rotation-angle scalar type. |
| T2 | The x-axis component scalar type. |
| T3 | The y-axis component scalar type. |
| T4 | The z-axis component scalar type. |
| n | The matrix dimension N. |
| w | The rotation angle (in radians). |
| ux | The x-component of the rotation axis (unit vector). |
| uy | The y-component of the rotation axis (unit vector). |
| uz | The z-component of the rotation axis (unit vector). |
|
inline |
Constructs a copy of the rotation matrix m.
| m | The rotation matrix to copy. |
|
inline |
Sets the rotation from the unit quaternion q.
| E | The quaternion expression type. |
| q | The unit quaternion expressing the rotation. |
|
inline |
Sets the rotation from an axis-angle representation.
| T1 | The rotation-angle scalar type. |
| T2 | The x-axis component scalar type. |
| T3 | The y-axis component scalar type. |
| T4 | The z-axis component scalar type. |
| w | The rotation angle (in radians). |
| ux | The x-component of the rotation axis (unit vector). |
| uy | The y-component of the rotation axis (unit vector). |
| uz | The z-component of the rotation axis (unit vector). |
|
inline |
Returns the rotation-matrix entry at (i, j).
| i | The zero-based row index. |
| j | The zero-based column index. |
| Base::IndexError | if either index is out of range. |
|
inline |
Tells whether the matrix is empty (size zero).
true if N is zero, and false otherwise.
|
inline |
Returns the dimension N (the row count).
|
inline |
Returns the dimension N (the column count).
|
inline |
Returns the maximum representable row count.
|
inline |
Returns the maximum representable column count.
|
inline |
Copy-assigns the dimension and the underlying quaternion components from m.
| m | The source rotation matrix. |
|
inline |
Swaps the dimension and the underlying quaternion components with m.
| m | The rotation matrix to swap with. |
|
inline |
Resizes the matrix dimension to n (the underlying quaternion is left unchanged).
| n | The new dimension. |
|
friend |
ADL-enabled free-function form of swap().
| m1 | The first rotation matrix. |
| m2 | The second rotation matrix. |