vmml::matrix< M, N, float_t > Class Template Reference

List of all members.

Classes

struct  row_accessor

Public Types

typedef float_t float_type
typedef float_t value_type
typedef matrix< M, N, float_t > matrix_type
typedef float_t * iterator
typedef const float_t * const_iterator

Public Member Functions

iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
float_t & operator() (size_t rowIndex, size_t colIndex)
const float_t & operator() (size_t rowIndex, size_t colIndex) const
float_t & at (size_t rowIndex, size_t colIndex)
const float_t & at (size_t rowIndex, size_t colIndex) const
 matrix (const matrix_functor< matrix< M, N, float_t > > &functor)
void zero ()
void identity ()
bool operator== (const matrix &other) const
bool operator!= (const matrix &other) const
bool isEqualTo (const matrix &other, float_t tolerance)
template<size_t P>
void multiply (const matrix< M, P, float_t > &left, const matrix< P, N, float_t > &right)
matrix operator* (matrix &other)
template<size_t P>
matrix< M, P, float_t > operator* (matrix< N, P, float_t > &other)
void operator*= (const matrix< M, M, float_t > &right)
matrix operator+ (const matrix &other) const
matrix operator- (const matrix &other) const
void operator+= (const matrix &other)
void operator-= (const matrix &other)
template<size_t P, size_t Q>
void directSum (const matrix< P, Q, float_t > &other, matrix< M+P, N+Q, float_t > &result)
template<size_t P, size_t Q>
matrix< M+P, N+Q, float_t > directSum (const matrix< P, Q, float_t > &other)
matrix operator* (float_t scalar)
void operator*= (float_t scalar)
vector< M, float_t > operator* (const vector< N, float_t > &other) const
vector< M-1, float_t > operator* (const vector< N-1, float_t > &other) const
matrix< M, N, float_t > operator- () const
matrix< M, N, float_t > negate () const
void tensor (const vector< M, float_t > &u, const vector< N, float_t > &v)
void tensor (const vector< M-1, float_t > &u, const vector< N-1, float_t > &v)
template<size_t Mret, size_t Nret>
matrix< Mret, Nret, float_t > getSubMatrix (size_t rowOffset, size_t colOffset) const
template<size_t Mret, size_t Nret>
void getSubMatrix (matrix< Mret, Nret, float_t > &result, size_t rowOffset=0, size_t colOffset=0) const
template<size_t Mret, size_t Nret>
void setSubMatrix (const matrix< Mret, Nret, float_t > &subMatrix, size_t rowOffset=0, size_t colOffset=0)
void transposeTo (matrix< N, M, float_t > &transposedMatrix) const
matrix< N, M, float_t > getTransposed () const
void operator= (const float_t *data_array)
void operator= (const float_t old_fashioned_matrix[M][N])
void operator= (const std::vector< float_t > &data)
void operator= (float_t fill_value)
void fill (float_t fill_value)
bool set (const std::vector< std::string > &values)
bool set (const std::string &values, char delimiter)
void set (float_t v00, float_t v01, float_t v02, float_t v10, float_t v11, float_t v12, float_t v20, float_t v21, float_t v22)
void set (float_t v00, float_t v01, float_t v02, float_t v03, float_t v10, float_t v11, float_t v12, float_t v13, float_t v20, float_t v21, float_t v22, float_t v23, float_t v30, float_t v31, float_t v32, float_t v33)
void copyFrom1DimCArray (const float_t *c_array, bool row_by_row_layout=true)
template<typename different_float_t >
void copyFrom1DimCArray (const different_float_t *c_array, bool row_by_row_layout=true)
vector< M, float_t > getColumn (size_t columnNumber) const
void getColumn (size_t columnNumber, vector< M, float_t > &column) const
void setColumn (size_t columnNumber, const vector< M, float_t > &column)
void getColumn (size_t columnNumber, matrix< M, 1, float_t > &column) const
void setColumn (size_t columnNumber, const matrix< M, 1, float_t > &column)
vector< N, float_t > getRow (size_t rowNumber) const
void getRow (size_t rowNumber, vector< N, float_t > &row) const
void setRow (size_t rowNumber, const vector< N, float_t > &row)
void getRow (size_t rowNumber, matrix< 1, N, float_t > &row) const
void setRow (size_t rowNumber, const matrix< 1, N, float_t > &row)
size_t size () const
size_t getM () const
size_t getNumberOfRows () const
size_t getN () const
size_t getNumberOfColumns () const
float_t getDeterminant () const
void getAdjugate (matrix< M, M, float_t > &adjugate) const
void getCofactors (matrix< M, N, float_t > &cofactors) const
bool getInverse (matrix< M, M, float_t > &inverse, float_t tolerance=1e-9) const
float_t getMinor (matrix< M-1, N-1 > &other, size_t row_to_cut, size_t col_to_cut)
bool isPositiveDefinite (const float_t limit=-1e12) const
void rotate (const float_t angle, const vector< M-1, float_t > &axis)
void rotateX (const float_t angle)
void rotateY (const float_t angle)
void rotateZ (const float_t angle)
void preRotateX (const float_t angle)
void preRotateY (const float_t angle)
void preRotateZ (const float_t angle)
void scale (const float_t scale[3])
void scale (const float_t x, const float_t y, const float_t z)
void scale (const vector< 3, float_t > &scale_)
void scaleTranslation (const float_t scale_[3])
void scaleTranslation (const vector< 3, float_t > &scale_)
void setTranslation (const float_t x, const float_t y, const float_t z)
void setTranslation (const float_t trans[3])
void setTranslation (const vector< 3, float_t > &trans)
vector< 3, float_t > getTranslation () const
bool getString (std::string &result, const std::string &delimiter=" ") const
row_accessor operator[] (size_t rowIndex)
template<>
float getDeterminant () const
template<>
double getDeterminant () const
template<>
float getDeterminant () const
template<>
double getDeterminant () const
template<>
void getAdjugate (matrix< 2, 2, float > &adjugate) const
template<>
void getAdjugate (matrix< 2, 2, double > &adjugate) const
template<>
bool getInverse (matrix< 2, 2, float > &Minverse, float tolerance) const
template<>
bool getInverse (matrix< 2, 2, double > &Minverse, double tolerance) const
template<>
bool getInverse (matrix< 3, 3, float > &result, float tolerance) const
template<>
bool getInverse (matrix< 3, 3, double > &result, double tolerance) const
template<>
bool getInverse (matrix< 4, 4, float > &result, float tolerance) const
template<>
bool getInverse (matrix< 4, 4, double > &result, double tolerance) const

Static Public Member Functions

template<typename init_functor_t >
static const matrix getInitializedMatrix ()

Public Attributes

float_t array [M *N]

Static Public Attributes

static const matrix< M, N,
float_t > 
IDENTITY
static const matrix< M, N,
float_t > 
ZERO

Friends

std::ostream & operator<< (std::ostream &os, const matrix< M, N, float_t > &matrix)

template<size_t M, size_t N, typename float_t = double>
class vmml::matrix< M, N, float_t >


Member Function Documentation

template<size_t M, size_t N, typename float_t >
void vmml::matrix< M, N, float_t >::rotate ( const float_t  angle,
const vector< M-1, float_t > &  axis 
) [inline]

create rotation matrix from parameters.

Parameters:
angle - angle in radians
rotation axis - must be normalized!

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

Generated by  doxygen 1.6.2