A NxM-dimensional matrix class template of fixed dimensions with supporting functions. More...
Go to the source code of this file.
Classes | |
struct | mi::math::Matrix_struct<T, ROW, COL> |
Storage class for a NxM-dimensional matrix class template of fixed dimensions. More... | |
struct | mi::math::Matrix_struct<T, 1, 1> |
Specialization for 1x1-matrix. More... | |
struct | mi::math::Matrix_struct<T, 2, 1> |
Specialization for 2x1-matrix. More... | |
struct | mi::math::Matrix_struct<T, 3, 1> |
Specialization for 3x1-matrix. More... | |
struct | mi::math::Matrix_struct<T, 4, 1> |
Specialization for 4x1-matrix. More... | |
struct | mi::math::Matrix_struct<T, 1, 2> |
Specialization for 1x2-matrix. More... | |
struct | mi::math::Matrix_struct<T, 2, 2> |
Specialization for 2x2-matrix. More... | |
struct | mi::math::Matrix_struct<T, 3, 2> |
Specialization for 3x2-matrix. More... | |
struct | mi::math::Matrix_struct<T, 4, 2> |
Specialization for 4x2-matrix. More... | |
struct | mi::math::Matrix_struct<T, 1, 3> |
Specialization for 1x3-matrix. More... | |
struct | mi::math::Matrix_struct<T, 2, 3> |
Specialization for 2x3-matrix. More... | |
struct | mi::math::Matrix_struct<T, 3, 3> |
Specialization for 3x3-matrix. More... | |
struct | mi::math::Matrix_struct<T, 4, 3> |
Specialization for 4x3-matrix. More... | |
struct | mi::math::Matrix_struct<T, 1, 4> |
Specialization for 1x4-matrix. More... | |
struct | mi::math::Matrix_struct<T, 2, 4> |
Specialization for 2x4-matrix. More... | |
struct | mi::math::Matrix_struct<T, 3, 4> |
Specialization for 3x4-matrix. More... | |
struct | mi::math::Matrix_struct<T, 4, 4> |
Specialization for 4x4-matrix. More... | |
class | mi::math::Matrix<T, ROW, COL> |
NxM-dimensional matrix class template of fixed dimensions. More... | |
Namespaces | |
namespace | mi |
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. | |
namespace | mi::math |
Namespace for the Math API. | |
Functions | |
template<typename T , Size ROW, Size COL> | |
T * | mi::math::matrix_base_ptr (Matrix_struct<T, ROW, COL> &mat) |
Returns the base pointer to the matrix data. More... | |
template<typename T , Size ROW, Size COL> | |
const T * | mi::math::matrix_base_ptr (const Matrix_struct<T, ROW, COL> &mat) |
Returns the base pointer to the matrix data. More... | |
template<typename T , Size ROW, Size COL> | |
bool | mi::math::operator== (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is elementwise equal to rhs . More... | |
template<typename T , Size ROW, Size COL> | |
bool | mi::math::operator!= (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is elementwise not equal to rhs . More... | |
template<typename T , Size ROW, Size COL> | |
bool | mi::math::operator< (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is lexicographically less than rhs . More... | |
template<typename T , Size ROW, Size COL> | |
bool | mi::math::operator<= (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is lexicographically less than or equal to rhs . More... | |
template<typename T , Size ROW, Size COL> | |
bool | mi::math::operator> (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is lexicographically greater than rhs . More... | |
template<typename T , Size ROW, Size COL> | |
bool | mi::math::operator>= (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is lexicographically greater than or equal to rhs . More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> & | mi::math::operator+= (Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Adds rhs elementwise to lhs and returns the modified lhs . More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> & | mi::math::operator-= (Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Subtracts rhs elementwise from lhs and returns the modified lhs . More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> | mi::math::operator+ (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Adds lhs and rhs elementwise and returns the new result. More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> | mi::math::operator- (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Subtracts rhs elementwise from lhs and returns the new result. More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> | mi::math::operator- (const Matrix<T, ROW, COL> &mat) |
Negates the matrix mat elementwise and returns the new result. More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> & | mi::math::operator*= (Matrix<T, ROW, COL> &lhs, const Matrix<T, COL, COL> &rhs) |
Performs matrix multiplication, lhs times rhs , assigns it to lhs , and returns the modified lhs . More... | |
template<typename T , Size ROW1, Size COL1, Size ROW2, Size COL2> | |
Matrix<T, ROW1, COL2> | mi::math::operator* (const Matrix<T, ROW1, COL1> &lhs, const Matrix<T, ROW2, COL2> &rhs) |
Performs matrix multiplication, lhs times rhs , and returns the new result. More... | |
template<typename T , Size ROW, Size COL, Size DIM> | |
Vector<T, ROW> | mi::math::operator* (const Matrix<T, ROW, COL> &mat, const Vector<T, DIM> &vec) |
Multiplies the (column) vector vec from the right with the matrix mat and returns the resulting vector. More... | |
template<Size DIM, typename T , Size ROW, Size COL> | |
Vector<T, COL> | mi::math::operator* (const Vector<T, DIM> &vec, const Matrix<T, ROW, COL> &mat) |
Multiplies the (row) vector vec from the left with the matrix mat and returns the resulting vector. More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> & | mi::math::operator*= (Matrix<T, ROW, COL> &mat, T factor) |
Multiplies the matrix mat elementwise with the scalar factor and returns the modified matrix mat . More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> | mi::math::operator* (const Matrix<T, ROW, COL> &mat, T factor) |
Multiplies the matrix mat elementwise with the scalar factor and returns the new result. More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> | mi::math::operator* (T factor, const Matrix<T, ROW, COL> &mat) |
Multiplies the matrix mat elementwise with the scalar factor and returns the new result. More... | |
template<Size NEW_ROW, Size NEW_COL, typename T , Size ROW, Size COL> | |
Matrix< T, NEW_ROW, NEW_COL > | mi::math::sub_matrix (const Matrix<T, ROW, COL> &mat) |
Returns the upper-left sub-matrix of size NEW_ROW times NEW_COL . More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, COL, ROW> | mi::math::transpose (const Matrix<T, ROW, COL> &mat) |
Returns the transpose of the matrix mat by exchanging rows and columns. More... | |
template<typename T , typename U> | |
U | mi::math::transform_point (const Matrix<T, 4, 4> &mat, const U &point) |
Returns a transformed 1D point by applying the full transformation in the 4x4 matrix mat on the 1D point point , which includes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 2> | mi::math::transform_point (const Matrix<T, 4, 4> &mat, const Vector<U, 2> &point) |
Returns a transformed 2D point by applying the full transformation in the 4x4 matrix mat on the 2D point point , which includes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 3> | mi::math::transform_point (const Matrix<T, 4, 3> &mat, const Vector<U, 3> &point) |
Returns a transformed 3D point by applying the full transformation in the 4x3 matrix mat on the 3D point point , which includes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 3> | mi::math::transform_point (const Matrix<T, 4, 4> &mat, const Vector<U, 3> &point) |
Returns a transformed 3D point by applying the full transformation in the 4x4 matrix mat on the 3D point point , which includes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 4> | mi::math::transform_point (const Matrix<T, 4, 4> &mat, const Vector<U, 4> &point) |
Returns a transformed 4D point by applying the full transformation in the 4x4 matrix mat on the 4D point point , which includes the translation. More... | |
template<typename T , typename U> | |
U | mi::math::transform_vector (const Matrix<T, 4, 4> &mat, const U &vector) |
Returns a transformed 1D vector by applying the 1x1 linear sub-transformation in the 4x4 matrix mat on the 1D vector vector , which excludes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 2> | mi::math::transform_vector (const Matrix<T, 4, 4> &mat, const Vector<U, 2> &vector) |
Returns a transformed 2D vector by applying the 2x2 linear sub-transformation in the 4x4 matrix mat on the 2D vector vector , which excludes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 3> | mi::math::transform_vector (const Matrix<T, 3, 3> &mat, const Vector<U, 3> &vector) |
Returns a transformed 3D vector by applying the 3x3 matrix mat transformation on the 3D vector vector . More... | |
template<typename T , typename U> | |
Vector<U, 3> | mi::math::transform_vector (const Matrix<T, 4, 3> &mat, const Vector<U, 3> &vector) |
Returns a transformed 3D vector by applying the 3x3 linear sub-transformation in the 4x3 matrix mat on the 3D vector vector , which excludes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 3> | mi::math::transform_vector (const Matrix<T, 4, 4> &mat, const Vector<U, 3> &vector) |
Returns a transformed 3D vector by applying the 3x3 linear sub-transformation in the 4x4 matrix mat on the 3D vector vector , which excludes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 3> | mi::math::transform_normal_inv (const Matrix<T, 3, 3> &inv_mat, const Vector<U, 3> &normal) |
Returns an inverse transformed 3D normal vector by applying the 3x3 transposed linear transformation in the matrix inv_mat on the 3D normal vector normal . More... | |
template<typename T , typename U> | |
Vector<U, 3> | mi::math::transform_normal_inv (const Matrix<T, 4, 4> &inv_mat, const Vector<U, 3> &normal) |
Returns an inverse transformed 3D normal vector by applying the 3x3 transposed linear sub-transformation in the 4x4 matrix inv_mat on the 3D normal vector normal . More... | |
template<typename T , typename U> | |
Vector<U, 3> | mi::math::transform_normal (const Matrix<T, 4, 4> &mat, const Vector<U, 3> &normal) |
Returns a transformed 3D normal vector by applying the 3x3 transposed linear sub-transformation in the inverse of the 4x4 matrix mat on the 3D normal vector normal . More... | |
A NxM-dimensional matrix class template of fixed dimensions with supporting functions.
See Matrix Class.