Stellarium  HEAD
Public Member Functions | Static Public Member Functions | Data Fields
Matrix4< T > Class Template Reference

A templatized column-major 4x4 matrix compatible with OpenGL. More...

#include <VecMath.hpp>

Public Member Functions

 Matrix4 (T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T)
 
 Matrix4 (const T *)
 
 Matrix4 (const Vector4< T > &, const Vector4< T > &, const Vector4< T > &, const Vector4< T > &)
 
Matrix4operator= (const T *)
 
void set (T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T)
 
T & operator[] (int)
 
operator[] (int) const
 
 operator T* ()
 
 operator const T * () const
 
Matrix4 operator- (const Matrix4< T > &) const
 
Matrix4 operator+ (const Matrix4< T > &) const
 
Matrix4 operator* (const Matrix4< T > &) const
 
Vector3< T > operator* (const Vector3< T > &) const
 
Vector3< T > multiplyWithoutTranslation (const Vector3< T > &a) const
 
Vector4< T > operator* (const Vector4< T > &) const
 
void transfo (Vector3< T > &) const
 
Matrix4< T > transpose () const
 
Matrix4< T > inverse () const
 
Matrix3< T > upper3x3 () const
 
Matrix3< T > upper3x3Transposed () const
 
Vector4< T > getRow (const int row) const
 
Vector4< T > getColumn (const int column) const
 
QMatrix4x4 toQMatrix () const
 
void print (void) const
 
QString toString (int fieldWidth=0, char format='g', int precision=-1) const
 

Static Public Member Functions

static Matrix4< T > identity ()
 
static Matrix4< T > translation (const Vector3< T > &)
 
static Matrix4< T > rotation (const Vector3< T > &, T)
 
static Matrix4< T > xrotation (T)
 
static Matrix4< T > yrotation (T)
 
static Matrix4< T > zrotation (T)
 
static Matrix4< T > scaling (const Vector3< T > &)
 
static Matrix4< T > scaling (T)
 

Data Fields

r [16]
 

Detailed Description

template<class T>
class Matrix4< T >

A templatized column-major 4x4 matrix compatible with OpenGL.

Use Mat4d or Mat4f typdef for matrices of doubles and floats respectively.