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

nvmath::Mat33f Class Reference

3x3 matrix class. More...

#include <Mat33f.h>

Inheritance diagram for nvmath::Mat33f:

Inheritance graph
[legend]
Collaboration diagram for nvmath::Mat33f:

Collaboration graph
[legend]
List of all members.

Public Member Functions

NVSG_API Mat33f (void)
 Default constructor.
NVSG_API Mat33f (float a00, float a01, float a02, float a10, float a11, float a12, float a20, float a21, float a22)
 Constructor using 9 floats.
NVSG_API Mat33f (const Vec3f &row0, const Vec3f &row1, const Vec3f &row2)
 Constructor using three row vectors.
NVSG_API Mat33f (const Vec3f &axis, float rad)
 Constructor using a normalized rotation axis and angle (in radians).
NVSG_API Mat33f (const Quatf &quat)
 Constructor using a normalized quaternion.
NVSG_API Mat33f (const Matnnf< 3 > &m)
 Copy constructor.
NVSG_API void set (const Vec3f &row0, const Vec3f &row1, const Vec3f &row2)
 Set the matrix with three row vectors.

Related Functions

(Note that these are not member functions.)

NVSG_API void decompose (const Mat33f &mat, Vec3f &scaling, Vec3f &shearing, Quatf &orientation)
float determinant (const Mat33f &mat)
bool isRotation (const Mat33f &mat)

Detailed Description

3x3 matrix class.

This class is used to handle pure rotational and scaling transformations (no translations).


Constructor & Destructor Documentation

nvmath::Mat33f::Mat33f void   )  [inline]
 

Default constructor.

For performance reasons no initialization is performed.

nvmath::Mat33f::Mat33f float  a00,
float  a01,
float  a02,
float  a10,
float  a11,
float  a12,
float  a20,
float  a21,
float  a22
[inline]
 

Constructor using 9 floats.

The 9 floats are used as the matrix elements. No normalization is performed.

nvmath::Mat33f::Mat33f const Vec3f row0,
const Vec3f row1,
const Vec3f row2
[inline]
 

Constructor using three row vectors.

The three vectors are used as the three rows of the matrix. No normalization is performed.

Parameters:
row0  row zero
row1  row one
row2  row two

nvmath::Mat33f::Mat33f const Vec3f axis,
float  rad
[inline]
 

Constructor using a normalized rotation axis and angle (in radians).

This results in a pure rotation matrix.

Parameters:
axis  rotation axis
rad  angle to rotate (in radians)

NVSG_API nvmath::Mat33f::Mat33f const Quatf quat  ) 
 

Constructor using a normalized quaternion.

This results in a pure rotation matrix.

Parameters:
quat  quaternion for rotation

nvmath::Mat33f::Mat33f const Matnnf< 3 > &  m  )  [inline]
 

Copy constructor.


Member Function Documentation

void nvmath::Mat33f::set const Vec3f row0,
const Vec3f row1,
const Vec3f row2
[inline]
 

Set the matrix with three row vectors.

Parameters:
row0  row zero
row1  row one
row2  row two


Friends And Related Function Documentation

NVSG_API void decompose const Mat33f mat,
Vec3f scaling,
Vec3f shearing,
Quatf orientation
[related]
 

Decompose the matrix mat into scaling, shearing, and orientation

Parameters:
mat  matrix to decompose
scaling  scaling factors
shearing  shearing factors (xy, xz, yz)
orientation  rotational part

float determinant const Mat33f mat  )  [related]
 

Determine the determinant of a matrix.

Returns:
determinant of the matrix
Parameters:
mat  matrix to determine determinante of

bool isRotation const Mat33f mat  )  [related]
 

Test if a matrix is a rotation. A matrix is a rotation if it is normalized, orthogonal, and the determinant equals (within some tolerance) 1.0.

Returns:
true if the matrix is a rotation, otherwise false
Parameters:
mat  matrix to test


The documentation for this class was generated from the following file:
Generated on Tue Mar 1 13:20:39 2005 for NVSGSDK by NVIDIA