A 3x3 matrix class. More...
#include <ignition/math/Matrix3.hh>
Public Member Functions | |
Matrix3 () | |
Constructor. More... | |
Matrix3 (const Matrix3< T > &_m) | |
Copy constructor. More... | |
Matrix3 (const Quaternion< T > &_q) | |
Construct Matrix3 from a quaternion. More... | |
Matrix3 (T _v00, T _v01, T _v02, T _v10, T _v11, T _v12, T _v20, T _v21, T _v22) | |
Constructor. More... | |
virtual | ~Matrix3 () |
Desctructor. More... | |
void | Axes (const Vector3< T > &_xAxis, const Vector3< T > &_yAxis, const Vector3< T > &_zAxis) |
Set the matrix from three axis (1 per column) More... | |
void | Axis (const Vector3< T > &_axis, T _angle) |
Set the matrix from an axis and angle. More... | |
void | Col (unsigned int _c, const Vector3< T > &_v) |
Set a column. More... | |
T | Determinant () const |
Return the determinant of the matrix. More... | |
bool | Equal (const Matrix3 &_m, const T &_tol) const |
Equality test with tolerance. More... | |
void | From2Axes (const Vector3< T > &_v1, const Vector3< T > &_v2) |
Set the matrix to represent rotation from vector _v1 to vector _v2, so that _v2.Normalize() == this * _v1.Normalize() holds. More... | |
Matrix3< T > | Inverse () const |
Return the inverse matrix. More... | |
bool | operator!= (const Matrix3< T > &_m) const |
Inequality test operator. More... | |
T & | operator() (size_t _row, size_t _col) |
Array subscript operator. More... | |
const T & | operator() (size_t _row, size_t _col) const |
Array subscript operator. More... | |
Matrix3< T > | operator* (const Matrix3< T > &_m) const |
Matrix multiplication operator. More... | |
Matrix3< T > | operator* (const T &_s) const |
returns the element wise scalar multiplication More... | |
Vector3< T > | operator* (const Vector3< T > &_vec) const |
Multiplication operator with Vector3 on the right treated like a column vector. More... | |
Matrix3< T > | operator+ (const Matrix3< T > &_m) const |
returns the element wise sum of two matrices More... | |
Matrix3< T > | operator- (const Matrix3< T > &_m) const |
returns the element wise difference of two matrices More... | |
Matrix3< T > & | operator= (const Matrix3< T > &_mat) |
Equal operator. this = _mat. More... | |
Matrix3< T > & | operator= (const Quaternion< T > &_q) |
Set the matrix3 from a quaternion. More... | |
bool | operator== (const Matrix3< T > &_m) const |
Equality test operator. More... | |
void | Set (T _v00, T _v01, T _v02, T _v10, T _v11, T _v12, T _v20, T _v21, T _v22) |
Set values. More... | |
void | Transpose () |
Transpose this matrix. More... | |
Matrix3< T > | Transposed () const |
Return the transpose of this matrix. More... | |
Static Public Attributes | |
static const Matrix3< T > | Identity |
Identity matrix. More... | |
static const Matrix3< T > | Zero |
Zero matrix. More... | |
Detailed Description
template<typename T>
class ignition::math::Matrix3< T >
A 3x3 matrix class.
Constructor & Destructor Documentation
◆ Matrix3() [1/4]
|
inline |
Constructor.
References std::memset().
◆ Matrix3() [2/4]
◆ Matrix3() [3/4]
|
inline |
Constructor.
- Parameters
-
[in] _v00 Row 0, Col 0 value [in] _v01 Row 0, Col 1 value [in] _v02 Row 0, Col 2 value [in] _v10 Row 1, Col 0 value [in] _v11 Row 1, Col 1 value [in] _v12 Row 1, Col 2 value [in] _v20 Row 2, Col 0 value [in] _v21 Row 2, Col 1 value [in] _v22 Row 2, Col 2 value
◆ Matrix3() [4/4]
|
inlineexplicit |
Construct Matrix3 from a quaternion.
- Parameters
-
[in] _q Quaternion.
References Quaternion::Normalize(), Matrix3< T >::Set(), Quaternion::W(), Quaternion::X(), Quaternion::Y(), and Quaternion::Z().
◆ ~Matrix3()
|
inlinevirtual |
Desctructor.
Member Function Documentation
◆ Axes()
|
inline |
Set the matrix from three axis (1 per column)
- Parameters
-
[in] _xAxis The x axis [in] _yAxis The y axis [in] _zAxis The z axis
References Matrix3< T >::Col().
◆ Axis()
|
inline |
Set the matrix from an axis and angle.
- Parameters
-
[in] _axis the axis [in] _angle ccw rotation around the axis in radians
References Vector3< T >::X(), Vector3< T >::Y(), and Vector3< T >::Z().
Referenced by Matrix3< T >::From2Axes().
◆ Col()
|
inline |
Set a column.
- Parameters
-
[in] _c The colum index [0, 1, 2]. _col is clamped to the range [0, 2]. [in] _v The value to set in each row of the column.
References ignition::math::clamp(), Vector3< T >::X(), Vector3< T >::Y(), and Vector3< T >::Z().
Referenced by Matrix3< T >::Axes().
◆ Determinant()
|
inline |
Return the determinant of the matrix.
- Returns
- Determinant of this matrix.
◆ Equal()
|
inline |
Equality test with tolerance.
- Parameters
-
[in] _m the matrix to compare to [in] _tol equality tolerance.
- Returns
- true if the elements of the matrices are equal within the tolerence specified by _tol.
Referenced by Matrix3< T >::operator==().
◆ From2Axes()
Set the matrix to represent rotation from vector _v1 to vector _v2, so that _v2.Normalize() == this * _v1.Normalize() holds.
- Parameters
-
[in] _v1 The first vector [in] _v2 The second vector
References Matrix3< T >::Axis(), Vector3< T >::Cross(), Vector3< T >::Dot(), Matrix3< T >::Set(), and Vector3< T >::SquaredLength().
◆ Inverse()
|
inline |
Return the inverse matrix.
- Returns
- Inverse of this matrix.
◆ operator!=()
|
inline |
Inequality test operator.
- Parameters
-
[in] _m Matrix3<T> to test
- Returns
- True if not equal (using the default tolerance of 1e-6)
◆ operator()() [1/2]
|
inline |
Array subscript operator.
- Parameters
-
[in] _row row index. _row is clamped to the range [0,2] [in] _col column index. _col is clamped to the range [0,2]
- Returns
- a pointer to the row
References ignition::math::clamp(), ignition::math::IGN_TWO_SIZE_T, and ignition::math::IGN_ZERO_SIZE_T.
◆ operator()() [2/2]
|
inline |
Array subscript operator.
- Parameters
-
[in] _row row index. _row is clamped to the range [0,2] [in] _col column index. _col is clamped to the range [0,2]
- Returns
- a pointer to the row
References ignition::math::clamp(), ignition::math::IGN_TWO_SIZE_T, and ignition::math::IGN_ZERO_SIZE_T.
◆ operator*() [1/3]
Matrix multiplication operator.
- Parameters
-
[in] _m Matrix3<T> to multiply
- Returns
- product of this * _m
◆ operator*() [2/3]
|
inline |
returns the element wise scalar multiplication
◆ operator*() [3/3]
Multiplication operator with Vector3 on the right treated like a column vector.
- Parameters
-
_vec Vector3
- Returns
- Resulting vector from multiplication
References Vector3< T >::X(), Vector3< T >::Y(), and Vector3< T >::Z().
◆ operator+()
returns the element wise sum of two matrices
◆ operator-()
returns the element wise difference of two matrices
◆ operator=() [1/2]
Equal operator. this = _mat.
- Parameters
-
_mat Incoming matrix
- Returns
- itself
◆ operator=() [2/2]
|
inline |
Set the matrix3 from a quaternion.
- Parameters
-
[in] _q Quaternion to set the matrix3 from.
- Returns
- Reference to the new matrix3 object.
◆ operator==()
|
inline |
Equality test operator.
- Parameters
-
[in] _m Matrix3<T> to test
- Returns
- True if equal (using the default tolerance of 1e-6)
References Matrix3< T >::Equal().
◆ Set()
|
inline |
Set values.
- Parameters
-
[in] _v00 Row 0, Col 0 value [in] _v01 Row 0, Col 1 value [in] _v02 Row 0, Col 2 value [in] _v10 Row 1, Col 0 value [in] _v11 Row 1, Col 1 value [in] _v12 Row 1, Col 2 value [in] _v20 Row 2, Col 0 value [in] _v21 Row 2, Col 1 value [in] _v22 Row 2, Col 2 value
Referenced by Matrix3< T >::From2Axes(), and Matrix3< T >::Matrix3().
◆ Transpose()
|
inline |
Transpose this matrix.
References std::swap().
◆ Transposed()
|
inline |
Return the transpose of this matrix.
- Returns
- Transpose of this matrix.
Referenced by MassMatrix3< T >::SetFromBox(), and MassMatrix3< T >::SetFromCylinderZ().
Member Data Documentation
◆ Identity
|
static |
Identity matrix.
◆ Zero
|
static |
Zero matrix.
The documentation for this class was generated from the following file: