Public Member Functions | Public Attributes

ml7::Matrix3x4 Class Reference

#include <Matrix3x4.h>

List of all members.

Public Member Functions

 Matrix3x4 (void)
 Matrix3x4 (const Matrix3x4 &m)
Matrix3x4operator= (const Matrix3x4 &m)
void swap (Matrix3x4 &m)
 ~Matrix3x4 (void)
 Matrix3x4 (const float _11, const float _12, const float _13, const float _14, const float _21, const float _22, const float _23, const float _24, const float _31, const float _32, const float _33, const float _34)
 Matrix3x4 (const Vector3 &x, const Vector3 &y, const Vector3 &z, const Vector3 &w)
 Matrix3x4 (const Vector3 &v, const float phi, const Vector3 &w)
 Matrix3x4 (const Vector3 &v, const Vector3 &w)
 Matrix3x4 (const Quaternion &q)
 Matrix3x4 (const Quaternion &q, const Vector3 &w)
const float det () const
const Matrix3x4 inverted () const
const float operator[] (unsigned index) const
float & operator[] (unsigned index)
const Vector3 get (unsigned i) const
const Matrix3x4set (unsigned i, const Vector3 &v)
const Matrix3x4set (const ml7::Vector3 &x, const ml7::Vector3 &y, const ml7::Vector3 &z, const ml7::Vector3 &w)
const Vector3 axis () const
const float angle () const
void axisangle (Vector3 *v, float *phi) const
const Quaternion rotation () const
const Vector3 translation () const
const Matrix3x4 operator- () const
const Matrix3x4 operator+ (const Matrix3x4 &m) const
const Matrix3x4 operator- (const Matrix3x4 &m) const
const Matrix3x4 operator* (const float s) const
const Vector3 operator* (const Vector3 &v) const
const Matrix3x4 operator* (const Matrix3x4 &m) const
const Vector3 trans (const Vector3 &v) const
const Vector3 transdir (const Vector3 &v) const
const Vector3 transinv (const Vector3 &v) const
const Vector3 transdirinv (const Vector3 &v) const
Matrix3x4operator+= (const Matrix3x4 &m)
Matrix3x4operator-= (const Matrix3x4 &m)
Matrix3x4operator*= (const float s)
Matrix3x4operator*= (const Matrix3x4 &m)
Matrix3x4clear ()
Matrix3x4identity ()
Matrix3x4invert ()
Matrix3x4invert (const Matrix3x4 &m)
Matrix3x4rotation (const Vector3 &v, const float phi)
Matrix3x4rotation (const Vector3 &v)
Matrix3x4rotation (const Quaternion &q)
Matrix3x4rotx (const float alpha)
Matrix3x4roty (const float beta)
Matrix3x4rotz (const float gamma)
Matrix3x4set (const Vector3 &v, const float phi, const Vector3 &w)
Matrix3x4set (const Vector3 &v, const Vector3 &w)
const bool operator== (const Matrix3x4 &m) const
const bool operator!= (const Matrix3x4 &m) const
 operator const float *const () const
 operator float *const ()

Public Attributes

union {
   struct {
      float   _11
      float   _12
      float   _13
      float   _14
      float   _21
      float   _22
      float   _23
      float   _24
      float   _31
      float   _32
      float   _33
      float   _34
   } 
   float   data [12]
   float   m [3][4]
}; 

Detailed Description

Represents a 3x4-matrix for transforming (rotating and translating) 3d-vectors. Used for 3d-physics and -graphics.


Constructor & Destructor Documentation

ml7::Matrix3x4::Matrix3x4 ( void   )  [inline]

Default constructor. Creates a new identity matrix representing a zero transformation (no rotation, no translation).

ml7::Matrix3x4::Matrix3x4 ( const Matrix3x4 m  )  [inline]

Copy constructor. Copies a given matrix m.

ml7::Matrix3x4::~Matrix3x4 ( void   )  [inline]

Destructor.

ml7::Matrix3x4::Matrix3x4 ( const float  _11,
const float  _12,
const float  _13,
const float  _14,
const float  _21,
const float  _22,
const float  _23,
const float  _24,
const float  _31,
const float  _32,
const float  _33,
const float  _34 
) [inline]

Explicit constructor with parameters for each element.

ml7::Matrix3x4::Matrix3x4 ( const Vector3 x,
const Vector3 y,
const Vector3 z,
const Vector3 w 
) [inline]

Explicit constructor with given four vectors making up the columns.

ml7::Matrix3x4::Matrix3x4 ( const Vector3 v,
const float  phi,
const Vector3 w 
) [inline]

Explicit constructor with a given rotation axis v and a clockwise-angle phi as well as a given translation vector w.

ml7::Matrix3x4::Matrix3x4 ( const Vector3 v,
const Vector3 w 
) [inline]

Explicit constructor with a given rotation axis v and a clockwise-angle given by the length of vector v as well as a given translation vector w.

ml7::Matrix3x4::Matrix3x4 ( const Quaternion q  )  [inline, explicit]

Explicit constructor with a given rotation quaternion q.

ml7::Matrix3x4::Matrix3x4 ( const Quaternion q,
const Vector3 w 
) [inline]

Explicit constructor with a given rotation quaternion q and a given translation vector w.


Member Function Documentation

const float ml7::Matrix3x4::angle (  )  const

Returns the angle of the clockwise rotation represented by the 3x3-part of this matrix.

Returns the angle of the clockwise rotation represented by this matrix.

const Vector3 ml7::Matrix3x4::axis (  )  const

Returns the axis of the clockwise rotation represented by the 3x3-part of this matrix.

Returns the axis of the clockwise rotation represented by this matrix.

void ml7::Matrix3x4::axisangle ( Vector3 v,
float *  phi 
) const

Determines the rotation axis v and the clockwise angle phi represented by the 3x3-part of this matrix.

Determines the rotation axis v and the clockwise angle phi.

Matrix3x4 & ml7::Matrix3x4::clear (  ) 

Forces this matrix to be an empty matrix representing no legal transformation (no legal rotation, no translation).

const float ml7::Matrix3x4::det (  )  const

Returns the determinant of this matrix.

const Vector3 ml7::Matrix3x4::get ( unsigned  i  )  const [inline]

Returns the i-th (0-indexed) column vector of this matrix.

Matrix3x4 & ml7::Matrix3x4::identity (  ) 

Forces this matrix to be an identity matrix representing a zero transformation (no rotation, no translation).

Matrix3x4 & ml7::Matrix3x4::invert ( const Matrix3x4 m  ) 

Replaces this matrix by a given matrix m inverted. Fortunately we have to deal with a matrix consisting of a rotation matrix and a vector for translation so we confidently may do a transposition and a vector transformation instead of an expensive inversion.

Matrix3x4 & ml7::Matrix3x4::invert (  ) 

Inverts this matrix. Fortunately we have to deal with a matrix consisting of a rotation matrix and a vector for translation so we confidently may do a transposition and a vector transformation instead of an expensive inversion.

const Matrix3x4 ml7::Matrix3x4::inverted (  )  const

Copies this matrix and inverts it. Fortunately we have to deal with a matrix consisting of a rotation matrix and a vector for translation so we confidently may do a transposition and a vector transformation instead of an expensive inversion.

ml7::Matrix3x4::operator const float *const (  )  const [inline]
ml7::Matrix3x4::operator float *const (  )  [inline]
const bool ml7::Matrix3x4::operator!= ( const Matrix3x4 m  )  const

Checks if a given matrix m and this have non-identical elements.

const Matrix3x4 ml7::Matrix3x4::operator* ( const float  s  )  const

Returns a copy of this matrix scaled by a given scalar s.

const Vector3 ml7::Matrix3x4::operator* ( const Vector3 v  )  const

Returns a copy of a given vector v tranformed by this matrix.

const Matrix3x4 ml7::Matrix3x4::operator* ( const Matrix3x4 m  )  const

Returns a copy of a given matrix m transformed by this.

Matrix3x4 & ml7::Matrix3x4::operator*= ( const float  s  ) 

Scales this matrix by a given scalar s.

Matrix3x4& ml7::Matrix3x4::operator*= ( const Matrix3x4 m  )  [inline]

Transforms this matrix by a given matrix m. It results in an operation identical to m * this.

const Matrix3x4 ml7::Matrix3x4::operator+ ( const Matrix3x4 m  )  const

Returns a given matrix m added to this.

Matrix3x4 & ml7::Matrix3x4::operator+= ( const Matrix3x4 m  ) 

Adds a given matrix m to this.

const Matrix3x4 ml7::Matrix3x4::operator- ( const Matrix3x4 m  )  const

Returns a given matrix m subtracted from this.

const Matrix3x4 ml7::Matrix3x4::operator- (  )  const [inline]

Returns a copy of this matrix with the elements having signs flipped.

Matrix3x4 & ml7::Matrix3x4::operator-= ( const Matrix3x4 m  ) 

Subtracts a given matrix m from this.

Matrix3x4& ml7::Matrix3x4::operator= ( const Matrix3x4 m  )  [inline]

Copy assignment operator. Copies the elements of a given matrix m.

const bool ml7::Matrix3x4::operator== ( const Matrix3x4 m  )  const

Checks if a given matrix m and this have identical elements.

const float ml7::Matrix3x4::operator[] ( unsigned  index  )  const [inline]

Indexed component access.

float& ml7::Matrix3x4::operator[] ( unsigned  index  )  [inline]

Indexed component access.

Matrix3x4 & ml7::Matrix3x4::rotation ( const Vector3 v  ) 

Forces this matrix to be a rotation matrix with rotation axis v and a clockwise-angle given by the length of vector v.

Matrix3x4 & ml7::Matrix3x4::rotation ( const Vector3 v,
const float  phi 
)

Forces this matrix to be a rotation matrix with rotation axis v and a clockwise-angle phi.

Matrix3x4 & ml7::Matrix3x4::rotation ( const Quaternion q  ) 

Forces this matrix to be a rotation matrix defined by given the rotation quaternion q.

const Quaternion ml7::Matrix3x4::rotation (  )  const

Returns the quaternion of the clockwise rotation represented by the 3x3-part of this matrix.

Matrix3x4 & ml7::Matrix3x4::rotx ( const float  alpha  ) 

Forces this matrix to be a rotation matrix with rotation axis X and a clockwise-angle alpha.

Matrix3x4 & ml7::Matrix3x4::roty ( const float  beta  ) 

Forces this matrix to be a rotation matrix with rotation axis Y and a clockwise-angle beta.

Matrix3x4 & ml7::Matrix3x4::rotz ( const float  gamma  ) 

Forces this matrix to be a rotation matrix with rotation axis Z and a clockwise-angle gamma.

Matrix3x4 & ml7::Matrix3x4::set ( const Vector3 v,
const Vector3 w 
)

Forces this matrix to be a transformation matrix with rotation axis v and a clockwise-angle given by the length of vector v as well as a translation vector w.

Matrix3x4 & ml7::Matrix3x4::set ( const Vector3 v,
const float  phi,
const Vector3 w 
)

Forces this matrix to be a transformation matrix with rotation axis v and a clockwise-angle phi as well as a translation vector w.

const Matrix3x4& ml7::Matrix3x4::set ( unsigned  i,
const Vector3 v 
) [inline]

Sets the i-th (0-indexed) column vector of this matrix.

const Matrix3x4& ml7::Matrix3x4::set ( const ml7::Vector3 x,
const ml7::Vector3 y,
const ml7::Vector3 z,
const ml7::Vector3 w 
) [inline]

Sets the column vectors of this matrix.

void ml7::Matrix3x4::swap ( Matrix3x4 m  )  [inline]

Swap operation. Swaps the elements of a given matrix m with this.

const Vector3 ml7::Matrix3x4::trans ( const Vector3 v  )  const

Returns a copy of a given vector v transformed by this matrix. Used to transform position vectors rather than direction vectors. This operation is identical to this * v.

const Vector3 ml7::Matrix3x4::transdir ( const Vector3 v  )  const

Returns a copy of a given vector v rotated by the rotation tensor of this matrix. Used to transform direction vectors rather than position vectors.

const Vector3 ml7::Matrix3x4::transdirinv ( const Vector3 v  )  const

Returns a copy of a given vector v rotated by the rotation tensor of this matrix inverted. Used to transform direction vectors rather than position vectors.

const Vector3 ml7::Matrix3x4::transinv ( const Vector3 v  )  const

Returns a copy of a given vector v transformed by this matrix inverted. Used to transform position vectors rather than direction vectors.

const Vector3 ml7::Matrix3x4::translation (  )  const [inline]

Returns the translation vector of this matrix.


Member Data Documentation

union { ... }

Element in the 1st row and 1st column.

Element in the 1st row and 2nd column.

Element in the 1st row and 3rd column.

Element in the 1st row and 4th column.

Element in the 2nd row and 1st column.

Element in the 2nd row and 2nd column.

Element in the 2nd row and 3rd column.

Element in the 2nd row and 4th column.

Element in the 3rd row and 1st column.

Element in the 3rd row and 2nd column.

Element in the 3rd row and 3rd column.

Element in the 3rd row and 4th column.

Array of the elements.

float ml7::Matrix3x4::m[3][4]

2d-array of the elements.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines