Clarisse 5.0 SP8 SDK  5.0.5.8.0
GMathMatrix4x4< T, ROW_MAJOR_ORDER > Class Template Reference

The GMathMatrix4x4 class Implements a row-major 4 by 4 Matrix. | [0,0] [0,1] [0,2] [0,3] | [1,0] [1,1] [1,2] [1,3] | [2,0] [2,1] [2,2] [2,3] | [3,0] [3,1] [3,2] [3,3]. More...

Inheritance diagram for GMathMatrix4x4< T, ROW_MAJOR_ORDER >:

## Public Member Functions

GMathMatrix4x4 (const bool &identity)

template<class U >
GMathMatrix4x4 (const CoreBasicArray< U > &src_array)

GMathMatrix4x4 (const T src[4][4])

template<class U , bool ROW_MAJOR_MATRIX>
GMathMatrix4x4 (const GMathMatrix4x4< U, ROW_MAJOR_MATRIX > &src)

GMathMatrix4x4 get_copy ()

void copy_from (const GMathMatrix4x4 &m)

void copy_to (GMathMatrix4x4 &m) const

template<bool ROW_MAJOR_ARRAY>
void set_array (const T elements[16])

template<bool ROW_MAJOR_ARRAY>
void get_array (T elements[16]) const

template<class U >
GMathMatrix4x4operator= (const GMathMatrix4x4< U > &src)

bool operator== (const GMathMatrix4x4 &m) const

bool operator!= (const GMathMatrix4x4 &m) const

void nullify ()

void set_identity ()

void make_translation (const T &x, const T &y, const T &z)

void make_translation (const GMathVec3< T > &t)

void make_scaling_translation (const GMathVec3< T > &s, const GMathVec3< T > &t)

void make_inverse_tr (const GMathVec3< T > &t, const GMathMatrix4x4< T > &r)

void make_inverse_ts (const GMathVec3< T > &t, const GMathVec3< T > &s)

void make_inverse_rs (const GMathMatrix4x4< T > &r, const GMathVec3< T > &s)

void make_inverse (const GMathVec3< T > &t, const GMathMatrix4x4< T > &r, const GMathVec3< T > &s)

void make_frame (const GMathVec3< T > &x, const GMathVec3< T > &y, const GMathVec3< T > &z, const GMathVec3< T > &o=GMathVec3< T >(GMath< T >::zero()))

void make_rotation (Axis axis, const T &cos_angle, const T &sin_angle)

void make_rotation (Axis axis, const T &angle_radians)

void make_rotation (const GMathVec3< T > &r, const GMathRotationOrder &order=GMATH_ROTATION_ORDER_ZXY)

void make_diagonal (const GMathVec4< T > &d)

void make_scaling (const T &x, const T &y, const T &z)

void make_scaling (const GMathVec3< T > &s)

void make_shearing (const T &xy, const T &xz, const T &yz)

void make_shearing (const GMathVec3< T > &sh)

template<typename U >
void get_linear (GMathMatrix3x3< U > &linear) const

template<typename U >
void make_linear (const GMathMatrix3x3< U > &linear)

void make_linear_transpose (const GMathMatrix4x4< T > &linear)

void make_orthographic (const T &l, const T &r, const T &b, const T &t, const T &n, const T &f)

void make_perspective (const T &l, const T &r, const T &b, const T &t, const T &n, const T &f)

void compose (GMathVec3< T > &t, GMathVec3< T > &x, GMathVec3< T > &y, GMathVec3< T > &z, GMathVec3< T > &sh, GMathVec3< T > &s)

void compose (GMathVec3< T > &t, GMathMatrix4x4< T > &r, GMathVec3< T > &sh, GMathVec3< T > &s)

void set_translation (const GMathVec3< T > &t)

void set_frame (const GMathVec3< T > &x, const GMathVec3< T > &y, const GMathVec3< T > &z)

void set_rotation (const GMathVec3< T > &r, const GMathRotationOrder &order=GMATH_ROTATION_ORDER_ZXY)

void set_scaling (const GMathVec3< T > &s)

void multiply_left (const GMathMatrix4x4 &m)

void multiply_right (const GMathMatrix4x4 &m)

void multiply_transpose_left (const GMathMatrix4x4 &m)

void multiply_transpose_right (const GMathMatrix4x4 &m)

template<class U >
void translate (const GMathVec3< U > &t)

template<typename U >
void translate_right (const GMathVec3< U > &t)

template<typename U >

void rotate (const GMathVec3< T > &r, const GMathRotationOrder &order=GMATH_ROTATION_ORDER_ZXY)

void scale (const T &x, const T &y, const T &z)

void scale (const GMathVec3< T > &s)

template<typename U >
void scale_right (const GMathVec3< U > &s)

void scale_linear_right (const GMathVec3< T > &s)

void shear (const T &xy, const T &xz, const T &yz)

void shear (const GMathVec3< T > &sh)

get_inverse (GMathMatrix4x4 &result) const

void invert ()

get_determinant () const

void get_transpose (GMathMatrix4x4 &r) const

void transpose ()

void extract_translation (GMathVec3< T > &t) const

void compute_euler_angles (GMathVec3< T > &r, const GMathRotationOrder &order=GMATH_ROTATION_ORDER_ZXY) const

void decompose (GMathVec3< T > &t, GMathVec3< T > &x, GMathVec3< T > &y, GMathVec3< T > &z, GMathVec3< T > &shear, GMathVec3< T > &scale) const

void decompose (GMathVec3< T > &t, GMathMatrix4x4< T > &r, GMathVec3< T > &shear, GMathVec3< T > &scale) const

void extract_rotation (GMathMatrix4x4< T > &r) const

void extract_frame (GMathVec3< T > &x, GMathVec3< T > &y, GMathVec3< T > &z) const

void extract_shearing (GMathVec3< T > &shear) const

void extract_scaling (GMathVec3< T > &scale) const

void make_orthonormal ()

T & operator() (const unsigned int &x, const unsigned int &y)

const T & get_item (const unsigned int &x, const unsigned int &y) const

void set_item (const unsigned int &x, const unsigned int &y, const T &value)

IX_DEPRECATED_UNTIL ("This function is deprecated: use get_item(...) (or get_data()) instead.", 6) inline const T *operator[](const unsigned int &index) const

IX_DEPRECATED_UNTIL ("This function is deprecated: use operator(...) (or get_data()) instead.", 6) inline T *operator[](const unsigned int &index)

GMathVec3< T > get_frame (unsigned char i) const

GMathVec3< T > get_x_axis () const

GMathVec3< T > get_y_axis () const

GMathVec3< T > get_z_axis () const

GMathVec3< T > get_origin () const

GMathVec3< T > get_axes_z () const

const T * get_data () const

T * get_data ()

void fast_interpolate (const GMathMatrix4x4< T > &a, const GMathMatrix4x4< T > &b, const T &weight)

bool linear_equals (const GMathMatrix4x4< T > &b, const T &epsilon=GMath< T >::epsilon()) const

bool equals (const GMathMatrix4x4< T > &mat, T epsilon=GMath< T >::epsilon()) const

bool is_finite () const

const CoreClassInfoget_class_info () const

template<>
GMATH_EXPORT const CoreClassInfoclass_info ()

template<>
GMATH_EXPORT const CoreClassInfoclass_info ()

template<>
GMATH_EXPORT const CoreClassInfoclass_info ()

template<>
GMATH_EXPORT const CoreClassInfoclass_info ()

Public Member Functions inherited from CoreBaseType
bool is_kindof (const CoreClassInfo &cinfo) const

## Static Public Member Functions

static const GMathMatrix4x4get_identity ()

static void multiply (GMathMatrix4x4 &r, const GMathMatrix4x4 &m, const GMathMatrix4x4 &n)

static void multiply_transpose_left (GMathMatrix4x4 &r, const GMathMatrix4x4 &m, const GMathMatrix4x4 &n)

static void multiply_transpose_right (GMathMatrix4x4 &r, const GMathMatrix4x4 &m, const GMathMatrix4x4 &n)

template<class U , class V >
static void multiply (GMathVec3< U > &r, const GMathVec3< V > &v, const GMathMatrix4x4 &m)

template<class U , class V >
static void multiply (GMathVec4< U > &r, const GMathVec4< V > &v, const GMathMatrix4x4 &m)

template<class U , class V >
static void multiply_direction (GMathVec3< U > &r, const GMathVec3< V > &v, const GMathMatrix4x4 &m)

template<class U , class V >
static void multiply_transpose (GMathVec3< U > &r, const GMathVec3< V > &v, const GMathMatrix4x4 &m)

template<class U , class V >
static void multiply_transpose (GMathVec4< U > &r, const GMathVec4< V > &v, const GMathMatrix4x4 &m)

template<class U , class V >
static void multiply_direction_transpose (GMathVec3< U > &r, const GMathVec3< V > &v, const GMathMatrix4x4 &m)

static T get_inverse (const GMathMatrix4x4 &m, GMathMatrix4x4 &result)

static void get_determinant (const GMathMatrix4x4 &m, T &determinant)

static void transpose (const GMathMatrix4x4 &m, GMathMatrix4x4 &r)

static void extract_translation (const GMathMatrix4x4 &m, GMathVec3< T > &t)

static void compute_euler_angles (const GMathMatrix4x4 &m, GMathVec3< T > &r, const GMathRotationOrder &order=GMATH_ROTATION_ORDER_ZXY)

static T get_determinant (const GMathMatrix4x4 &m)

static void fast_interpolate (GMathMatrix4x4< T > &r, const GMathMatrix4x4< T > &a, const GMathMatrix4x4< T > &b, const T &weight)

static const CoreClassInfoclass_info ()

Static Public Member Functions inherited from CoreBaseType
static const CoreClassInfoclass_info ()
Get the type descriptor of this instance.

## Friends

CoreLogStreamoperator<< (CoreLogStream &os, const GMathMatrix4x4 &m)

## Detailed Description

### template<class T, bool ROW_MAJOR_ORDER = GMATH_MATRIX4x4_DEFAULT_ROW_MAJOR_ORDER> class GMathMatrix4x4< T, ROW_MAJOR_ORDER >

The GMathMatrix4x4 class Implements a row-major 4 by 4 Matrix. | [0,0] [0,1] [0,2] [0,3] | [1,0] [1,1] [1,2] [1,3] | [2,0] [2,1] [2,2] [2,3] | [3,0] [3,1] [3,2] [3,3].

## Member Function Documentation

template<class T, bool ROW_MAJOR_ORDER = GMATH_MATRIX4x4_DEFAULT_ROW_MAJOR_ORDER>
template<class U , class V >
 static void GMathMatrix4x4< T, ROW_MAJOR_ORDER >::multiply ( GMathVec4< U > & r, const GMathVec4< V > & v, const GMathMatrix4x4< T, ROW_MAJOR_ORDER > & m )
inlinestatic

v(A, B, C, D) * m|a b c d| -> r = ((A*a + B*e + C*i + D*m),...,...,...) |e f g h| |i j k l| |m n o p|

template<class T, bool ROW_MAJOR_ORDER = GMATH_MATRIX4x4_DEFAULT_ROW_MAJOR_ORDER>
template<class U , class V >
 static void GMathMatrix4x4< T, ROW_MAJOR_ORDER >::multiply_transpose ( GMathVec4< U > & r, const GMathVec4< V > & v, const GMathMatrix4x4< T, ROW_MAJOR_ORDER > & m )
inlinestatic

m|a b c d| * v|A| -> r|a * A + b * B + c * C + d * D| |e f g h| |B| |...| |i j k l| |C| |...| |m n o p| |D| |...|