LLMatrix3 Class Reference

#include <m3math.h>

List of all members.

Public Member Functions

 LLMatrix3 (void)
 LLMatrix3 (const F32 *mat)
 LLMatrix3 (const LLQuaternion &q)
 LLMatrix3 (const F32 angle, const F32 x, const F32 y, const F32 z)
 LLMatrix3 (const F32 angle, const LLVector3 &vec)
 LLMatrix3 (const F32 angle, const LLVector3d &vec)
 LLMatrix3 (const F32 angle, const LLVector4 &vec)
 LLMatrix3 (const F32 roll, const F32 pitch, const F32 yaw)
const LLMatrix3 & setIdentity ()
const LLMatrix3 & clear ()
const LLMatrix3 & setZero ()
const LLMatrix3 & setRot (const F32 angle, const F32 x, const F32 y, const F32 z)
const LLMatrix3 & setRot (const F32 angle, const LLVector3 &vec)
const LLMatrix3 & setRot (const F32 roll, const F32 pitch, const F32 yaw)
const LLMatrix3 & setRot (const LLQuaternion &q)
const LLMatrix3 & setRows (const LLVector3 &x_axis, const LLVector3 &y_axis, const LLVector3 &z_axis)
const LLMatrix3 & setRow (U32 rowIndex, const LLVector3 &row)
const LLMatrix3 & setCol (U32 colIndex, const LLVector3 &col)
LLQuaternion quaternion () const
void getEulerAngles (F32 *roll, F32 *pitch, F32 *yaw) const
LLVector3 getFwdRow () const
LLVector3 getLeftRow () const
LLVector3 getUpRow () const
F32 determinant () const
const LLMatrix3 & transpose ()
const LLMatrix3 & orthogonalize ()
void invert ()
const LLMatrix3 & adjointTranspose ()
const LLMatrix3 & rotate (const F32 angle, const F32 x, const F32 y, const F32 z)
const LLMatrix3 & rotate (const F32 angle, const LLVector3 &vec)
const LLMatrix3 & rotate (const F32 roll, const F32 pitch, const F32 yaw)
const LLMatrix3 & rotate (const LLQuaternion &q)
void add (const LLMatrix3 &other_matrix)

Public Attributes

F32 mMatrix [NUM_VALUES_IN_MAT3][NUM_VALUES_IN_MAT3]

Friends

LLVector3 operator* (const LLVector3 &a, const LLMatrix3 &b)
LLVector3d operator* (const LLVector3d &a, const LLMatrix3 &b)
LLMatrix3 operator* (const LLMatrix3 &a, const LLMatrix3 &b)
bool operator== (const LLMatrix3 &a, const LLMatrix3 &b)
bool operator!= (const LLMatrix3 &a, const LLMatrix3 &b)
const LLMatrix3 & operator*= (LLMatrix3 &a, const LLMatrix3 &b)
const LLMatrix3 & operator*= (LLMatrix3 &a, F32 scalar)
std::ostream & operator<< (std::ostream &s, const LLMatrix3 &a)


Detailed Description

Definition at line 59 of file m3math.h.


Constructor & Destructor Documentation

LLMatrix3::LLMatrix3 ( void   )  [inline]

Definition at line 152 of file m3math.h.

References mMatrix.

LLMatrix3::LLMatrix3 ( const F32 *  mat  )  [inline, explicit]

Definition at line 167 of file m3math.h.

References mMatrix.

LLMatrix3::LLMatrix3 ( const LLQuaternion &  q  )  [explicit]

Definition at line 57 of file m3math.cpp.

References setRot().

Here is the call graph for this function:

LLMatrix3::LLMatrix3 ( const F32  angle,
const F32  x,
const F32  y,
const F32  z 
)

Definition at line 83 of file m3math.cpp.

References setRot().

Here is the call graph for this function:

LLMatrix3::LLMatrix3 ( const F32  angle,
const LLVector3 &  vec 
)

Definition at line 63 of file m3math.cpp.

References setRot().

Here is the call graph for this function:

LLMatrix3::LLMatrix3 ( const F32  angle,
const LLVector3d &  vec 
)

Definition at line 69 of file m3math.cpp.

References setRot(), and LLVector3::setVec().

Here is the call graph for this function:

LLMatrix3::LLMatrix3 ( const F32  angle,
const LLVector4 &  vec 
)

Definition at line 77 of file m3math.cpp.

References setRot().

Here is the call graph for this function:

LLMatrix3::LLMatrix3 ( const F32  roll,
const F32  pitch,
const F32  yaw 
)

Definition at line 90 of file m3math.cpp.

References setRot().

Here is the call graph for this function:


Member Function Documentation

const LLMatrix3 & LLMatrix3::setIdentity (  ) 

Definition at line 139 of file m3math.cpp.

References mMatrix.

Referenced by LLVOVolume::LLVOVolume().

Here is the caller graph for this function:

const LLMatrix3 & LLMatrix3::clear (  ) 

Definition at line 155 of file m3math.cpp.

References mMatrix.

const LLMatrix3 & LLMatrix3::setZero (  ) 

Definition at line 171 of file m3math.cpp.

References mMatrix.

const LLMatrix3 & LLMatrix3::setRot ( const F32  angle,
const F32  x,
const F32  y,
const F32  z 
)

Definition at line 304 of file m3math.cpp.

Referenced by LLMatrix3(), and setRot().

Here is the caller graph for this function:

const LLMatrix3 & LLMatrix3::setRot ( const F32  angle,
const LLVector3 &  vec 
)

Definition at line 310 of file m3math.cpp.

References setRot().

Here is the call graph for this function:

const LLMatrix3 & LLMatrix3::setRot ( const F32  roll,
const F32  pitch,
const F32  yaw 
)

Definition at line 316 of file m3math.cpp.

References mMatrix.

const LLMatrix3 & LLMatrix3::setRot ( const LLQuaternion &  q  ) 

Definition at line 358 of file m3math.cpp.

References LLQuaternion::getMatrix3().

Here is the call graph for this function:

const LLMatrix3 & LLMatrix3::setRows ( const LLVector3 &  x_axis,
const LLVector3 &  y_axis,
const LLVector3 &  z_axis 
)

const LLMatrix3 & LLMatrix3::setRow ( U32  rowIndex,
const LLVector3 &  row 
)

Definition at line 381 of file m3math.cpp.

References llassert, mMatrix, and NUM_VALUES_IN_MAT3.

const LLMatrix3 & LLMatrix3::setCol ( U32  colIndex,
const LLVector3 &  col 
)

Definition at line 392 of file m3math.cpp.

References llassert, mMatrix, and NUM_VALUES_IN_MAT3.

LLQuaternion LLMatrix3::quaternion (  )  const

Definition at line 254 of file m3math.cpp.

References i, j, mMatrix, LLQuaternion::mQ, LLQuaternion::setQuat(), VS, VX, VY, and VZ.

Referenced by LLQuaternion::LLQuaternion(), LLQuaternion::set(), LLQuaternion::setEulerAngles(), and LLQuaternion::setQuat().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLMatrix3::getEulerAngles ( F32 *  roll,
F32 *  pitch,
F32 *  yaw 
) const

Definition at line 96 of file m3math.cpp.

References llclamp(), and mMatrix.

Referenced by LLQuaternion::getEulerAngles().

Here is the call graph for this function:

Here is the caller graph for this function:

LLVector3 LLMatrix3::getFwdRow (  )  const

Definition at line 446 of file m3math.cpp.

References mMatrix, and VX.

Referenced by LLFace::genVolumeBBoxes(), LLVoiceClient::sendPositionalUpdate(), and LLVOAvatar::updateCharacter().

Here is the caller graph for this function:

LLVector3 LLMatrix3::getLeftRow (  )  const

Definition at line 451 of file m3math.cpp.

References mMatrix, and VY.

Referenced by LLFace::genVolumeBBoxes(), and LLVoiceClient::sendPositionalUpdate().

Here is the caller graph for this function:

LLVector3 LLMatrix3::getUpRow (  )  const

Definition at line 456 of file m3math.cpp.

References mMatrix, and VZ.

Referenced by LLFace::genVolumeBBoxes(), and LLVoiceClient::sendPositionalUpdate().

Here is the caller graph for this function:

F32 LLMatrix3::determinant (  )  const

Definition at line 200 of file m3math.cpp.

References mMatrix.

Referenced by invert().

Here is the caller graph for this function:

const LLMatrix3 & LLMatrix3::transpose (  ) 

Definition at line 189 of file m3math.cpp.

References mMatrix, VX, VY, and VZ.

Referenced by LLVOVolume::updateRelativeXform().

Here is the caller graph for this function:

const LLMatrix3 & LLMatrix3::orthogonalize (  ) 

Definition at line 463 of file m3math.cpp.

References mMatrix, LLVector3::normVec(), setRows(), VX, VY, and VZ.

Referenced by LLQuaternion::getEulerAngles(), LLViewerJoystick::moveFlycam(), LLQuaternion::setEulerAngles(), and LLQuaternion::setQuat().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLMatrix3::invert (  ) 

Definition at line 210 of file m3math.cpp.

References determinant(), mMatrix, VX, VY, and VZ.

Here is the call graph for this function:

const LLMatrix3 & LLMatrix3::adjointTranspose (  ) 

Definition at line 232 of file m3math.cpp.

References mMatrix, VX, VY, and VZ.

const LLMatrix3 & LLMatrix3::rotate ( const F32  angle,
const F32  x,
const F32  y,
const F32  z 
)

Definition at line 404 of file m3math.cpp.

const LLMatrix3 & LLMatrix3::rotate ( const F32  angle,
const LLVector3 &  vec 
)

Definition at line 412 of file m3math.cpp.

const LLMatrix3 & LLMatrix3::rotate ( const F32  roll,
const F32  pitch,
const F32  yaw 
)

Definition at line 420 of file m3math.cpp.

const LLMatrix3 & LLMatrix3::rotate ( const LLQuaternion &  q  ) 

Definition at line 428 of file m3math.cpp.

void LLMatrix3::add ( const LLMatrix3 &  other_matrix  ) 

Definition at line 435 of file m3math.cpp.

References i, j, mMatrix, and S32.


Friends And Related Function Documentation

LLVector3 operator* ( const LLVector3 &  a,
const LLMatrix3 &  b 
) [friend]

Definition at line 518 of file m3math.cpp.

LLVector3d operator* ( const LLVector3d &  a,
const LLMatrix3 &  b 
) [friend]

Definition at line 535 of file m3math.cpp.

LLMatrix3 operator* ( const LLMatrix3 &  a,
const LLMatrix3 &  b 
) [friend]

Definition at line 480 of file m3math.cpp.

bool operator== ( const LLMatrix3 &  a,
const LLMatrix3 &  b 
) [friend]

Definition at line 552 of file m3math.cpp.

bool operator!= ( const LLMatrix3 &  a,
const LLMatrix3 &  b 
) [friend]

Definition at line 566 of file m3math.cpp.

const LLMatrix3& operator*= ( LLMatrix3 &  a,
const LLMatrix3 &  b 
) [friend]

Definition at line 580 of file m3math.cpp.

const LLMatrix3& operator*= ( LLMatrix3 &  a,
F32  scalar 
) [friend]

Definition at line 597 of file m3math.cpp.

std::ostream& operator<< ( std::ostream &  s,
const LLMatrix3 &  a 
) [friend]

Definition at line 610 of file m3math.cpp.


Member Data Documentation


The documentation for this class was generated from the following files:

Generated on Fri May 16 08:52:15 2008 for SecondLife by  doxygen 1.5.5