Free Electron
|
Matrix for 3D transformations. More...
#include <Matrix3x4.h>
Public Member Functions | |
Matrix (const Matrix< 3, 4, T > &other) | |
template<int M, int N, class U > | |
Matrix (const Matrix< M, N, U > &other) | |
Matrix (const Quaternion< T > &quat) | |
Matrix< 3, 4, T > & | operator= (const Matrix< 3, 4, T > &other) |
template<int M, int N, class U > | |
Matrix< 3, 4, T > & | operator= (const Matrix< M, N, U > &other) |
bool | operator== (const Matrix< 3, 4, T > &other) const |
bool | operator!= (const Matrix< 3, 4, T > &other) const |
Matrix< 3, 4, T > & | operator= (const Quaternion< T > &quat) |
Matrix< 3, 4, T > & | operator*= (const Matrix< 3, 4, T > &preMatrix) |
template<class U > | |
void | copy16 (U *array) const |
Populate a 16 element one dimensional array suitable for OpenGL operations. More... | |
template<class U > | |
void | copyTranslation (U *array) const |
Populate a three element array with the current translation component. More... | |
Vector< 3, T > | column (U32 index) const |
Vector< 3, T > & | column (U32 index) |
Vector< 3, T > | direction (void) const |
Vector< 3, T > | left (void) const |
Vector< 3, T > | up (void) const |
Vector< 3, T > | translation (void) const |
Vector< 3, T > & | direction (void) |
Vector< 3, T > & | left (void) |
Vector< 3, T > & | up (void) |
Vector< 3, T > & | translation (void) |
T | operator() (unsigned int i, unsigned int j) const |
Column Major addressing. More... | |
T & | operator() (unsigned int i, unsigned int j) |
Column Major addressing. More... | |
Static Public Member Functions | |
static const Matrix< 3, 4, T > | identity (void) |
Private Attributes | |
Vector< 3, T > | m_vector [4] |
Matrix for 3D transformations.
Indexes 0 3 6 9 1 4 7 10 2 5 8 11 represent Rot Rot Rot Tx Rot Rot Rot Ty Rot Rot Rot Tz with the columns Direction Left Up Translation The operator(i,j) addressing for a 4x4 matrix is: 00 01 02 03 10 11 12 13 20 21 22 23
For translation on the right as shown, this is stored column major. Note that a few references place translation on the bottom, so this would act like row major.
|
inline |
Populate a 16 element one dimensional array suitable for OpenGL operations.
Translation is placed in elements 13, 14, and 15.
References fe::Matrix< M, N, T >::copy(), and fe::Matrix< M, N, T >::setIdentity().
|
inline |
Populate a three element array with the current translation component.
References fe::Matrix< M, N, T >::add(), fe::String::cat(), fe::String::catf(), fe::Matrix< M, N, T >::copy(), fe::Matrix< M, N, T >::height(), fe::invert(), fe::Matrix< M, N, T >::multiply(), fe::Matrix< M, N, T >::operator*(), fe::Matrix< M, N, T >::operator*=(), fe::Matrix< M, N, T >::operator+(), fe::Matrix< M, N, T >::operator-(), fe::Matrix< M, N, T >::print(), fe::Matrix< M, N, T >::setIdentity(), fe::Matrix< M, N, T >::subtract(), and fe::Matrix< M, N, T >::width().
|
inline |
Column Major addressing.
|
inline |
Column Major addressing.