Double precision 3x3 matrix class. More...
#include <cvb/matrix_3d.hpp>
Public Member Functions | |
| Matrix3D () noexcept=default | |
| Default constructor for empty matrix. More... | |
| template<std::size_t N> | |
| Matrix3D (const double(&list)[N]) noexcept | |
| Construct a 3x3 matrix with an initializer list. More... | |
| Matrix3D (double roll, double pitch, double yaw) | |
| Creates a rotation matrix from the given Euler angles. More... | |
| void | RollPitchYaw (double &roll, double &pitch, double &yaw) const |
| Computes the Euler angles Roll, Pitch and Yaw for this matrix. More... | |
| const double * | operator[] (int row) const noexcept |
| Index based element access. More... | |
| double * | operator[] (int row) noexcept |
| Index based element access. More... | |
| const double & | At (int row, int column) const noexcept |
| Index based element access. More... | |
| double & | At (int row, int column) noexcept |
| Index based element access. More... | |
| double | Det () const |
| Matrix determinant. More... | |
| void | Invert () |
| Inverts this matrix if possible. More... | |
| bool | operator== (const Matrix3D &matrix) const noexcept |
| Compares to an other matrix. More... | |
| bool | operator!= (const Matrix3D &matrix) const noexcept |
| Compares to an other matrix. More... | |
| Matrix3D & | operator+= (const Matrix3D &matrix) noexcept |
| Adds and assigns to this matrix. More... | |
| Matrix3D & | operator-= (const Matrix3D &matrix) noexcept |
| Subtracts and assigns to this matrix. More... | |
| Matrix3D & | operator*= (const Matrix3D &matrix) |
| Multiplies and assigns to this matrix. More... | |
| Matrix3D & | operator*= (const double &value) noexcept |
| Multiplies and assigns to this matrix. More... | |
| Matrix3D & | operator/= (const double &value) noexcept |
| Divides each element of this matrix by the given value. More... | |
Static Public Member Functions | |
| static Matrix3D | Identity () noexcept |
| The identity element. More... | |
Related Functions | |
(Note that these are not member functions.) | |
| Matrix3D | operator+ (const Matrix3D &lhs, const Matrix3D &rhs) |
| Add two matrices. More... | |
| Matrix3D | operator- (const Matrix3D &lhs, const Matrix3D &rhs) |
| Subtract two matrices. More... | |
| Matrix3D | operator* (const Matrix3D &lhs, const Matrix3D &rhs) |
| Multiply two matrices. More... | |
| Point3D< double > | operator* (const Matrix3D &lhs, const Point3D< double > &rhs) |
| Multiply matrix with 3D point. More... | |
| Matrix3D | operator* (const Matrix3D &lhs, const double &rhs) |
| Multiply matrix with scalar. More... | |
| Matrix3D | operator* (const double &lhs, const Matrix3D &rhs) |
| Multiply scalar with matrix . More... | |
| Matrix3D | operator/ (const Matrix3D &lhs, const double &rhs) |
| Divide matrix by scalar. More... | |
Double precision 3x3 matrix class.
|
defaultnoexcept |
Default constructor for empty matrix.
| Does | not throw any exception. |
|
inlinenoexcept |
Construct a 3x3 matrix with an initializer list.
| [in] | list | Containing exactly 9 elements. |
| Does | not throw any exception. |
|
inline |
Creates a rotation matrix from the given Euler angles.
| [in] | roll | Angle around x″ in degrees. |
| [in] | pitch | Angle around y′ axis in degrees. |
| [in] | yaw | Angle around z axis in degrees. |
| Any | exception derived from std::exception including CvbException. |
|
inlinenoexcept |
Index based element access.
| [in] | row | The row to access. |
| [in] | column | The column to access. |
| Does | not throw any exception. |
|
inlinenoexcept |
Index based element access.
| [in] | row | The row to access. |
| [in] | column | The column to access. |
| Does | not throw any exception. |
|
inline |
Matrix determinant.
| Any | exception derived from std::exception including CvbException. |
|
inlinestaticnoexcept |
The identity element.
| Does | not throw any exception. |
|
inline |
Inverts this matrix if possible.
| Any | exception derived from std::exception including CvbException. |
Might cause division by zero.
|
inlinenoexcept |
Compares to an other matrix.
| [in] | matrix | Other matrix. |
| Does | not throw any exception. |
|
inlinenoexcept |
Multiplies and assigns to this matrix.
| [in] | value | Factor. |
| Does | not throw any exception. |
Multiplies and assigns to this matrix.
| [in] | matrix | Other matrix. |
| Any | exception derived from std::exception including CvbException. |
Adds and assigns to this matrix.
| [in] | matrix | Other matrix. |
| Does | not throw any exception. |
Subtracts and assigns to this matrix.
| [in] | matrix | Other matrix. |
| Does | not throw any exception. |
|
inlinenoexcept |
Divides each element of this matrix by the given value.
| [in] | value | Divisor. |
| Does | not throw any exception. |
|
inlinenoexcept |
Compares to an other matrix.
| [in] | matrix | Other matrix. |
| Does | not throw any exception. |
|
inlinenoexcept |
Index based element access.
| [in] | row |
| Does | not throw any exception. |
|
inlinenoexcept |
Index based element access.
| [in] | row |
| Does | not throw any exception. |
|
inline |
Computes the Euler angles Roll, Pitch and Yaw for this matrix.
| [in] | roll | Variable to receive angle around x″ in degrees. |
| [in] | pitch | Variable to receive angle around y′ in degrees. |
| [in] | yaw | Variable to receive angle around z axis in degrees. |
| Any | exception derived from std::exception including CvbException. |
Multiply scalar with matrix .
| [in] | lhs | Right hand side value. |
| [in] | rhs | Left hand side matrix. |
| Does | not throw any exception. |
Multiply matrix with scalar.
| [in] | lhs | Right hand side matrix. |
| [in] | rhs | Left hand side value. |
| Does | not throw any exception. |
Multiply two matrices.
| [in] | lhs | Right hand side matrix. |
| [in] | rhs | Left hand side matrix. |
| Any | exception derived from std::exception including CvbException. |
Multiply matrix with 3D point.
| [in] | lhs | Right hand side matrix. |
| [in] | rhs | Left hand side point. |
| Does | not throw any exception. |
Add two matrices.
| [in] | lhs | Right hand side matrix. |
| [in] | rhs | Left hand side matrix. |
| Does | not throw any exception. |
Subtract two matrices.
| [in] | lhs | Right hand side matrix. |
| [in] | rhs | Left hand side matrix. |
| Does | not throw any exception. |