This file is part of the Lumina Graphics Framework.
This file will define Matrix and various matrix functions. In most cases you should include Matrix.hpp instead, which provides additional helper functions (but has more dependencies). This file also depends on VectorCore.hpp!
Go to the source code of this file.
Classes | |
| class | MatrixHelper< T > |
| Helper struct for various algorithms. More... | |
| struct | MatrixImpl< T, R, C > |
| Helper class for common Matrix stuff. More... | |
| struct | Matrix< T, R, C > |
| Represents a RxC matrix with elements of type T. More... | |
| struct | Matrix< T, N, N > |
Functions | |
| template<typename Ta , typename Tb , std::size_t Ra, std::size_t CR, std::size_t Cb> | |
| void | matrixMultiply (const Ta(&lh)[Ra][CR], const Tb(&rh)[CR][Cb], decltype(Ta(0)*Tb(0))(&out)[Ra][Cb]) |
| Mutiplies two matrices. More... | |
| void | matrixMultiply (const float(&lh)[2][2], const float(&rh)[2][2], float(&out)[2][2]) |
| void | matrixMultiply (const float(&lh)[3][3], const float(&rh)[3][3], float(&out)[3][3]) |
| void | matrixMultiply (const float(&lh)[4][4], const float(&rh)[4][4], float(&out)[4][4]) |
| template<typename T , std::size_t R, std::size_t C> | |
| Matrix< T, R, C > | operator+ (const Matrix< T, R, C > &m) |
| template<typename T , std::size_t R, std::size_t C> | |
| Matrix< T, R, C > | operator- (const Matrix< T, R, C > &m) |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| Matrix< Ta, R, C > & | operator+= (Matrix< Ta, R, C > &lh, const Matrix< Tb, R, C > &rh) |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| Matrix< Ta, R, C > & | operator-= (Matrix< Ta, R, C > &lh, const Matrix< Tb, R, C > &rh) |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| Matrix< Ta, R, C > & | operator*= (Matrix< Ta, R, C > &lh, const Matrix< Tb, R, C > &rh) |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| Matrix< Ta, R, C > & | operator*= (Matrix< Ta, R, C > &lh, Tb rh) |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| Matrix< Ta, R, C > & | operator/= (Matrix< Ta, R, C > &lh, Tb rh) |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| auto | operator* (const Matrix< Ta, R, C > &lh, Tb rh) -> Matrix< decltype(Ta(0)*Tb(0)), R, C > |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| auto | operator* (Tb lh, const Matrix< Ta, R, C > &rh) -> Matrix< decltype(Ta(0)*Tb(0)), R, C > |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| auto | operator/ (const Matrix< Ta, R, C > &lh, Tb rh) -> Matrix< decltype(Ta(0)/Tb(0)), R, C > |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| auto | operator+ (const Matrix< Ta, R, C > &lh, const Matrix< Tb, R, C > &rh) -> Matrix< decltype(Ta(0)+Tb(0)), R, C > |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| auto | operator- (const Matrix< Ta, R, C > &lh, const Matrix< Tb, R, C > &rh) -> Matrix< decltype(Ta(0)-Tb(0)), R, C > |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| auto | operator* (const Matrix< Ta, R, C > &lh, const Matrix< Tb, R, C > &rh) -> Matrix< decltype(Ta(0)*Tb(0)), R, C > |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| auto | operator* (const Matrix< Ta, R, C > &lh, Vector< Tb, C > rh) -> Vector< decltype(Ta(0)+Tb(0)), R > |
| template<typename Ta , typename Tb , std::size_t R, std::size_t C> | |
| auto | operator* (Vector< Tb, R > lh, const Matrix< Ta, R, C > &rh) -> Vector< decltype(Ta(0)+Tb(0)), C > |
| template<typename Tdst , typename Tsrc > | |
| Tdst | matrix_cast (const Tsrc &in) |