3D Forest
Software for analysis of Lidar data from forest environment.
Matrix4< T > Class Template Reference

#include <Matrix4.hpp>

Public Member Functions

 Matrix4 ()
 
 Matrix4 (const Matrix4< T > &m)=default
 
template<class B >
 Matrix4 (const Matrix4< B > &m)
 
template<class B >
 Matrix4 (const B *data)
 
 Matrix4 (T m00, T m01, T m02, T m03, T m10, T m11, T m12, T m13, T m20, T m21, T m22, T m23, T m30, T m31, T m32, T m33)
 
 ~Matrix4 ()
 
Matrix4< T > & operator= (const Matrix4< T > &m)=default
 
template<class B >
void set (const B *data)
 
const T & operator() (size_t r, size_t c) const
 
T & operator() (size_t r, size_t c)
 
const T * data () const
 
void setToIdentity ()
 
void invert ()
 
Matrix4< T > inverted () const
 
void translate (T x, T y, T z)
 
void perspective (T fovy, T aspect, T near, T far)
 
void ortho (T left, T right, T bottom, T top, T near, T far)
 
void lookAt (const Vector3< T > &eye, const Vector3< T > &center, const Vector3< T > &up)
 
Vector3< T > map (const Vector3< T > &v)
 
Vector3< T > mapVector (const Vector3< T > &v)
 
Vector3< T > project (const Vector3< T > &v)
 
Vector3< T > unproject (const Vector3< T > &v)
 
void multiply (T &x, T &y, T &z, T &w)
 

Protected Attributes

data_ [4][4]
 

Friends

Matrix4< T > operator* (const Matrix4< T > &a, const Matrix4< T > &b)
 

Constructor & Destructor Documentation

◆ Matrix4() [1/5]

template<class T >
Matrix4< T >::Matrix4
inline

◆ Matrix4() [2/5]

template<class T >
Matrix4< T >::Matrix4 ( const Matrix4< T > &  m)
default

◆ Matrix4() [3/5]

template<class T >
template<class B >
Matrix4< T >::Matrix4 ( const Matrix4< B > &  m)
inline

◆ Matrix4() [4/5]

template<class T >
template<class B >
Matrix4< T >::Matrix4 ( const B *  data)
inline

◆ Matrix4() [5/5]

template<class T >
Matrix4< T >::Matrix4 ( m00,
m01,
m02,
m03,
m10,
m11,
m12,
m13,
m20,
m21,
m22,
m23,
m30,
m31,
m32,
m33 
)
inline

◆ ~Matrix4()

template<class T >
Matrix4< T >::~Matrix4
inline

Member Function Documentation

◆ data()

template<class T >
const T * Matrix4< T >::data ( ) const
inline

◆ invert()

template<class T >
void Matrix4< T >::invert
inline

Referenced by Matrix4< T >::inverted().

◆ inverted()

template<class T >
Matrix4< T > Matrix4< T >::inverted
inline

◆ lookAt()

template<class T >
void Matrix4< T >::lookAt ( const Vector3< T > &  eye,
const Vector3< T > &  center,
const Vector3< T > &  up 
)

◆ map()

template<class T >
Vector3< T > Matrix4< T >::map ( const Vector3< T > &  v)

◆ mapVector()

template<class T >
Vector3< T > Matrix4< T >::mapVector ( const Vector3< T > &  v)

◆ multiply()

template<class T >
void Matrix4< T >::multiply ( T &  x,
T &  y,
T &  z,
T &  w 
)

◆ operator()() [1/2]

template<class T >
T & Matrix4< T >::operator() ( size_t  r,
size_t  c 
)
inline

◆ operator()() [2/2]

template<class T >
const T & Matrix4< T >::operator() ( size_t  r,
size_t  c 
) const
inline

◆ operator=()

template<class T >
Matrix4< T > & Matrix4< T >::operator= ( const Matrix4< T > &  m)
default

◆ ortho()

template<class T >
void Matrix4< T >::ortho ( left,
right,
bottom,
top,
near,
far 
)
inline

◆ perspective()

template<class T >
void Matrix4< T >::perspective ( fovy,
aspect,
near,
far 
)
inline

◆ project()

template<class T >
Vector3< T > Matrix4< T >::project ( const Vector3< T > &  v)

◆ set()

template<class T >
template<class B >
void Matrix4< T >::set ( const B *  data)
inline

◆ setToIdentity()

template<class T >
void Matrix4< T >::setToIdentity
inline

◆ translate()

template<class T >
void Matrix4< T >::translate ( x,
y,
z 
)
inline

◆ unproject()

template<class T >
Vector3< T > Matrix4< T >::unproject ( const Vector3< T > &  v)

Friends And Related Function Documentation

◆ operator*

template<class T >
Matrix4< T > operator* ( const Matrix4< T > &  a,
const Matrix4< T > &  b 
)
friend

Member Data Documentation

◆ data_

template<class T >
T Matrix4< T >::data_[4][4]
protected

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