Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

SH::ShMatrix< Rows, Cols, Binding, T > Class Template Reference

A matrix of Rows by Cols elements. More...

#include <ShMatrix.hpp>

Collaboration diagram for SH::ShMatrix< Rows, Cols, Binding, T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ShMatrix ()
 Identity constructor.

 ShMatrix (const ShMatrix< Rows, Cols, Binding, T > &other)
 Copy constructor.

template<ShBindingType Binding2>  ShMatrix (const ShMatrix< Rows, Cols, Binding2, T > &other)
 Copy constructor.

ShMatrixoperator= (const ShMatrix< Rows, Cols, Binding, T > &other)
 Assignment.

template<ShBindingType Binding2> ShMatrixoperator= (const ShMatrix< Rows, Cols, Binding2, T > &other)
 Assignment.

ShAttrib< Cols, Binding, T > & operator[] (int i)
 Attribute row access.

const ShAttrib< Cols, Binding,
T > & 
operator[] (int i) const
 Attribute row access.

template<ShBindingType Binding2> ShMatrixoperator+= (const ShMatrix< Rows, Cols, Binding2, T > &other)
 Modifying componentwise addition.

template<ShBindingType Binding2> ShMatrixoperator-= (const ShMatrix< Rows, Cols, Binding2, T > &other)
 Modifying componentwise subtraction.

template<ShBindingType Binding2> ShMatrixoperator/= (const ShMatrix< Rows, Cols, Binding2, T > &other)
 Modifying componentwise division.

ShMatrix< Rows-1, Cols-1,
SH_TEMP, T > 
subMatrix (int, int) const
 Obtain a submatrix of this matrix.

void setTranslation (const ShGeneric< Rows-1, T > &trans)
void setScaling (const ShGeneric< Rows-1, T > &scale)
ShMatrixoperator *= (const ShGeneric< 1, T > &a)
 Modifying scalar multiplicatoin.

ShMatrixoperator/= (const ShGeneric< 1, T > &a)
 Modifying scalar division.

Swizzling
Retrieve some set of rows from this matrix.

These must be swizzled again to operate on them.

ShMatrixRows< Rows, Cols, T > operator() () const
 Identity swizzle.

ShMatrixRows< 1, Cols, T > operator() (int) const
ShMatrixRows< 2, Cols, T > operator() (int, int) const
ShMatrixRows< 3, Cols, T > operator() (int, int, int) const
ShMatrixRows< 4, Cols, T > operator() (int, int, int, int) const
Metadata
This data is useful for various things, including asset management.

void name (const std::string &name)
 Set this matrix's name.

std::string name () const
 Get this matrix's name.

void range (T low, T high)
 Set a range of values for this matrix.

void internal (bool setting)
 If this is true, this matrix should not be able to be set by e.g.


Detailed Description

template<int Rows, int Cols, ShBindingType Binding, typename T>
class SH::ShMatrix< Rows, Cols, Binding, T >

A matrix of Rows by Cols elements.

A matrix is a representation of a linear operator. In Sh, this class represents SMALL matrices that will fit in registers. For large amounts of data, use an ShArray.

See also:
ShArray

Definition at line 49 of file ShMatrix.hpp.


Constructor & Destructor Documentation

template<int Rows, int Cols, ShBindingType Binding, typename T>
SH::ShMatrix< Rows, Cols, Binding, T >::ShMatrix  ) 
 

Identity constructor.

Constructs an identity matrix. For non-square matrices, the largest square upper-left submatrix possible is made an identity matrix, with the rest left zero.

Definition at line 39 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
SH::ShMatrix< Rows, Cols, Binding, T >::ShMatrix const ShMatrix< Rows, Cols, Binding, T > &  other  ) 
 

Copy constructor.

Construct a matrix with the same contents as the given matrix.

Definition at line 46 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
template<ShBindingType Binding2>
SH::ShMatrix< Rows, Cols, Binding, T >::ShMatrix const ShMatrix< Rows, Cols, Binding2, T > &  other  ) 
 

Copy constructor.

Construct a matrix with the same contents as the given matrix.

Definition at line 54 of file ShMatrixImpl.hpp.


Member Function Documentation

template<int Rows, int Cols, ShBindingType Binding, typename T>
void SH::ShMatrix< Rows, Cols, Binding, T >::internal bool  setting  ) 
 

If this is true, this matrix should not be able to be set by e.g.

a user in a UI. For example the model-view matrix should probably have this set to true. This is false by default.

Definition at line 368 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
void SH::ShMatrix< Rows, Cols, Binding, T >::name const std::string &  name  ) 
 

Set this matrix's name.

If set to the empty string, defaults to the type and id of the variable.

Definition at line 345 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
ShMatrix< Rows, Cols, Binding, T > & SH::ShMatrix< Rows, Cols, Binding, T >::operator *= const ShGeneric< 1, T > &  a  ) 
 

Modifying scalar multiplicatoin.

Multiply the given scalar attribute with each component of this matrix.

Definition at line 129 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
template<ShBindingType Binding2>
ShMatrix< Rows, Cols, Binding, T > & SH::ShMatrix< Rows, Cols, Binding, T >::operator+= const ShMatrix< Rows, Cols, Binding2, T > &  other  ) 
 

Modifying componentwise addition.

Add each entry in the given matrix to each entry in this matrix matching its row and column index.

Definition at line 100 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
template<ShBindingType Binding2>
ShMatrix< Rows, Cols, Binding, T > & SH::ShMatrix< Rows, Cols, Binding, T >::operator-= const ShMatrix< Rows, Cols, Binding2, T > &  other  ) 
 

Modifying componentwise subtraction.

Subtract each entry in the given matrix from each entry in this matrix matching its row and column index.

Definition at line 110 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
ShMatrix< Rows, Cols, Binding, T > & SH::ShMatrix< Rows, Cols, Binding, T >::operator/= const ShGeneric< 1, T > &  a  ) 
 

Modifying scalar division.

Divide each component of this matrix by the given attribute.

Definition at line 138 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
template<ShBindingType Binding2>
ShMatrix< Rows, Cols, Binding, T > & SH::ShMatrix< Rows, Cols, Binding, T >::operator/= const ShMatrix< Rows, Cols, Binding2, T > &  other  ) 
 

Modifying componentwise division.

Divide each entry in this matrix by the entry in the given matrix matching its row and column index.

Definition at line 120 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
template<ShBindingType Binding2>
ShMatrix< Rows, Cols, Binding, T > & SH::ShMatrix< Rows, Cols, Binding, T >::operator= const ShMatrix< Rows, Cols, Binding2, T > &  other  ) 
 

Assignment.

Replace each entry in this matrix with the corresponding entry of the given matrix.

Definition at line 78 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
ShMatrix< Rows, Cols, Binding, T > & SH::ShMatrix< Rows, Cols, Binding, T >::operator= const ShMatrix< Rows, Cols, Binding, T > &  other  ) 
 

Assignment.

Replace each entry in this matrix with the corresponding entry of the given matrix.

Definition at line 68 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
const ShAttrib< Cols, Binding, T > & SH::ShMatrix< Rows, Cols, Binding, T >::operator[] int  i  )  const
 

Attribute row access.

Return a reference to the given row as an ShAttrib.

Definition at line 92 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
ShAttrib< Cols, Binding, T > & SH::ShMatrix< Rows, Cols, Binding, T >::operator[] int  i  ) 
 

Attribute row access.

Return a reference to the given row as an ShAttrib.

Definition at line 86 of file ShMatrixImpl.hpp.

template<int Rows, int Cols, ShBindingType Binding, typename T>
ShMatrix< Rows-1, Cols-1, SH_TEMP, T > SH::ShMatrix< Rows, Cols, Binding, T >::subMatrix int  ,
int 
const
 

Obtain a submatrix of this matrix.

Return a copy of this matrix not containing the given row and column.

Definition at line 195 of file ShMatrixImpl.hpp.


The documentation for this class was generated from the following files:
Generated on Mon Oct 18 14:17:56 2004 for Sh by doxygen 1.3.7