ML Reference
mlMatrix3.h File Reference
#include "mlLinearAlgebraSystem.h"
#include "mlLinearAlgebraDefs.h"
#include "mlLinearAlgebraTools.h"
#include "mlFloatingPointMatrix.h"
#include "mlMatrix2.h"
#include "mlVector3.h"
#include <cstdlib>

Go to the source code of this file.

Classes

class  ml::Tmat3< DT >
 A three by three matrix class of three row vectors. More...
 

Namespaces

namespace  ml
 Main documentation file for ML users and developers.
 
namespace  std
 STL namespace.
 

Typedefs

Specializations for float, double and long double.
typedef Tmat3< MLfloatml::Matrix3f
 A 3x3 matrix of type float.
 
typedef Tmat3< MLdoubleml::Matrix3d
 A 3x3 matrix of type double.
 
typedef Tmat3< MLldoubleml::Matrix3ld
 A 3x3 matrix of type long double.
 
typedef Tmat3< MLdoubleml::Matrix3
 The standard 3x3 matrix of type double.
 

Functions

template<class DT >
std::ostream & std::operator<< (std::ostream &os, const ml::Tmat3< DT > &m)
 Output to std::ostream.
 
template<class DT >
std::istream & std::operator>> (std::istream &is, ml::Tmat3< DT > &m)
 Input from stream.
 
Global operators and functions of class Tmat3.
template<class DT >
Tmat3< DT > ml::operator- (const Tmat3< DT > &a)
 Returns a matrix a with all values negated.
 
template<class DT >
Tmat3< DT > ml::operator+ (const Tmat3< DT > &a, const Tmat3< DT > &b)
 Returns the component wise sum of matrix a and matrix b.
 
template<class DT >
Tmat3< DT > ml::operator- (const Tmat3< DT > &a, const Tmat3< DT > &b)
 Returns the component wise difference of matrix a and matrix b.
 
template<class DT >
Tmat3< DT > ml::operator* (const Tmat3< DT > &a, const DT d)
 Returns the component wise multiplication of matrix a with scalar d.
 
template<class DT >
Tmat3< DT > ml::operator* (const DT d, const Tmat3< DT > &a)
 Returns the component wise multiplication of scalar d with matrix a.
 
template<class DT >
Tmat3< DT > ml::operator/ (const Tmat3< DT > &a, const DT d)
 Returns the component wise division of matrix a by scalar d.
 

Special Functions

#define DET3(A, B, C, D, E, F, G, H, I)   ((A*E*I + B*F*G + C*D*H) - (A*F*H + B*D*I + C*E*G))
 Internal helper macro to calculate the determinant of 3x3 matrix with given entries, do not use.
 
#define _ML_MAT3_RC(i, j)   a[i][0]*b[0][j] + a[i][1]*b[1][j] + a[i][2]*b[2][j]
 Internal helper macro to multiply two matrices, do not use.
 
template<class DT >
Tmat3< DT > ml::operator* (const Tmat3< DT > &a, const Tmat3< DT > &b)
 Matrix 3 product.
 
template<class DT >
bool ml::operator== (const Tmat3< DT > &a, const Tmat3< DT > &b)
 a == b ? Return true if yes, otherwise false.
 
template<class DT >
bool ml::operator!= (const Tmat3< DT > &a, const Tmat3< DT > &b)
 a != b ? Return true if yes, otherwise false.
 
template<class DT >
Tmat3< DT > ml::identity2D ()
 Returns a 3x3 homogeneous identity2D matrix; synonym for Tmat3<DT>::getIdentity().
 
template<class DT >
Tmat3< DT > ml::translation2D (const Tvec2< DT > &v)
 Returns a 2D translation matrix as 3D homogeneous matrix where the translation is located in the right column.
 
template<class DT >
Tmat3< DT > ml::rotation2D (const Tvec2< DT > &Center, const DT angleDeg)
 Returns a 2D rotation matrix as 3D homogeneous matrix where center specifies the center of rotation.
 
template<class DT >
Tmat3< DT > ml::scaling2D (const Tvec2< DT > &scaleVector)
 Returns a 2D scale matrix as 3D homogeneous matrix.
 

Macro Definition Documentation

◆ _ML_MAT3_RC

#define _ML_MAT3_RC ( i,
j )   a[i][0]*b[0][j] + a[i][1]*b[1][j] + a[i][2]*b[2][j]

Internal helper macro to multiply two matrices, do not use.

Definition at line 457 of file mlMatrix3.h.

Referenced by ml::operator*().

◆ DET3

#define DET3 ( A,
B,
C,
D,
E,
F,
G,
H,
I )   ((A*E*I + B*F*G + C*D*H) - (A*F*H + B*D*I + C*E*G))

Internal helper macro to calculate the determinant of 3x3 matrix with given entries, do not use.

Definition at line 409 of file mlMatrix3.h.

Referenced by ml::Tmat3< DT >::det().