Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends

WMatrixFixed< ValueT, Rows, Cols, ValueStoreT > Class Template Reference

A fixed size matrix class. More...

#include <WMatrixFixed.h>

List of all members.

Public Types

typedef ValueT ValueType
 The integral type used in this matrix.
typedef ValueStoreT< ValueT,
Rows, Cols > 
ValueStoreType
 The storage container.
typedef WMatrixFixed< ValueT,
Rows, Cols, ValueStoreT > 
MatrixType
 The whole matrix as a type for lazy programmers.

Public Member Functions

size_t getRows () const
 The number of rows.
size_t getColumns () const
 The number of columns.
 WMatrixFixed ()
 Default constructor.
 WMatrixFixed (const ValueT &x, const ValueT &y, const ValueT &z)
 Constructor easing the initialization of vectors.
 WMatrixFixed (const ValueT &x, const ValueT &y, const ValueT &z, const ValueT &w)
 Constructor easing the initialization of vectors.
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
 WMatrixFixed (const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &m)
 Copy construction casting the given value type.
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void setRowVector (size_t index, const WMatrixFixed< RHSValueT, Rows, 1, RHSValueStoreT > &vec)
 Set a row to a specific vector.
WMatrixFixed< ValueT, Cols,
1, ValueStoreT > 
getRowVector (size_t index) const
 Get a vector containing a specific row.
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void setColumnVector (size_t index, const WMatrixFixed< RHSValueT, Rows, 1, RHSValueStoreT > &vec)
 Set a column to a specific vector.
WMatrixFixed< ValueT, Rows, 1 > getColumnVector (size_t index) const
 Get a vector containing a specific column.
 operator Eigen::Matrix< ValueT, Rows, Cols > () const
 Conversion to a Eigen3 Matrix of same size and type.
 operator osg::Vec2d () const
 Cast to OSG Vector.
 operator osg::Vec2f () const
 Cast to OSG Vector.
 operator osg::Vec3d () const
 Cast to OSG Vector.
 operator osg::Vec3f () const
 Cast to OSG Vector.
 operator osg::Vec4d () const
 Cast to OSG Vector.
 operator osg::Vec4f () const
 Cast to OSG Vector.
 operator osg::Matrixd () const
 Convert this matrix to a OSG Matrix of size 4x4.
template<typename TargetType >
TargetType as () const
 A convenience function to cast the WMatrixFixed types to arbitrary other vector/matrix types that are supported by WMatrixFixed.
template<typename ResultValueType , ValueStoreTemplate ResultValueStore>
 operator WMatrixFixed< ResultValueType, Rows, Cols, ResultValueStore > () const
 Cast to matrix of same size with different value type.
 WMatrixFixed (const Eigen::Matrix< ValueT, Rows, Cols > &m)
 Creates a WMatrix from a given Eigen3 Matrix.
 WMatrixFixed (const osg::Matrixd &m)
 Creates a WMatrix from a given OSG 4x4 Matrix.
 WMatrixFixed (const osg::Vec3f &m)
 Creates a WMatrix from a given OSG Vector.
 WMatrixFixed (const osg::Vec3d &m)
 Creates a WMatrix from a given OSG Vector.
 WMatrixFixed (const osg::Vec4f &m)
 Creates a WMatrix from a given OSG Vector.
 WMatrixFixed (const osg::Vec4d &m)
 Creates a WMatrix from a given OSG Vector.
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
MatrixTypeoperator= (const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &rhs)
 Assigns the given argument matrix to this one.
template<typename RHSValueT , size_t RHSCols, ValueStoreTemplate RHSValueStoreT>
WMatrixFixed< typename
WTypeTraits::TypePromotion
< ValueT, RHSValueT >::Result,
Rows, RHSCols, ValueStoreT > 
operator* (const WMatrixFixed< RHSValueT, Cols, RHSCols, RHSValueStoreT > &rhs) const
 Matrix-Matrix multiplication.
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void operator*= (const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &rhs)
 Matrix-Matrix multiplication with self-assignment.
template<typename RHSValueT >
WMatrixFixed< typename
WTypeTraits::TypePromotion
< ValueT, RHSValueT >::Result,
Rows, Cols, ValueStoreT > 
operator* (const RHSValueT &rhs) const
 Matrix-Scalar multiplication.
template<typename RHSValueT >
void operator*= (const RHSValueT &rhs)
 Matrix-Scalar multiplication with self-assignment.
template<typename RHSValueT >
WMatrixFixed< typename
WTypeTraits::TypePromotion
< ValueT, RHSValueT >::Result,
Rows, Cols, ValueStoreT > 
operator/ (const RHSValueT &rhs) const
 Matrix-Scalar division.
template<typename RHSValueT >
void operator/= (const RHSValueT &rhs)
 Matrix-Scalar division with self-assignmnet.
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
WMatrixFixed< typename
WTypeTraits::TypePromotion
< ValueT, RHSValueT >::Result,
Rows, Cols, ValueStoreT > 
operator+ (const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &rhs) const
 Matrix addition.
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void operator+= (const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &rhs)
 Matrix addition with self-assignment.
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
WMatrixFixed< typename
WTypeTraits::TypePromotion
< ValueT, RHSValueT >::Result,
Rows, Cols, ValueStoreT > 
operator- (const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &rhs) const
 Matrix subtraction.
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void operator-= (const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &rhs) throw ()
 Matrix subtraction with self-assignment.
ValueT & operator() (size_t row, size_t col) throw ()
 Returns a reference to the component of an row and column in order to provide access to the component.
const ValueT & operator() (size_t row, size_t col) const throw ()
 Returns a reference to the component of an row and column in order to provide access to the component.
ValueT & operator[] (size_t row) throw ()
 Returns a reference to the component of the first column to provide access to the component.
const ValueT & operator[] (size_t row) const throw ()
 Returns a reference to the component of the first column to provide access to the component.
ValueT & at (size_t row, size_t col) throw ( WOutOfBounds )
 Returns a reference to the component of an row and column in order to provide access to the component.
const ValueT & at (size_t row, size_t col) const throw ( WOutOfBounds )
 Returns a const reference to the component of an row and column in order to provide access to the component.
ValueT & x () throw ()
 Access x element of vector.
const ValueT & x () const throw ()
 Access x element of vector.
ValueT & y () throw ()
 Access y element of vector.
const ValueT & y () const throw ()
 Access y element of vector.
ValueT & z () throw ()
 Access z element of vector.
const ValueT & z () const throw ()
 Access z element of vector.
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
bool operator== (const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &rhs) const throw ()
 Compares two matrices and returns true if they are equal (component-wise).
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
bool operator< (const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &rhs) const throw ()
 Compares two matrices and returns true if this is smaller than the specified one (component-wise).
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
bool operator!= (const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &rhs) const throw ()
 Compares two matrices and returns true if they are not equal.

Static Public Member Functions

static MatrixType identity ()
 Returns an identity matrix.
static MatrixType zero ()
 Returns a zero-initialized matrix.
template<typename RHSValueT , size_t RHSRows, size_t RHSCols, ValueStoreTemplate RHSValueStoreT>
static MatrixType fromMatrix (const WMatrixFixed< RHSValueT, RHSRows, RHSCols, RHSValueStoreT > &src, size_t rowOffset=0, size_t colOffset=0)
 Copy construction allowing the creation of a WMatrixFixed by another matrix of different size.
template<typename RHSValueT , size_t RHSRows, size_t RHSCols, ValueStoreTemplate RHSValueStoreT>
static MatrixType fromMatrices (const MatrixType &m, const WMatrixFixed< RHSValueT, RHSRows, RHSCols, RHSValueStoreT > &src, size_t rowOffset=0, size_t colOffset=0)
 Copy construction allowing the creation of a WMatrixFixed by another matrix of different size.

Private Member Functions

template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void setValues (const RHSValueStoreT< RHSValueT, Rows, Cols > &values)
 Sets the new values.

Private Attributes

ValueStoreType m_values
 The value array.

Friends

class WMatrixFixedTest
 the test is a friend
class WMatrixFixed

Detailed Description

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
class WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >

A fixed size matrix class.

This is the default type in OpenWalnut. You can easily convert this matrix to and from the Eigen3 types and OSG Types.

Template Parameters:
ValueT The type of the values stored. Most of the operations, if multiple types are involved, use WTypeTraits to guess the better of both.
Rows Number of Rows
Cols Number of Columns
ValueStoreT The ValueStore handles the values and their access. Use special types here for a fine-grained access control or data-management

Definition at line 146 of file WMatrixFixed.h.


Member Typedef Documentation

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
typedef WMatrixFixed< ValueT, Rows, Cols, ValueStoreT > WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::MatrixType

The whole matrix as a type for lazy programmers.

Definition at line 174 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
typedef ValueStoreT< ValueT, Rows, Cols > WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::ValueStoreType

The storage container.

Definition at line 169 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
typedef ValueT WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::ValueType

The integral type used in this matrix.

Definition at line 164 of file WMatrixFixed.h.


Constructor & Destructor Documentation

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::WMatrixFixed (  )  [inline]

Default constructor.

The values are initialized with 0. Use the static methods zero(), identity() or any of the predefined transformations if an initialized matrix is wished.

Definition at line 204 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::WMatrixFixed ( const ValueT &  x,
const ValueT &  y,
const ValueT &  z 
) [inline]

Constructor easing the initialization of vectors.

This won't compile if Cols != 1 and Rows != 3.

Parameters:
x x coefficient
y y coefficient
z z coefficient

Definition at line 223 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::WMatrixFixed ( const ValueT &  x,
const ValueT &  y,
const ValueT &  z,
const ValueT &  w 
) [inline]

Constructor easing the initialization of vectors.

This won't compile if Cols != 1 and Rows != 4.

Parameters:
x x coefficient
y y coefficient
z z coefficient
w w coefficient

Definition at line 240 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::WMatrixFixed ( const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &  m  )  [inline]

Copy construction casting the given value type.

This is useful to create matrices with matrices using another value type.

Template Parameters:
RHSValueT Value type of the given matrix to copy
RHSValueStoreT Valuestore type of the given matrix to copy
Parameters:
m the matrix to copy

Definition at line 258 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::WMatrixFixed ( const Eigen::Matrix< ValueT, Rows, Cols > &  m  )  [inline]

Creates a WMatrix from a given Eigen3 Matrix.

Parameters:
m the Eigen3 matrix.

Definition at line 598 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::WMatrixFixed ( const osg::Matrixd &  m  )  [inline]

Creates a WMatrix from a given OSG 4x4 Matrix.

Will not compile if Rows != 4 or Cols != 4.

Parameters:
m the OSG matrix.

Definition at line 614 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::WMatrixFixed ( const osg::Vec3f &  m  )  [inline]

Creates a WMatrix from a given OSG Vector.

Will not compile if Rows != 3 or Cols != 1.

Parameters:
m the OSG vector.

Definition at line 633 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::WMatrixFixed ( const osg::Vec3d &  m  )  [inline]

Creates a WMatrix from a given OSG Vector.

Will not compile if Rows != 3 or Cols != 1.

Parameters:
m the OSG vector.

Definition at line 648 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::WMatrixFixed ( const osg::Vec4f &  m  )  [inline]

Creates a WMatrix from a given OSG Vector.

Will not compile if Rows != 4 or Cols != 1.

Parameters:
m the OSG vector.

Definition at line 663 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::WMatrixFixed ( const osg::Vec4d &  m  )  [inline]

Creates a WMatrix from a given OSG Vector.

Will not compile if Rows != 4 or Cols != 1.

Parameters:
m the OSG vector.

Definition at line 679 of file WMatrixFixed.h.


Member Function Documentation

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename TargetType >
TargetType WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::as (  )  const [inline]

A convenience function to cast the WMatrixFixed types to arbitrary other vector/matrix types that are supported by WMatrixFixed.

This method is mainly needed for ambiguities during type resolution, if the target methods signature allows several different vec/matrix types. Example: you have void do( osg::Vec3f v ) and void do( osg::Vec3d v ). If you do WVector3d myV; do( myV ); This is ambiguous since WVector3d can be casted to either osg::Vec3d AND Vec3f implicitly.

Template Parameters:
TargetType the type needed (to cast to)
Returns:
the required type

Definition at line 572 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::at ( size_t  row,
size_t  col 
) throw ( WOutOfBounds ) [inline]

Returns a reference to the component of an row and column in order to provide access to the component.

It does check for validity of the indices. Use operator() for avoiding this check.

Parameters:
row the row, staring with 0
col the column, starting with 0
Returns:
A reference to the component of an row and column
Exceptions:
WOutOfBounds if the specified index is invalid

Definition at line 961 of file WMatrixFixed.h.

Referenced by WThreadedTrackingFunctionTest::buildTestData(), WTrackingUtilityTest::buildTestData(), WMatrixFixed< double, 4, 4 >::getColumnVector(), WMatrixFixed< double, 4, 4 >::getRowVector(), WMatrixFixed< double, 4, 4 >::setColumnVector(), WMatrixFixed< double, 4, 4 >::setRowVector(), WMatrixFixedTest::testAt(), WMatrixFixedTest::testGetColVector(), and WMatrixFixedTest::testTranspose().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
const ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::at ( size_t  row,
size_t  col 
) const throw ( WOutOfBounds ) [inline]

Returns a const reference to the component of an row and column in order to provide access to the component.

It does check for validity of the indices. Use operator() for avoiding this check.

Parameters:
row the row, staring with 0
col the column, starting with 0
Returns:
A const reference to the component of an row and column.
Exceptions:
WOutOfBounds if the specified index is invalid

Definition at line 984 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , size_t RHSRows, size_t RHSCols, ValueStoreTemplate RHSValueStoreT>
static MatrixType WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::fromMatrices ( const MatrixType m,
const WMatrixFixed< RHSValueT, RHSRows, RHSCols, RHSValueStoreT > &  src,
size_t  rowOffset = 0,
size_t  colOffset = 0 
) [inline, static]

Copy construction allowing the creation of a WMatrixFixed by another matrix of different size.

The specified source matrix gets copied into the area specified by its dimensions and the offset. On all other places, the specified reference matrix is used.

Template Parameters:
RHSValueT Value type of the given matrix
RHSRows Number of rows of the given matrix.
RHSCols Number of cols of the given matrix.
RHSValueStoreT Value store of the given matrix.
Parameters:
m the reference matrix to use where src is not defined or used (due to offset)
src the matrix to copy
rowOffset row offset, defaults to 0
colOffset col offset, defaults to 0
Returns:
The newly created matrix.

Definition at line 338 of file WMatrixFixed.h.

Referenced by WMatrixFixed< double, 4, 4 >::fromMatrix().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , size_t RHSRows, size_t RHSCols, ValueStoreTemplate RHSValueStoreT>
static MatrixType WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::fromMatrix ( const WMatrixFixed< RHSValueT, RHSRows, RHSCols, RHSValueStoreT > &  src,
size_t  rowOffset = 0,
size_t  colOffset = 0 
) [inline, static]

Copy construction allowing the creation of a WMatrixFixed by another matrix of different size.

Please see fromMatrices for more details, since this call is equivalent to fromMatrices( zero(), src, rowOffset, colOffset ).

See also:
fromMatrices
Template Parameters:
RHSValueT Value type of the given matrix
RHSRows Number of rows of the given matrix.
RHSCols Number of cols of the given matrix.
RHSValueStoreT Value store of the given matrix.
Parameters:
src the matrix to copy
rowOffset row offset, defaults to 0
colOffset col offset, defaults to 0
Returns:
The newly created matrix.

Definition at line 314 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
size_t WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::getColumns (  )  const [inline]

The number of columns.

Returns:
the number of columns.

Definition at line 191 of file WMatrixFixed.h.

Referenced by WMatrixFixedTest::testGetNbRowsAndCols().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, 1 > WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::getColumnVector ( size_t  index  )  const [inline]

Get a vector containing a specific column.

Parameters:
index the index of the column
Returns:
the column as a vector

Definition at line 435 of file WMatrixFixed.h.

Referenced by WMatrixFixedTest::testGetColVector().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
size_t WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::getRows (  )  const [inline]

The number of rows.

Returns:
the number of rows.

Definition at line 181 of file WMatrixFixed.h.

Referenced by WMatrix< T >::operator*(), and WMatrixFixedTest::testGetNbRowsAndCols().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Cols, 1, ValueStoreT > WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::getRowVector ( size_t  index  )  const [inline]

Get a vector containing a specific row.

Parameters:
index the index of the row
Returns:
the row as a vector

Definition at line 398 of file WMatrixFixed.h.

Referenced by WMatrixFixedTest::testGetRowVector().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
static MatrixType WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::identity (  )  [inline, static]

Returns an identity matrix.

Returns:
the identity matrix.

Definition at line 268 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator Eigen::Matrix< ValueT, Rows, Cols > (  )  const [inline]

Conversion to a Eigen3 Matrix of same size and type.

Returns:
eigen3 matrix

Definition at line 455 of file WMatrixFixed.h.

References WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator()().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator osg::Matrixd (  )  const [inline]

Convert this matrix to a OSG Matrix of size 4x4.

This compiles only for 4x4 WMatrix types.

Returns:
the OSG Matrix

Definition at line 545 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator osg::Vec2d (  )  const [inline]

Cast to OSG Vector.

This will only compile for matrices with only one col and 2 rows.

Returns:
OSG vector.

Definition at line 473 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator osg::Vec2f (  )  const [inline]

Cast to OSG Vector.

This will only compile for matrices with only one col and 3 or 4 rows.

Returns:
OSG vector.

Definition at line 485 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator osg::Vec3d (  )  const [inline]

Cast to OSG Vector.

This will only compile for matrices with only one col and 3 or 4 rows.

Returns:
OSG vector.

Definition at line 497 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator osg::Vec3f (  )  const [inline]

Cast to OSG Vector.

This will only compile for matrices with only one col and 3 or 4 rows.

Returns:
OSG vector.

Definition at line 509 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator osg::Vec4d (  )  const [inline]

Cast to OSG Vector.

This will only compile for matrices with only one col and 4 rows.

Returns:
OSG vector.

Definition at line 521 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator osg::Vec4f (  )  const [inline]

Cast to OSG Vector.

This will only compile for matrices with only one col and 4 rows.

Returns:
OSG vector.

Definition at line 533 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename ResultValueType , ValueStoreTemplate ResultValueStore>
WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator WMatrixFixed< ResultValueType, Rows, Cols, ResultValueStore > (  )  const [inline]

Cast to matrix of same size with different value type.

Template Parameters:
ResultValueType resulting value type
ResultValueStore resulting value store
Returns:
the converted matrix.

Definition at line 586 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
bool WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator!= ( const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &  rhs  )  const throw () [inline]

Compares two matrices and returns true if they are not equal.

Template Parameters:
RHSValueT the value type of the argument
Parameters:
rhs The right hand side of the comparison
Returns:
true if not equal.

Definition at line 1125 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator() ( size_t  row,
size_t  col 
) throw () [inline]

Returns a reference to the component of an row and column in order to provide access to the component.

It does not check for validity of the indices. Use at for this.

Parameters:
row the row, staring with 0
col the column, starting with 0
Returns:
A reference to the component of an row and column

Definition at line 903 of file WMatrixFixed.h.

Referenced by WMatrixFixed< double, 4, 4 >::at(), WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator Eigen::Matrix< ValueT, Rows, Cols >(), WMatrixFixed< double, 4, 4 >::operator osg::Matrixd(), WMatrixFixed< double, 4, 4 >::operator*(), WMatrixFixed< double, 4, 4 >::operator+(), WMatrixFixed< double, 4, 4 >::operator-(), WMatrixFixed< double, 4, 4 >::operator<(), WMatrixFixed< double, 4, 4 >::operator==(), and WMatrixFixed< double, 4, 4 >::WMatrixFixed().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
const ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator() ( size_t  row,
size_t  col 
) const throw () [inline]

Returns a reference to the component of an row and column in order to provide access to the component.

It does not check for validity of the indices. Use at for this.

Parameters:
row the row, staring with 0
col the column, starting with 0
Returns:
A const reference to the component of an row and column

Definition at line 917 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , size_t RHSCols, ValueStoreTemplate RHSValueStoreT>
WMatrixFixed< typename WTypeTraits::TypePromotion< ValueT, RHSValueT >::Result, Rows, RHSCols, ValueStoreT > WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator* ( const WMatrixFixed< RHSValueT, Cols, RHSCols, RHSValueStoreT > &  rhs  )  const [inline]

Matrix-Matrix multiplication.

The number of columns of this matrix and the rows of the other need to match.

Template Parameters:
RHSValueT the integral type of the given matrix
RHSCols the number of columns of the given matrix. The number if rows must match the number of columns in this matrix
Parameters:
rhs the matrix
Returns:
The product of the matrices

Definition at line 724 of file WMatrixFixed.h.

Referenced by WMatrixFixed< double, 4, 4 >::operator/().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT >
WMatrixFixed< typename WTypeTraits::TypePromotion< ValueT, RHSValueT >::Result, Rows, Cols, ValueStoreT > WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator* ( const RHSValueT &  rhs  )  const [inline]

Matrix-Scalar multiplication.

Template Parameters:
RHSValueT the integral type of the given scalar
Parameters:
rhs the scalar
Returns:
The product of this matrix with the given scalar value.

Definition at line 767 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator*= ( const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &  rhs  )  [inline]

Matrix-Matrix multiplication with self-assignment.

Template Parameters:
RHSValueT the integral type of the given matrix
Parameters:
rhs the matrix

Definition at line 752 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT >
void WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator*= ( const RHSValueT &  rhs  )  [inline]

Matrix-Scalar multiplication with self-assignment.

Template Parameters:
RHSValueT the integral type of the given scalar
Parameters:
rhs the scalar

Definition at line 787 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
WMatrixFixed< typename WTypeTraits::TypePromotion< ValueT, RHSValueT >::Result, Rows, Cols, ValueStoreT > WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator+ ( const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &  rhs  )  const [inline]

Matrix addition.

The number of columns and rows must be the same.

Template Parameters:
RHSValueT the integral type of the given matrix
Parameters:
rhs the matrix
Returns:
The sum of the current and the given matrix

Definition at line 830 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator+= ( const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &  rhs  )  [inline]

Matrix addition with self-assignment.

Template Parameters:
RHSValueT the integral type of the given matrix
Parameters:
rhs the matrix

Definition at line 850 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
WMatrixFixed< typename WTypeTraits::TypePromotion< ValueT, RHSValueT >::Result, Rows, Cols, ValueStoreT > WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator- ( const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &  rhs  )  const [inline]

Matrix subtraction.

The number of columns and rows must be the same.

Template Parameters:
RHSValueT the integral type of the given matrix
Parameters:
rhs the matrix
Returns:
The difference of the current and the given matrix.

Definition at line 865 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator-= ( const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &  rhs  )  throw () [inline]

Matrix subtraction with self-assignment.

Template Parameters:
RHSValueT the integral type of the given matrix
Parameters:
rhs the matrix

Definition at line 885 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT >
WMatrixFixed< typename WTypeTraits::TypePromotion< ValueT, RHSValueT >::Result, Rows, Cols, ValueStoreT > WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator/ ( const RHSValueT &  rhs  )  const [inline]

Matrix-Scalar division.

Template Parameters:
RHSValueT the integral type of the given scalar
Parameters:
rhs the scalar
Returns:
The matrix having all components divided by the scalar.

Definition at line 802 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT >
void WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator/= ( const RHSValueT &  rhs  )  [inline]

Matrix-Scalar division with self-assignmnet.

Template Parameters:
RHSValueT the integral type of the given scalar
Parameters:
rhs the scalar

Definition at line 815 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
bool WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator< ( const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &  rhs  )  const throw () [inline]

Compares two matrices and returns true if this is smaller than the specified one (component-wise).

Template Parameters:
RHSValueT the value type of the argument
Parameters:
rhs The right hand side of the comparison
Returns:
true if this is less

Definition at line 1102 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
MatrixType& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator= ( const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &  rhs  )  [inline]

Assigns the given argument matrix to this one.

If the types match, a reference is returned.

Template Parameters:
RHSValueT the value type of the source matrix.
Parameters:
rhs The right hand side of the assignment
Returns:
This matrix.

Definition at line 703 of file WMatrixFixed.h.

Referenced by WMatrixFixed< double, 4, 4 >::operator*=(), WMatrixFixed< double, 4, 4 >::operator+=(), WMatrixFixed< double, 4, 4 >::operator-=(), and WMatrixFixed< double, 4, 4 >::operator/=().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
bool WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator== ( const WMatrixFixed< RHSValueT, Rows, Cols, RHSValueStoreT > &  rhs  )  const throw () [inline]

Compares two matrices and returns true if they are equal (component-wise).

Template Parameters:
RHSValueT the value type of the argument
Parameters:
rhs The right hand side of the comparison
Returns:
true if equal

Definition at line 1080 of file WMatrixFixed.h.

Referenced by WMatrixFixed< double, 4, 4 >::operator!=().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator[] ( size_t  row  )  throw () [inline]

Returns a reference to the component of the first column to provide access to the component.

It does not check for validity of the indices. Use this for single-column matrices (i.e. vectors). For matrices with cols!=0, this will not compile.

Parameters:
row the row, staring with 0
Returns:
A reference to the component of the first column

Definition at line 930 of file WMatrixFixed.h.

Referenced by WMatrixFixed< double, 4, 4 >::WMatrixFixed(), WMatrixFixed< double, 4, 4 >::x(), WMatrixFixed< double, 4, 4 >::y(), and WMatrixFixed< double, 4, 4 >::z().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
const ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::operator[] ( size_t  row  )  const throw () [inline]

Returns a reference to the component of the first column to provide access to the component.

It does not check for validity of the indices. Use this for single-column matrices (i.e. vectors). For matrices with cols!=0, this will not compile.

Parameters:
row the row, staring with 0
Returns:
A const reference to the component of the first column

Definition at line 944 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::setColumnVector ( size_t  index,
const WMatrixFixed< RHSValueT, Rows, 1, RHSValueStoreT > &  vec 
) [inline]

Set a column to a specific vector.

Template Parameters:
RHSValueT Value type of the given matrix
ValueStoreT Value store of the given matrix
Parameters:
index the index of the column you want to set
vec the values to set for the column

Definition at line 420 of file WMatrixFixed.h.

Referenced by WMatrixFixedTest::testSetColVector().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::setRowVector ( size_t  index,
const WMatrixFixed< RHSValueT, Rows, 1, RHSValueStoreT > &  vec 
) [inline]

Set a row to a specific vector.

Template Parameters:
RHSValueT Value type of the given matrix
ValueStoreT Value store of the given matrix
Parameters:
index the index of the row you want to set
vec the values to set for the row

Definition at line 383 of file WMatrixFixed.h.

Referenced by WMatrixFixedTest::testSetRowVector().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
template<typename RHSValueT , ValueStoreTemplate RHSValueStoreT>
void WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::setValues ( const RHSValueStoreT< RHSValueT, Rows, Cols > &  values  )  [inline, private]

Sets the new values.

Always use this method for replacing values in this matrix.

Parameters:
values 

Definition at line 1143 of file WMatrixFixed.h.

Referenced by WMatrixFixed< double, 4, 4 >::operator WMatrixFixed< ResultValueType, Rows, Cols, ResultValueStore >(), WMatrixFixed< double, 4, 4 >::operator=(), and WMatrixFixed< double, 4, 4 >::WMatrixFixed().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::x (  )  throw () [inline]

Access x element of vector.

Works only for matrices with Cols == 1.

Returns:
x element

Definition at line 1000 of file WMatrixFixed.h.

Referenced by WROISphere::updateGFX(), and WROIBox::updateGFX().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
const ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::x (  )  const throw () [inline]

Access x element of vector.

Works only for matrices with Cols == 1.

Returns:
x element

Definition at line 1012 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::y (  )  throw () [inline]

Access y element of vector.

Works only for matrices with Cols == 1.

Returns:
y element

Definition at line 1024 of file WMatrixFixed.h.

Referenced by WROISphere::updateGFX(), and WROIBox::updateGFX().

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
const ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::y (  )  const throw () [inline]

Access y element of vector.

Works only for matrices with Cols == 1.

Returns:
y element

Definition at line 1036 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
const ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::z (  )  const throw () [inline]

Access z element of vector.

Works only for matrices with Cols == 1.

Returns:
z element

Definition at line 1060 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
ValueT& WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::z (  )  throw () [inline]

Access z element of vector.

Works only for matrices with Cols == 1.

Returns:
z element

Definition at line 1048 of file WMatrixFixed.h.

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
static MatrixType WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::zero (  )  [inline, static]

Returns a zero-initialized matrix.

Returns:
the matrix.

Definition at line 283 of file WMatrixFixed.h.

Referenced by WMatrixFixed< double, 4, 4 >::fromMatrix(), and WMatrixFixed< double, 4, 4 >::identity().


Friends And Related Function Documentation

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
friend class WMatrixFixedTest [friend]

the test is a friend

Definition at line 149 of file WMatrixFixed.h.


Member Data Documentation

template<typename ValueT, size_t Rows, size_t Cols, ValueStoreTemplate ValueStoreT = ValueStore>
ValueStoreType WMatrixFixed< ValueT, Rows, Cols, ValueStoreT >::m_values [private]

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