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 Toperator() (size_t r, size_t c) const
 
Toperator() (size_t r, size_t c)
 
const Tdata () const
 
void identity ()
 
void invert ()
 
Matrix4< Tinverted () 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< TmapVector (const Vector3< T > &v)
 
Vector3< Tproject (const Vector3< T > &v)
 
Vector3< Tunproject (const Vector3< T > &v)
 
void multiply (T &x, T &y, T &z, T &w)
 

Protected Attributes

T data_ [4][4]
 

Friends

Matrix4< Toperator* (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 ( 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 )
inline

◆ ~Matrix4()

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

Member Function Documentation

◆ data()

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

◆ identity()

template<class T >
void Matrix4< T >::identity ( )
inline

◆ invert()

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

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

◆ inverted()

template<class T >
Matrix4< T > Matrix4< T >::inverted ( ) const
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 ( T left,
T right,
T bottom,
T top,
T near,
T far )
inline

◆ perspective()

template<class T >
void Matrix4< T >::perspective ( T fovy,
T aspect,
T near,
T 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

◆ translate()

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

◆ unproject()

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

Friends And Related Symbol Documentation

◆ operator*

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

Member Data Documentation

◆ data_


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