Visualization Library 2.1.0

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
vl::Matrix4< T_Scalar > Class Template Reference

The Matrix4 class is a template class that implements a generic 4x4 matrix, see also vl::dmat4, vl::fmat4, vl::umat4, vl::imat4. More...

#include <Matrix4.hpp>

Public Types

typedef T_Scalar scalar_type
 

Public Member Functions

template<typename T >
 Matrix4 (const Matrix4< T > &m)
 
 Matrix4 (const Matrix4 &other)
 
 Matrix4 ()
 
 Matrix4 (T_Scalar n)
 
 Matrix4 (T_Scalar *val)
 
 Matrix4 (T_Scalar e00, T_Scalar e01, T_Scalar e02, T_Scalar e03, T_Scalar e10, T_Scalar e11, T_Scalar e12, T_Scalar e13, T_Scalar e20, T_Scalar e21, T_Scalar e22, T_Scalar e23, T_Scalar e30, T_Scalar e31, T_Scalar e32, T_Scalar e33)
 
Matrix4fill (T_Scalar val)
 
Matrix4fillPtr (T_Scalar *val)
 
T_Scalar diff (const Matrix4 &other) const
 
Vector3< T_Scalar > getX () const
 
Vector3< T_Scalar > getY () const
 
Vector3< T_Scalar > getZ () const
 
Vector3< T_Scalar > getT () const
 
Matrix4setX (const Vector3< T_Scalar > &v)
 
Matrix4setY (const Vector3< T_Scalar > &v)
 
Matrix4setZ (const Vector3< T_Scalar > &v)
 
Matrix4setT (const Vector3< T_Scalar > &v)
 
bool operator== (const Matrix4 &m) const
 
bool operator!= (const Matrix4 &m) const
 
Matrix4operator= (const Matrix4 &m)
 
Matrix4 operator+ (const Matrix4 &m) const
 
Matrix4operator+= (const Matrix4 &m)
 
Matrix4 operator- (const Matrix4 &m) const
 
Matrix4operator-= (const Matrix4 &m)
 
Matrix4operator*= (const Matrix4 &m)
 
Matrix4 operator- () const
 
Matrix4 operator+ (T_Scalar d) const
 
Matrix4operator+= (T_Scalar d)
 
Matrix4 operator- (T_Scalar d) const
 
Matrix4operator-= (T_Scalar d)
 
Matrix4 operator* (T_Scalar d) const
 
Matrix4operator*= (T_Scalar d)
 
Matrix4 operator/ (T_Scalar d) const
 
Matrix4operator/= (T_Scalar d)
 
bool isIdentity () const
 
Matrix4 as3x3 () const
 
Matrix3< T_Scalar > get3x3 () const
 
void set3x3 (const Matrix3< T_Scalar > &m)
 This writes only on the upper 3x3 part of the matrix without touching the last row and column. More...
 
T_Scalar * ptr ()
 
const T_Scalar * ptr () const
 
Matrix4transpose ()
 
Matrix4 getTransposed () const
 
Matrix4getTransposed (Matrix4 &dest) const
 
bool isNull () const
 
Matrix4setNull ()
 
Matrix4setIdentity ()
 
T_Scalar getInverse (Matrix4 &dest) const
 
Matrix4 getInverse (T_Scalar *determinant=NULL) const
 
Matrix4invert (T_Scalar *determinant=NULL)
 
void getAsLookAtModeling (Vector3< T_Scalar > &eye, Vector3< T_Scalar > &at, Vector3< T_Scalar > &up, Vector3< T_Scalar > &right) const
 
void getAsLookAt (Vector3< T_Scalar > &eye, Vector3< T_Scalar > &at, Vector3< T_Scalar > &up, Vector3< T_Scalar > &right) const
 
void getYXRotationAngles (T_Scalar &degrees_y, T_Scalar &degrees_x) const
 If this matrix can be represented as RY(degrees_y) * RX(degrees_x), where RX and RY are getRotation matrices around the X and Y axis respectively, this function returns the getRotation angles degrees_y and degrees_x. More...
 
Matrix4rotate (T_Scalar degrees, const Vector3< T_Scalar > &v)
 
Matrix4rotate (T_Scalar degrees, T_Scalar x, T_Scalar y, T_Scalar z)
 
Matrix4rotate (T_Scalar degrees1, const Vector3< T_Scalar > &v1, T_Scalar degrees2, const Vector3< T_Scalar > &v2)
 
Matrix4rotate (T_Scalar degrees1, const Vector3< T_Scalar > &v1, T_Scalar degrees2, const Vector3< T_Scalar > &v2, T_Scalar degrees3, const Vector3< T_Scalar > &v3)
 
Matrix4rotateXYZ (T_Scalar degX, T_Scalar degY, T_Scalar degZ)
 
Matrix4rotateZYX (T_Scalar degZ, T_Scalar degY, T_Scalar degX)
 
Matrix4rotate (const Vector4< T_Scalar > &from, const Vector4< T_Scalar > &to)
 
Matrix4rotate (const Vector3< T_Scalar > &from, const Vector3< T_Scalar > &to)
 
Matrix4translate (T_Scalar x, T_Scalar y, T_Scalar z)
 
Matrix4translate (const Vector3< T_Scalar > &v)
 
Matrix4scale (T_Scalar x, T_Scalar y, T_Scalar z)
 
Matrix4scale (const Vector3< T_Scalar > v)
 
Matrix4postMultiply (const Matrix4 &m)
 
Matrix4preMultiply (const Matrix4 &m)
 
const T_Scalar & e (int i, int j) const
 
T_Scalar & e (int i, int j)
 

Static Public Member Functions

static Matrix4getNull (Matrix4 &out)
 
static Matrix4 getNull ()
 
static Matrix4 getIdentity ()
 
static Matrix4getIdentity (Matrix4 &out)
 
static Matrix4 getPerspective (T_Scalar fovy, T_Scalar aspect_ratio, T_Scalar znear, T_Scalar zfar)
 
static Matrix4 getFrustum (T_Scalar pleft, T_Scalar pright, T_Scalar pbottom, T_Scalar ptop, T_Scalar pnear, T_Scalar pfar)
 
static Matrix4 getOrtho (T_Scalar pleft, T_Scalar pright, T_Scalar pbottom, T_Scalar ptop, T_Scalar pnear, T_Scalar pfar)
 
static Matrix4 getOrtho2D (T_Scalar pleft, T_Scalar pright, T_Scalar pbottom, T_Scalar ptop)
 
static Matrix4 getLookAtModeling (const Vector3< T_Scalar > &eye, const Vector3< T_Scalar > &at, const Vector3< T_Scalar > &up)
 
static Matrix4 getLookAt (const Vector3< T_Scalar > &eye, const Vector3< T_Scalar > &at, const Vector3< T_Scalar > &up)
 
static Matrix4getRotation (Matrix4 &out, T_Scalar degrees, T_Scalar x, T_Scalar y, T_Scalar z)
 
static Matrix4 getRotation (T_Scalar degrees, T_Scalar x, T_Scalar y, T_Scalar z)
 
static Matrix4 getRotation (T_Scalar degrees, const Vector3< T_Scalar > &v)
 
static Matrix4 getRotation (T_Scalar degrees1, const Vector3< T_Scalar > &v1, T_Scalar degrees2, const Vector3< T_Scalar > &v2)
 
static Matrix4 getRotation (T_Scalar degrees1, const Vector3< T_Scalar > &v1, T_Scalar degrees2, const Vector3< T_Scalar > &v2, T_Scalar degrees3, const Vector3< T_Scalar > &v3)
 
static Matrix4 getRotationXYZ (T_Scalar degX, T_Scalar degY, T_Scalar degZ)
 
static Matrix4 getRotationZYX (T_Scalar degZ, T_Scalar degY, T_Scalar degX)
 
static Matrix4getRotation (Matrix4 &out, const Vector3< T_Scalar > &from, const Vector3< T_Scalar > &to)
 
static Matrix4 getRotation (const Vector3< T_Scalar > &from, const Vector3< T_Scalar > &to)
 
static Matrix4getTranslation (Matrix4 &out, const Vector3< T_Scalar > &v)
 
static Matrix4 getTranslation (const Vector3< T_Scalar > &v)
 
static Matrix4 getTranslation (T_Scalar x, T_Scalar y, T_Scalar z)
 
static Matrix4getTranslation (Matrix4 &out, T_Scalar x, T_Scalar y, T_Scalar z)
 
static Matrix4getScaling (Matrix4 &out, const Vector3< T_Scalar > &v)
 
static Matrix4 getScaling (const Vector3< T_Scalar > &v)
 
static Matrix4 getScaling (T_Scalar x, T_Scalar y, T_Scalar z)
 
static Matrix4getScaling (Matrix4 &out, T_Scalar x, T_Scalar y, T_Scalar z)
 
static Matrix4multiply (Matrix4 &out, const Matrix4 &p, const Matrix4 &q)
 

Protected Attributes

Vector4< T_Scalar > mVec [4]
 

Detailed Description

template<typename T_Scalar>
class vl::Matrix4< T_Scalar >

The Matrix4 class is a template class that implements a generic 4x4 matrix, see also vl::dmat4, vl::fmat4, vl::umat4, vl::imat4.

See also
Vector4, Vector3, Vector2, Matrix3, Matrix2

Definition at line 48 of file Matrix4.hpp.

Member Typedef Documentation

◆ scalar_type

template<typename T_Scalar>
typedef T_Scalar vl::Matrix4< T_Scalar >::scalar_type

Definition at line 51 of file Matrix4.hpp.

Constructor & Destructor Documentation

◆ Matrix4() [1/6]

template<typename T_Scalar>
template<typename T >
vl::Matrix4< T_Scalar >::Matrix4 ( const Matrix4< T > &  m)
inlineexplicit

Definition at line 54 of file Matrix4.hpp.

◆ Matrix4() [2/6]

template<typename T_Scalar>
vl::Matrix4< T_Scalar >::Matrix4 ( const Matrix4< T_Scalar > &  other)
inline

Definition at line 62 of file Matrix4.hpp.

◆ Matrix4() [3/6]

template<typename T_Scalar>
vl::Matrix4< T_Scalar >::Matrix4 ( )
inline

Definition at line 67 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::getIdentity(), and vl::Matrix4< float >::getNull().

◆ Matrix4() [4/6]

template<typename T_Scalar>
vl::Matrix4< T_Scalar >::Matrix4 ( T_Scalar  n)
inlineexplicit

Definition at line 72 of file Matrix4.hpp.

◆ Matrix4() [5/6]

template<typename T_Scalar>
vl::Matrix4< T_Scalar >::Matrix4 ( T_Scalar *  val)
inlineexplicit

Definition at line 78 of file Matrix4.hpp.

◆ Matrix4() [6/6]

template<typename T_Scalar>
vl::Matrix4< T_Scalar >::Matrix4 ( T_Scalar  e00,
T_Scalar  e01,
T_Scalar  e02,
T_Scalar  e03,
T_Scalar  e10,
T_Scalar  e11,
T_Scalar  e12,
T_Scalar  e13,
T_Scalar  e20,
T_Scalar  e21,
T_Scalar  e22,
T_Scalar  e23,
T_Scalar  e30,
T_Scalar  e31,
T_Scalar  e32,
T_Scalar  e33 
)
inlineexplicit

Definition at line 83 of file Matrix4.hpp.

Member Function Documentation

◆ as3x3()

template<typename T_Scalar>
Matrix4 vl::Matrix4< T_Scalar >::as3x3 ( ) const
inline

◆ diff()

template<typename T_Scalar>
T_Scalar vl::Matrix4< T_Scalar >::diff ( const Matrix4< T_Scalar > &  other) const
inline

Definition at line 109 of file Matrix4.hpp.

◆ e() [1/2]

template<typename T_Scalar>
const T_Scalar& vl::Matrix4< T_Scalar >::e ( int  i,
int  j 
) const
inline

◆ e() [2/2]

template<typename T_Scalar>
T_Scalar& vl::Matrix4< T_Scalar >::e ( int  i,
int  j 
)
inline

Definition at line 666 of file Matrix4.hpp.

◆ fill()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::fill ( T_Scalar  val)
inline

◆ fillPtr()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::fillPtr ( T_Scalar *  val)
inline

Definition at line 103 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::Matrix4().

◆ get3x3()

template<typename T_Scalar>
Matrix3<T_Scalar> vl::Matrix4< T_Scalar >::get3x3 ( ) const
inline

◆ getAsLookAt()

template<typename T_Scalar>
void vl::Matrix4< T_Scalar >::getAsLookAt ( Vector3< T_Scalar > &  eye,
Vector3< T_Scalar > &  at,
Vector3< T_Scalar > &  up,
Vector3< T_Scalar > &  right 
) const

Definition at line 822 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::invert().

◆ getAsLookAtModeling()

template<typename T_Scalar>
void vl::Matrix4< T_Scalar >::getAsLookAtModeling ( Vector3< T_Scalar > &  eye,
Vector3< T_Scalar > &  at,
Vector3< T_Scalar > &  up,
Vector3< T_Scalar > &  right 
) const

◆ getFrustum()

template<typename T_Scalar>
Matrix4< T_Scalar > vl::Matrix4< T_Scalar >::getFrustum ( T_Scalar  pleft,
T_Scalar  pright,
T_Scalar  pbottom,
T_Scalar  ptop,
T_Scalar  pnear,
T_Scalar  pfar 
)
static

Definition at line 852 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::invert().

◆ getIdentity() [1/2]

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getIdentity ( )
inlinestatic

Definition at line 424 of file Matrix4.hpp.

◆ getIdentity() [2/2]

template<typename T_Scalar>
static Matrix4& vl::Matrix4< T_Scalar >::getIdentity ( Matrix4< T_Scalar > &  out)
inlinestatic

Definition at line 429 of file Matrix4.hpp.

◆ getInverse() [1/2]

template<typename T_Scalar >
T_Scalar vl::Matrix4< T_Scalar >::getInverse ( Matrix4< T_Scalar > &  dest) const

◆ getInverse() [2/2]

template<typename T_Scalar>
Matrix4 vl::Matrix4< T_Scalar >::getInverse ( T_Scalar *  determinant = NULL) const
inline

Definition at line 437 of file Matrix4.hpp.

◆ getLookAt()

template<typename T_Scalar>
Matrix4< T_Scalar > vl::Matrix4< T_Scalar >::getLookAt ( const Vector3< T_Scalar > &  eye,
const Vector3< T_Scalar > &  at,
const Vector3< T_Scalar > &  up 
)
static

Definition at line 788 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::invert().

◆ getLookAtModeling()

template<typename T_Scalar>
Matrix4< T_Scalar > vl::Matrix4< T_Scalar >::getLookAtModeling ( const Vector3< T_Scalar > &  eye,
const Vector3< T_Scalar > &  at,
const Vector3< T_Scalar > &  up 
)
static

Definition at line 769 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::invert().

◆ getNull() [1/2]

template<typename T_Scalar>
static Matrix4& vl::Matrix4< T_Scalar >::getNull ( Matrix4< T_Scalar > &  out)
inlinestatic

Definition at line 400 of file Matrix4.hpp.

◆ getNull() [2/2]

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getNull ( )
inlinestatic

Definition at line 406 of file Matrix4.hpp.

◆ getOrtho()

template<typename T_Scalar>
Matrix4< T_Scalar > vl::Matrix4< T_Scalar >::getOrtho ( T_Scalar  pleft,
T_Scalar  pright,
T_Scalar  pbottom,
T_Scalar  ptop,
T_Scalar  pnear,
T_Scalar  pfar 
)
static

Definition at line 875 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::getOrtho2D(), and vl::Matrix4< float >::invert().

◆ getOrtho2D()

template<typename T_Scalar>
Matrix4< T_Scalar > vl::Matrix4< T_Scalar >::getOrtho2D ( T_Scalar  pleft,
T_Scalar  pright,
T_Scalar  pbottom,
T_Scalar  ptop 
)
static

Definition at line 903 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::invert().

◆ getPerspective()

template<typename T_Scalar>
Matrix4< T_Scalar > vl::Matrix4< T_Scalar >::getPerspective ( T_Scalar  fovy,
T_Scalar  aspect_ratio,
T_Scalar  znear,
T_Scalar  zfar 
)
static

Definition at line 830 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::invert().

◆ getRotation() [1/7]

template<typename T_Scalar>
Matrix4< T_Scalar > & vl::Matrix4< T_Scalar >::getRotation ( Matrix4< T_Scalar > &  out,
T_Scalar  degrees,
T_Scalar  x,
T_Scalar  y,
T_Scalar  z 
)
static

◆ getRotation() [2/7]

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getRotation ( T_Scalar  degrees,
T_Scalar  x,
T_Scalar  y,
T_Scalar  z 
)
inlinestatic

Definition at line 474 of file Matrix4.hpp.

◆ getRotation() [3/7]

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getRotation ( T_Scalar  degrees,
const Vector3< T_Scalar > &  v 
)
inlinestatic

Definition at line 480 of file Matrix4.hpp.

◆ getRotation() [4/7]

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getRotation ( T_Scalar  degrees1,
const Vector3< T_Scalar > &  v1,
T_Scalar  degrees2,
const Vector3< T_Scalar > &  v2 
)
inlinestatic

Definition at line 485 of file Matrix4.hpp.

◆ getRotation() [5/7]

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getRotation ( T_Scalar  degrees1,
const Vector3< T_Scalar > &  v1,
T_Scalar  degrees2,
const Vector3< T_Scalar > &  v2,
T_Scalar  degrees3,
const Vector3< T_Scalar > &  v3 
)
inlinestatic

Definition at line 490 of file Matrix4.hpp.

◆ getRotation() [6/7]

template<typename T_Scalar>
Matrix4< T_Scalar > & vl::Matrix4< T_Scalar >::getRotation ( Matrix4< T_Scalar > &  out,
const Vector3< T_Scalar > &  from,
const Vector3< T_Scalar > &  to 
)
static

Definition at line 1181 of file Matrix4.hpp.

◆ getRotation() [7/7]

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getRotation ( const Vector3< T_Scalar > &  from,
const Vector3< T_Scalar > &  to 
)
inlinestatic

Definition at line 537 of file Matrix4.hpp.

◆ getRotationXYZ()

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getRotationXYZ ( T_Scalar  degX,
T_Scalar  degY,
T_Scalar  degZ 
)
inlinestatic

Definition at line 515 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::rotateXYZ().

◆ getRotationZYX()

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getRotationZYX ( T_Scalar  degZ,
T_Scalar  degY,
T_Scalar  degX 
)
inlinestatic

Definition at line 525 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::rotateZYX().

◆ getScaling() [1/4]

template<typename T_Scalar>
static Matrix4& vl::Matrix4< T_Scalar >::getScaling ( Matrix4< T_Scalar > &  out,
const Vector3< T_Scalar > &  v 
)
inlinestatic

Definition at line 589 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::getScaling(), and vl::Matrix4< float >::scale().

◆ getScaling() [2/4]

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getScaling ( const Vector3< T_Scalar > &  v)
inlinestatic

Definition at line 594 of file Matrix4.hpp.

◆ getScaling() [3/4]

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getScaling ( T_Scalar  x,
T_Scalar  y,
T_Scalar  z 
)
inlinestatic

Definition at line 600 of file Matrix4.hpp.

◆ getScaling() [4/4]

template<typename T_Scalar>
static Matrix4& vl::Matrix4< T_Scalar >::getScaling ( Matrix4< T_Scalar > &  out,
T_Scalar  x,
T_Scalar  y,
T_Scalar  z 
)
inlinestatic

Definition at line 606 of file Matrix4.hpp.

◆ getT()

template<typename T_Scalar>
Vector3<T_Scalar> vl::Matrix4< T_Scalar >::getT ( ) const
inline

◆ getTranslation() [1/4]

template<typename T_Scalar>
static Matrix4& vl::Matrix4< T_Scalar >::getTranslation ( Matrix4< T_Scalar > &  out,
const Vector3< T_Scalar > &  v 
)
inlinestatic

◆ getTranslation() [2/4]

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getTranslation ( const Vector3< T_Scalar > &  v)
inlinestatic

Definition at line 558 of file Matrix4.hpp.

◆ getTranslation() [3/4]

template<typename T_Scalar>
static Matrix4 vl::Matrix4< T_Scalar >::getTranslation ( T_Scalar  x,
T_Scalar  y,
T_Scalar  z 
)
inlinestatic

Definition at line 564 of file Matrix4.hpp.

◆ getTranslation() [4/4]

template<typename T_Scalar>
static Matrix4& vl::Matrix4< T_Scalar >::getTranslation ( Matrix4< T_Scalar > &  out,
T_Scalar  x,
T_Scalar  y,
T_Scalar  z 
)
inlinestatic

Definition at line 570 of file Matrix4.hpp.

◆ getTransposed() [1/2]

template<typename T_Scalar>
Matrix4 vl::Matrix4< T_Scalar >::getTransposed ( ) const
inline

Definition at line 368 of file Matrix4.hpp.

◆ getTransposed() [2/2]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::getTransposed ( Matrix4< T_Scalar > &  dest) const
inline

Definition at line 377 of file Matrix4.hpp.

◆ getX()

template<typename T_Scalar>
Vector3<T_Scalar> vl::Matrix4< T_Scalar >::getX ( ) const
inline

◆ getY()

template<typename T_Scalar>
Vector3<T_Scalar> vl::Matrix4< T_Scalar >::getY ( ) const
inline

◆ getYXRotationAngles()

template<typename T_Scalar>
void vl::Matrix4< T_Scalar >::getYXRotationAngles ( T_Scalar &  degrees_y,
T_Scalar &  degrees_x 
) const

If this matrix can be represented as RY(degrees_y) * RX(degrees_x), where RX and RY are getRotation matrices around the X and Y axis respectively, this function returns the getRotation angles degrees_y and degrees_x.

Note
This function can only retrieve angles that satisfy the following conditions:
  • -180 <= degrees_y <= 180
  • -180 <= degrees_x <= 180 and degrees_x != 90

Definition at line 1204 of file Matrix4.hpp.

Referenced by vl::GhostCameraManipulator::enableEvent(), and vl::Matrix4< float >::invert().

◆ getZ()

template<typename T_Scalar>
Vector3<T_Scalar> vl::Matrix4< T_Scalar >::getZ ( ) const
inline

◆ invert()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::invert ( T_Scalar *  determinant = NULL)
inline

◆ isIdentity()

template<typename T_Scalar>
bool vl::Matrix4< T_Scalar >::isIdentity ( ) const
inline

Definition at line 309 of file Matrix4.hpp.

Referenced by vlX::vlx_isScaling(), and vlX::vlx_isTranslation().

◆ isNull()

template<typename T_Scalar>
bool vl::Matrix4< T_Scalar >::isNull ( ) const
inline

Definition at line 385 of file Matrix4.hpp.

◆ multiply()

template<typename T_Scalar>
static Matrix4& vl::Matrix4< T_Scalar >::multiply ( Matrix4< T_Scalar > &  out,
const Matrix4< T_Scalar > &  p,
const Matrix4< T_Scalar > &  q 
)
inlinestatic

◆ operator!=()

template<typename T_Scalar>
bool vl::Matrix4< T_Scalar >::operator!= ( const Matrix4< T_Scalar > &  m) const
inline

Definition at line 178 of file Matrix4.hpp.

◆ operator*()

template<typename T_Scalar>
Matrix4 vl::Matrix4< T_Scalar >::operator* ( T_Scalar  d) const
inline

Definition at line 273 of file Matrix4.hpp.

◆ operator*=() [1/2]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::operator*= ( const Matrix4< T_Scalar > &  m)
inline

Definition at line 225 of file Matrix4.hpp.

◆ operator*=() [2/2]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::operator*= ( T_Scalar  d)
inline

Definition at line 282 of file Matrix4.hpp.

◆ operator+() [1/2]

template<typename T_Scalar>
Matrix4 vl::Matrix4< T_Scalar >::operator+ ( const Matrix4< T_Scalar > &  m) const
inline

Definition at line 189 of file Matrix4.hpp.

◆ operator+() [2/2]

template<typename T_Scalar>
Matrix4 vl::Matrix4< T_Scalar >::operator+ ( T_Scalar  d) const
inline

Definition at line 239 of file Matrix4.hpp.

◆ operator+=() [1/2]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::operator+= ( const Matrix4< T_Scalar > &  m)
inline

Definition at line 199 of file Matrix4.hpp.

◆ operator+=() [2/2]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::operator+= ( T_Scalar  d)
inline

Definition at line 248 of file Matrix4.hpp.

◆ operator-() [1/3]

template<typename T_Scalar>
Matrix4 vl::Matrix4< T_Scalar >::operator- ( const Matrix4< T_Scalar > &  m) const
inline

Definition at line 207 of file Matrix4.hpp.

◆ operator-() [2/3]

template<typename T_Scalar>
Matrix4 vl::Matrix4< T_Scalar >::operator- ( ) const
inline

Definition at line 230 of file Matrix4.hpp.

◆ operator-() [3/3]

template<typename T_Scalar>
Matrix4 vl::Matrix4< T_Scalar >::operator- ( T_Scalar  d) const
inline

Definition at line 256 of file Matrix4.hpp.

◆ operator-=() [1/2]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::operator-= ( const Matrix4< T_Scalar > &  m)
inline

Definition at line 217 of file Matrix4.hpp.

◆ operator-=() [2/2]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::operator-= ( T_Scalar  d)
inline

Definition at line 265 of file Matrix4.hpp.

◆ operator/()

template<typename T_Scalar>
Matrix4 vl::Matrix4< T_Scalar >::operator/ ( T_Scalar  d) const
inline

Definition at line 290 of file Matrix4.hpp.

◆ operator/=()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::operator/= ( T_Scalar  d)
inline

Definition at line 300 of file Matrix4.hpp.

◆ operator=()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::operator= ( const Matrix4< T_Scalar > &  m)
inline

Definition at line 183 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::Matrix4().

◆ operator==()

template<typename T_Scalar>
bool vl::Matrix4< T_Scalar >::operator== ( const Matrix4< T_Scalar > &  m) const
inline

Definition at line 173 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::operator!=().

◆ postMultiply()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::postMultiply ( const Matrix4< T_Scalar > &  m)
inline

Definition at line 652 of file Matrix4.hpp.

Referenced by vl::Matrix4< float >::operator*=().

◆ preMultiply()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::preMultiply ( const Matrix4< T_Scalar > &  m)
inline

◆ ptr() [1/2]

template<typename T_Scalar>
T_Scalar* vl::Matrix4< T_Scalar >::ptr ( )
inline

◆ ptr() [2/2]

template<typename T_Scalar>
const T_Scalar* vl::Matrix4< T_Scalar >::ptr ( ) const
inline

Definition at line 350 of file Matrix4.hpp.

◆ rotate() [1/6]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::rotate ( T_Scalar  degrees,
const Vector3< T_Scalar > &  v 
)
inline

Definition at line 495 of file Matrix4.hpp.

Referenced by vl::Text::rotate(), and vl::Matrix4< float >::rotate().

◆ rotate() [2/6]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::rotate ( T_Scalar  degrees,
T_Scalar  x,
T_Scalar  y,
T_Scalar  z 
)
inline

Definition at line 500 of file Matrix4.hpp.

◆ rotate() [3/6]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::rotate ( T_Scalar  degrees1,
const Vector3< T_Scalar > &  v1,
T_Scalar  degrees2,
const Vector3< T_Scalar > &  v2 
)
inline

Definition at line 505 of file Matrix4.hpp.

◆ rotate() [4/6]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::rotate ( T_Scalar  degrees1,
const Vector3< T_Scalar > &  v1,
T_Scalar  degrees2,
const Vector3< T_Scalar > &  v2,
T_Scalar  degrees3,
const Vector3< T_Scalar > &  v3 
)
inline

Definition at line 510 of file Matrix4.hpp.

◆ rotate() [5/6]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::rotate ( const Vector4< T_Scalar > &  from,
const Vector4< T_Scalar > &  to 
)
inline

Definition at line 543 of file Matrix4.hpp.

◆ rotate() [6/6]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::rotate ( const Vector3< T_Scalar > &  from,
const Vector3< T_Scalar > &  to 
)
inline

Definition at line 548 of file Matrix4.hpp.

◆ rotateXYZ()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::rotateXYZ ( T_Scalar  degX,
T_Scalar  degY,
T_Scalar  degZ 
)
inline

Definition at line 520 of file Matrix4.hpp.

◆ rotateZYX()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::rotateZYX ( T_Scalar  degZ,
T_Scalar  degY,
T_Scalar  degX 
)
inline

Definition at line 530 of file Matrix4.hpp.

◆ scale() [1/2]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::scale ( T_Scalar  x,
T_Scalar  y,
T_Scalar  z 
)
inline

Definition at line 615 of file Matrix4.hpp.

Referenced by vl::Terrain::init().

◆ scale() [2/2]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::scale ( const Vector3< T_Scalar >  v)
inline

Definition at line 620 of file Matrix4.hpp.

◆ set3x3()

template<typename T_Scalar>
void vl::Matrix4< T_Scalar >::set3x3 ( const Matrix3< T_Scalar > &  m)
inline

This writes only on the upper 3x3 part of the matrix without touching the last row and column.

Definition at line 338 of file Matrix4.hpp.

◆ setIdentity()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::setIdentity ( )
inline

◆ setNull()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::setNull ( )
inline

Definition at line 394 of file Matrix4.hpp.

Referenced by vl::CalibratedCamera::updateCalibration().

◆ setT()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::setT ( const Vector3< T_Scalar > &  v)
inline

◆ setX()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::setX ( const Vector3< T_Scalar > &  v)
inline

◆ setY()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::setY ( const Vector3< T_Scalar > &  v)
inline

◆ setZ()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::setZ ( const Vector3< T_Scalar > &  v)
inline

◆ translate() [1/2]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::translate ( T_Scalar  x,
T_Scalar  y,
T_Scalar  z 
)
inline

◆ translate() [2/2]

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::translate ( const Vector3< T_Scalar > &  v)
inline

Definition at line 584 of file Matrix4.hpp.

◆ transpose()

template<typename T_Scalar>
Matrix4& vl::Matrix4< T_Scalar >::transpose ( )
inline

Member Data Documentation

◆ mVec

template<typename T_Scalar>
Vector4<T_Scalar> vl::Matrix4< T_Scalar >::mVec[4]
protected

The documentation for this class was generated from the following file: