AI_TMatrix33SSE Class Reference
[Mathematics]

#include <AI_TMatrix33_sse.h>

List of all members.


Detailed Description

An SSE based AI_Matrix33 class.

(C) 2002 RadonLabs GmbH

Public Member Functions

 AI_TMatrix33SSE ()
 constructor 1
 AI_TMatrix33SSE (const AI_TVector3SSE &v1, const AI_TVector3SSE &v2, const AI_TVector3SSE &v3)
 constructor 2
 AI_TMatrix33SSE (const AI_TMatrix33SSE &mx)
 constructor 3
 AI_TMatrix33SSE (float _m11, float _m12, float _m13, float _m21, float _m22, float _m23, float _m31, float _m32, float _m33)
 constructor 4
 AI_TMatrix33SSE (const AI_Quaternion &q)
 constructor 5
 AI_TMatrix33SSE (const __m128 &_m1, const __m128 &_m2, const __m128 &_m3)
 constructor 6
AI_Quaternion get_quaternion () const
 get as AI_Quaternion
AI_TVector3SSE to_euler () const
 get as euler representation
void from_euler (const AI_TVector3SSE &ea)
 set as euler
void lookat (const AI_TVector3SSE &from, const AI_TVector3SSE &to, const AI_TVector3SSE &up)
 unrestricted lookat
void billboard (const AI_TVector3SSE &from, const AI_TVector3SSE &to, const AI_TVector3SSE &up)
 restricted lookat (billboard)
void set (float m11, float m12, float m13, float m21, float m22, float m23, float m31, float m32, float m33)
 set 1
void set (const AI_TVector3SSE &v1, const AI_TVector3SSE &v2, const AI_TVector3SSE &v3)
 set 2
void set (const AI_TMatrix33SSE &mx)
 set 3
void ident ()
 set to identity
void transpose ()
 set to transpose
bool orthonorm (float limit)
 is orthonormal?
void scale (const AI_TVector3SSE &s)
 scale
void rotate_x (const float a)
 rotate about global x
void rotate_y (const float a)
 rotates matrix about global y
void rotate_z (const float a)
 rotate about global z
void rotate_local_x (const float a)
 rotate about local x (not very fast)
void rotate_local_y (const float a)
 rotate about local y (not very fast)
void rotate_local_z (const float a)
 rotate about local z (not very fast)
void rotate (const AI_TVector3SSE &vec, float a)
 rotate about any axis
AI_TVector3SSE x_component (void) const
 get x component
AI_TVector3SSE y_component (void) const
 get y component
AI_TVector3SSE z_component (void) const
 get z component
void operator *= (const AI_TMatrix33SSE &m1)
void mult (const AI_TVector3SSE &src, AI_TVector3SSE &dst) const
 multiply source vector into target vector

Public Attributes

union {
   struct {
      __m128   m1
      __m128   m2
      __m128   m3
   } 
   struct {
      float   m [3][4]
   } 
}; 


Constructor & Destructor Documentation

AI_TMatrix33SSE::AI_TMatrix33SSE (  )  [inline]

constructor 1

AI_TMatrix33SSE::AI_TMatrix33SSE ( const AI_TVector3SSE v1,
const AI_TVector3SSE v2,
const AI_TVector3SSE v3 
) [inline]

constructor 2

AI_TMatrix33SSE::AI_TMatrix33SSE ( const AI_TMatrix33SSE mx  )  [inline]

constructor 3

AI_TMatrix33SSE::AI_TMatrix33SSE ( float  _m11,
float  _m12,
float  _m13,
float  _m21,
float  _m22,
float  _m23,
float  _m31,
float  _m32,
float  _m33 
) [inline]

constructor 4

AI_TMatrix33SSE::AI_TMatrix33SSE ( const AI_Quaternion q  )  [inline]

constructor 5

FIXME: SSE OPTIMIZATION!

AI_TMatrix33SSE::AI_TMatrix33SSE ( const __m128 &  _m1,
const __m128 &  _m2,
const __m128 &  _m3 
) [inline]

constructor 6


Member Function Documentation

AI_Quaternion AI_TMatrix33SSE::get_quaternion (  )  const [inline]

get as AI_Quaternion

FIXME: SSE OPTIMIZATION!

AI_TVector3SSE AI_TMatrix33SSE::to_euler (  )  const [inline]

get as euler representation

FIXME: SSE OPTIMIZATION!

void AI_TMatrix33SSE::from_euler ( const AI_TVector3SSE ea  )  [inline]

set as euler

FIXME: SSE OPTIMIZATION!

void AI_TMatrix33SSE::lookat ( const AI_TVector3SSE from,
const AI_TVector3SSE to,
const AI_TVector3SSE up 
) [inline]

unrestricted lookat

void AI_TMatrix33SSE::billboard ( const AI_TVector3SSE from,
const AI_TVector3SSE to,
const AI_TVector3SSE up 
) [inline]

restricted lookat (billboard)

void AI_TMatrix33SSE::set ( float  m11,
float  m12,
float  m13,
float  m21,
float  m22,
float  m23,
float  m31,
float  m32,
float  m33 
) [inline]

set 1

void AI_TMatrix33SSE::set ( const AI_TVector3SSE v1,
const AI_TVector3SSE v2,
const AI_TVector3SSE v3 
) [inline]

set 2

void AI_TMatrix33SSE::set ( const AI_TMatrix33SSE mx  )  [inline]

set 3

void AI_TMatrix33SSE::ident ( void   )  [inline]

set to identity

void AI_TMatrix33SSE::transpose (  )  [inline]

set to transpose

FIXME: SSE OPTIMIZATION

bool AI_TMatrix33SSE::orthonorm ( float  limit  )  [inline]

is orthonormal?

FIXME: SSE OPTIMIZATION

void AI_TMatrix33SSE::scale ( const AI_TVector3SSE s  )  [inline]

scale

void AI_TMatrix33SSE::rotate_x ( const float  a  )  [inline]

rotate about global x

FIXME: SSE OPTIMIZATION

void AI_TMatrix33SSE::rotate_y ( const float  a  )  [inline]

rotates matrix about global y

FIXME: SSE OPTIMIZATION

void AI_TMatrix33SSE::rotate_z ( const float  a  )  [inline]

rotate about global z

FIXME: SSE OPTIMIZATION

void AI_TMatrix33SSE::rotate_local_x ( const float  a  )  [inline]

rotate about local x (not very fast)

FIXME: SSE OPTIMIZATION

void AI_TMatrix33SSE::rotate_local_y ( const float  a  )  [inline]

rotate about local y (not very fast)

FIXME: SSE OPTIMIZATION

void AI_TMatrix33SSE::rotate_local_z ( const float  a  )  [inline]

rotate about local z (not very fast)

FIXME: SSE OPTIMIZATION

void AI_TMatrix33SSE::rotate ( const AI_TVector3SSE vec,
float  a 
) [inline]

rotate about any axis

FIXME: SSE OPTIMIZATION

AI_TVector3SSE AI_TMatrix33SSE::x_component ( void   )  const [inline]

get x component

AI_TVector3SSE AI_TMatrix33SSE::y_component ( void   )  const [inline]

get y component

AI_TVector3SSE AI_TMatrix33SSE::z_component ( void   )  const [inline]

get z component

void AI_TMatrix33SSE::operator *= ( const AI_TMatrix33SSE m1  )  [inline]

void AI_TMatrix33SSE::mult ( const AI_TVector3SSE src,
AI_TVector3SSE dst 
) const [inline]

multiply source vector into target vector

multiply source vector with matrix and store in destination vector this eliminates the construction of a temp AI_TVector3SSE object


Member Data Documentation

float AI_TMatrix33SSE::m[3][4]

union { ... }


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