Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound 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 Methods

NVSG_API Mat33f (void)
 Default constructor. More...

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. More...

NVSG_API Mat33f (const Vec3f &row0, const Vec3f &row1, const Vec3f &row2)
 Constructor using three row vectors. More...

NVSG_API Mat33f (const Vec3f &axis, float rad)
 Constructor using a normalized rotation axis and angle (in radians). More...

NVSG_API Mat33f (const Quatf &quat)
 Constructor using a normalized quaternion. More...

NVSG_API Mat33f (const Matnnf< 3 > &m)
 Copy constructor. More...

NVSG_API void set (const Vec3f &row0, const Vec3f &row1, const Vec3f &row2)
 Set the matrix with three row vectors. More...


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:22 2005 for NVSGSDK by NVIDIA