Physsim::Matrix3 Class Reference

A 3x3 matrix that may be used for orientation, inertia tensors, etc. More...

#include <Matrix3.h>

Inheritance diagram for Physsim::Matrix3:

Physsim::MatrixNN Physsim::MatrixN List of all members.

Public Member Functions

 Matrix3 ()
 Default constructor.
 Matrix3 (const boost::shared_array< Real > array)
 Constructs a matrix from an array.
 Matrix3 (Real m00, Real m01, Real m02, Real m10, Real m11, Real m12, Real m20, Real m21, Real m22)
 Constructs a matrix from 9 values.
 Matrix3 (const Quat *q)
 Sets the orientation of this matrix to that represented by the given quaternion.
 Matrix3 (const Matrix3 &source)
 Copy constructor.
 Matrix3 (const MatrixNN &source)
 Copy constructor.
 Matrix3 (const MatrixN &source)
 Copy constructor.
 Matrix3 (const AAngle *a)
 Sets the orientation fo this matrix to that represented by the given axis-angle parameter.
bool epsilon_equals (const Matrix3 &m, Real epsilon) const
 Determines whether the rotation matrix represented by this matrix is equal to another (to within numerical tolerance epsilon).
Real det () const
 Calculates the determinant for a 3x3 matrix.
void invert ()
 Inverts this matrix.
void set_rot_X (Real angle)
 Sets this matrix to the rotation matrix of the specified angle around the X axis.
void set_rot_Y (Real angle)
 Sets this matrix to the rotation matrix of the specified angle around the Y axis.
void set_rot_Z (Real angle)
 Sets this matrix to the rotation matrix of the specified angle around the Z axis.
void set (const AAngle *a)
 Sets this rotation matrix from the given axis-angle representation.
void set (Real scale)
void set (const Quat *q)
 Sets this rotation matrix from the given quaternion.
void operator= (const Matrix3 &source)
virtual void operator= (const MatrixN &source)
 Sets this matrix to that of another.
virtual void operator= (const MatrixNN &source)
Vector3 operator * (const Vector3 &v) const
 Multiplies this matrix by a 3D vector.
Matrix3 operator * (const Matrix3 &m) const
Matrix3 operator * (Real scalar) const
 Multiplies this matrix by a scalar.
Matrix3 operator/ (Real scalar) const

Static Public Member Functions

static bool epsilon_equals (const Matrix3 &m1, const Matrix3 &m2, Real epsilon)
 Determines whether the rotation matrix represented by two matrices are equal (to within numerical tolerance epsilon).
static Matrix3 invert (const Matrix3 &m)
 Determines the inverse of the given matrix.
static Matrix3 rot_X (Real angle)
 Returns the rotation matrix of the specified angle around the X axis.
static Matrix3 rot_Y (Real angle)
 Returns the rotation matrix of the specified angle around the Y axis.
static Matrix3 rot_Z (Real angle)
 Returns the rotation matrix of the specified angle around the Z axis.
static Matrix3 skew_symmetric (Real a, Real b, Real c)
 Constructs a skew-symmetric matrix from the given values.
static Matrix3 skew_symmetric (const Vector3 &v)
 Constructs a skew-symmetric matrix from the given values.
static bool valid_rotation (const Matrix3 &R)
 Checks whether the rotation is valid for a right-handed coordinate system.

Detailed Description

A 3x3 matrix that may be used for orientation, inertia tensors, etc.


Constructor & Destructor Documentation

Matrix3::Matrix3 ( const boost::shared_array< Real >  array  ) 

Constructs a matrix from an array.

Parameters:
array an array of 9 Real values in row-major format

Matrix3::Matrix3 ( Real  m00,
Real  m01,
Real  m02,
Real  m10,
Real  m11,
Real  m12,
Real  m20,
Real  m21,
Real  m22 
)

Constructs a matrix from 9 values.

The resulting matrix will appear as follows:
m00 m01 m02
m10 m11 m12
m20 m21 m22


Member Function Documentation

void Matrix3::set ( const AAngle a  ) 

Sets this rotation matrix from the given axis-angle representation.

Note: this method could be faster...

Matrix3 Matrix3::skew_symmetric ( Real  x,
Real  y,
Real  z 
) [static]

Constructs a skew-symmetric matrix from the given values.

The skew symmetric matrix generated will be: | 0 -z y | | z 0 -x | | -y x 0 |

Matrix3 Matrix3::skew_symmetric ( const Vector3 v  )  [static]

Constructs a skew-symmetric matrix from the given values.

The skew symmetric matrix generated will be: | 0 -v[2] v[1] | | v[2] 0 -v[0] | | -v[1] v[0] 0 |


The documentation for this class was generated from the following files:
Generated on Wed Oct 24 14:54:23 2007 for Physsim by  doxygen 1.5.1