Trax3 3.1.0
trax track library
Loading...
Searching...
No Matches
spat::Rotation< Valtype > Class Template Reference

Rotation matrix. More...

#include <C:/Trend/Development/Trax3/Code/spat/Matrix.h>

Inheritance diagram for spat::Rotation< Valtype >:

Public Types

using Basetype = typename SquareMatrix<Valtype,3>::Basetype
 Utmost base type of this Rotation.
Public Types inherited from spat::SquareMatrix< Valtype, 3 >
using Basetype
 Utmost base type of this SquareMatrix.
Public Types inherited from spat::Matrix< Valtype, nColsAndRows, nColsAndRows >
typedef Valtype value_type

Public Member Functions

void CreateFromAxis (const Vector< Valtype > &axis)
 This constructs a rotation with an axis according to the right-hand-rule. (Thumb points in vector direction, fingers show the rotation).
void CreateFromAxis (Valtype rx, Valtype ry, Valtype rz) noexcept
 This constructs a rotation with an axis according to the right-hand-rule. (Thumb points in vector direction, fingers show the rotation).
Vector< Valtype > RotationAxis () const noexcept
 Axis of the rotation described by this matrix.
Valtype RotationAngle () const noexcept
 Angle of the rotation described by this matrix.
template<typename ValtypeP>
Rotation< Valtype > & operator= (const Frame< ValtypeP, Valtype > &frame) noexcept
Construction
Parameters
matrixConstruct from transformation matrix.
axisCreate from a rotational axis.
frameCreate a rotation that transforms frame local coordinates with respect to their rotation only.
 Rotation (const SquareMatrix< Valtype, 3 > &matrix)
 Rotation (SquareMatrix< Valtype, 3 > &&matrix) noexcept
 Rotation (const Basetype &matrix)
 Rotation (Basetype &&matrix) noexcept
 Rotation (const Vector< Valtype > &axis)
 Rotation (Valtype q0, Valtype q1, Valtype q2, Valtype q3) noexcept
template<typename ValtypeP>
 Rotation (const Frame< ValtypeP, Valtype > &frame)
template<typename Valtype2>
 Rotation (const Transformation< Valtype2 > &matrix)
 Rotation (Valtype r00, Valtype r10, Valtype r20, Valtype r01, Valtype r11, Valtype r21, Valtype r02, Valtype r12, Valtype r22)
Assignment
Parameters
frameAssign from frame with respect to its rotation only
template<typename ValtypeP>
Rotation & operator= (const Frame< ValtypeP, Valtype > &frame) noexcept
Rotate

Transform an element by this Rotation

void Rotate (Vector< Valtype > &v) const noexcept
template<typename ValtypeP>
void Rotate (Frame< ValtypeP, Valtype > &frame) const noexcept
Transformation
Position< Valtype > operator* (const Position< Valtype > &p) const noexcept
Vector< Valtype > operator* (const Vector< Valtype > &v) const noexcept
Public Member Functions inherited from spat::SquareMatrix< Valtype, 3 >
Matrix & operator= (const Matrix &matrix) noexcept
Matrix & operator= (Matrix &&matrix) noexcept
Matrix & operator= (const std::initializer_list< Valtype > &elements) noexcept
const Valtype & operator() (unsigned short col, unsigned short row) const noexcept
Valtype & operator() (unsigned short col, unsigned short row) noexcept
void SetIdentity () noexcept
 Sets the matrix to the identity matrix (i.e. all 1 in diagonal, 0 for everything else).
bool IsIdentity (Valtype epsilon=0) const noexcept
bool IsDiagonal () const noexcept
bool IsSymmetric (Valtype epsilon=0) const noexcept
SquareMatrix & Transpose () noexcept
 Change colums and rows.
SquareMatrix & Invert ()
 Invert matrix so that M*I == Identity.
Valtype Trace () const noexcept
 Trace of the matrix, wich is the sum of all element with same indices.
Public Member Functions inherited from spat::Matrix< Valtype, nColsAndRows, nColsAndRows >
void SetNull () noexcept
 Sets all elements to 0.
constexpr unsigned short Cols () const noexcept
 Number of columns.
constexpr unsigned short Rows () const noexcept
 Number of rows.
bool IsEqual (const Matrix &matrix, Valtype delta=0) const noexcept
 Test elements for equality up to delta distance.
bool operator== (const Matrix &matrix) const noexcept
 Comparison for equality.
bool operator!= (const Matrix &matrix) const noexcept
 Comparison for inequality.
void operator*= (Valtype skalar) noexcept
 Matrix * Skalar multiplication.
void operator*= (const Matrix< Valtype, nCols, nCols > &matrix)
 Matrix multiplication.
void operator/= (Valtype skalar) noexcept
 Matrix / Skalar division.
void operator+= (const Matrix &matrix) noexcept
 Matrix addition.
void operator-= (const Matrix &matrix) noexcept
 Matrix subtraction.
const Valtype * ptr () const noexcept
 Pointer accessor for direct copying. The memory layout is column-major order.
Matrix< Valtype, nCols-1, nRows-1 > SubMatrix (unsigned short c, unsigned short r) const
 Extracts the submatrix of mat wich results from omitting the row r and collumn c.
 Matrix (const Matrix &matrix)
 Matrix (Matrix &&matrix) noexcept
 Matrix (const std::initializer_list< Valtype > &elements)
Matrix & operator= (const Matrix &matrix) noexcept
Matrix & operator= (Matrix &&matrix) noexcept
Matrix & operator= (const std::initializer_list< Valtype > &elements) noexcept
const Valtype & operator() (unsigned short col, unsigned short row) const noexcept
Valtype & operator() (unsigned short col, unsigned short row) noexcept

Detailed Description

template<typename Valtype>
class spat::Rotation< Valtype >

Rotation matrix.

Member Function Documentation

◆ RotationAngle()

template<typename Valtype>
Valtype spat::Rotation< Valtype >::RotationAngle ( ) const
noexcept

Angle of the rotation described by this matrix.

Returns
the angle of rotation. The angle is given in radiants.

◆ RotationAxis()

template<typename Valtype>
Vector< Valtype > spat::Rotation< Valtype >::RotationAxis ( ) const
inlinenoexcept

Axis of the rotation described by this matrix.

Returns
the normalised axis of rotation.

The documentation for this class was generated from the following files:
  • C:/Trend/Development/Trax3/Code/spat/Frame.h
  • C:/Trend/Development/Trax3/Code/spat/Matrix.h