lux::Matrix4x4 Class Reference

#include <matrix4x4-sse.h>

Collaboration diagram for lux::Matrix4x4:
[legend]

List of all members.

Public Member Functions

 Matrix4x4 ()
 Matrix4x4 (const Matrix4x4 &m)
 Matrix4x4 (const __m128 &l1, const __m128 &l2, const __m128 &l3, const __m128 &l4)
 Matrix4x4 (float mat[4][4])
 Matrix4x4 (float t00, float t01, float t02, float t03, float t10, float t11, float t12, float t13, float t20, float t21, float t22, float t23, float t30, float t31, float t32, float t33)
boost::shared_ptr< Matrix4x4Transpose () const
void Print (ostream &os) const
boost::shared_ptr< Matrix4x4Inverse () const
void * operator new (size_t t)
void operator delete (void *ptr, size_t t)
void * operator new[] (size_t t)
void operator delete[] (void *ptr)
 Matrix4x4 ()
 Matrix4x4 (float mat[4][4])
 Matrix4x4 (float t00, float t01, float t02, float t03, float t10, float t11, float t12, float t13, float t20, float t21, float t22, float t23, float t30, float t31, float t32, float t33)
boost::shared_ptr< Matrix4x4Transpose () const
float Determinant () const
void Print (ostream &os) const
boost::shared_ptr< Matrix4x4Inverse () const

Static Public Member Functions

static boost::shared_ptr
< Matrix4x4
Mul (const boost::shared_ptr< Matrix4x4 > &A, const boost::shared_ptr< Matrix4x4 > &B)
static boost::shared_ptr
< Matrix4x4
Mul (const boost::shared_ptr< Matrix4x4 > &m1, const boost::shared_ptr< Matrix4x4 > &m2)

Public Attributes

union {
   struct {
      __m128   _L1
      __m128   _L2
      __m128   _L3
      __m128   _L4
   } 
   struct {
      float   _11
      float   _12
      float   _13
      float   _14
      float   _21
      float   _22
      float   _23
      float   _24
      float   _31
      float   _32
      float   _33
      float   _34
      float   _41
      float   _42
      float   _43
      float   _44
   } 
   struct {
      float   _t11
      float   _t21
      float   _t31
      float   _t41
      float   _t12
      float   _t22
      float   _t32
      float   _t42
      float   _t13
      float   _t23
      float   _t33
      float   _t43
      float   _t14
      float   _t24
      float   _t34
      float   _t44
   } 
}; 
float m [4][4]

Private Member Functions

float * operator[] (int i) const

Detailed Description

Definition at line 36 of file matrix4x4-sse.h.


Constructor & Destructor Documentation

lux::Matrix4x4::Matrix4x4 (  )  [inline]

Definition at line 39 of file matrix4x4-sse.h.

References _11, lux::_matrix44_sse_ident, and memcpy().

Referenced by Inverse(), Mul(), and Transpose().

lux::Matrix4x4::Matrix4x4 ( const Matrix4x4 m  )  [inline]

Definition at line 54 of file matrix4x4-sse.h.

lux::Matrix4x4::Matrix4x4 ( const __m128 &  l1,
const __m128 &  l2,
const __m128 &  l3,
const __m128 &  l4 
) [inline]

Definition at line 58 of file matrix4x4-sse.h.

lux::Matrix4x4::Matrix4x4 ( float  mat[4][4]  ) 

Definition at line 33 of file matrix4x4.cpp.

References m, and memcpy().

lux::Matrix4x4::Matrix4x4 ( float  t00,
float  t01,
float  t02,
float  t03,
float  t10,
float  t11,
float  t12,
float  t13,
float  t20,
float  t21,
float  t22,
float  t23,
float  t30,
float  t31,
float  t32,
float  t33 
)

Definition at line 38 of file matrix4x4.cpp.

References m.

lux::Matrix4x4::Matrix4x4 (  )  [inline]

Definition at line 32 of file matrix4x4.h.

References m.

lux::Matrix4x4::Matrix4x4 ( float  mat[4][4]  ) 
lux::Matrix4x4::Matrix4x4 ( float  t00,
float  t01,
float  t02,
float  t03,
float  t10,
float  t11,
float  t12,
float  t13,
float  t20,
float  t21,
float  t22,
float  t23,
float  t30,
float  t31,
float  t32,
float  t33 
)

Member Function Documentation

float lux::Matrix4x4::Determinant (  )  const

Definition at line 71 of file matrix4x4.cpp.

References lux::Det3x3(), and m.

boost::shared_ptr<Matrix4x4> lux::Matrix4x4::Inverse (  )  const
boost::shared_ptr< Matrix4x4 > lux::Matrix4x4::Inverse (  )  const

Definition at line 109 of file matrix4x4.cpp.

References LUX_ERROR, LUX_MATH, luxError, m, Matrix4x4(), memcpy(), and cimg_library::cimg::swap().

static boost::shared_ptr<Matrix4x4> lux::Matrix4x4::Mul ( const boost::shared_ptr< Matrix4x4 > &  m1,
const boost::shared_ptr< Matrix4x4 > &  m2 
) [inline, static]

Definition at line 60 of file matrix4x4.h.

References Matrix4x4(), and lux::r.

static boost::shared_ptr<Matrix4x4> lux::Matrix4x4::Mul ( const boost::shared_ptr< Matrix4x4 > &  A,
const boost::shared_ptr< Matrix4x4 > &  B 
) [inline, static]

Definition at line 80 of file matrix4x4-sse.h.

References B1, B2, B3, B4, Matrix4x4(), r1, and r2.

Referenced by lux::Transform::operator*().

void lux::Matrix4x4::operator delete ( void *  ptr,
size_t  t 
) [inline]

Definition at line 134 of file matrix4x4-sse.h.

void lux::Matrix4x4::operator delete[] ( void *  ptr  )  [inline]

Definition at line 136 of file matrix4x4-sse.h.

void* lux::Matrix4x4::operator new ( size_t  t  )  [inline]

Definition at line 133 of file matrix4x4-sse.h.

void* lux::Matrix4x4::operator new[] ( size_t  t  )  [inline]

Definition at line 135 of file matrix4x4-sse.h.

float* lux::Matrix4x4::operator[] ( int  i  )  const [inline, private]

Definition at line 140 of file matrix4x4-sse.h.

References _L1.

void lux::Matrix4x4::Print ( ostream &  os  )  const [inline]

Definition at line 47 of file matrix4x4.h.

References m.

void lux::Matrix4x4::Print ( ostream &  os  )  const [inline]

Definition at line 67 of file matrix4x4-sse.h.

boost::shared_ptr<Matrix4x4> lux::Matrix4x4::Transpose (  )  const
boost::shared_ptr< Matrix4x4 > lux::Matrix4x4::Transpose (  )  const

Definition at line 49 of file matrix4x4.cpp.

References m, and Matrix4x4().


Member Data Documentation

union { ... }

Definition at line 120 of file matrix4x4-sse.h.

Referenced by Matrix4x4().

Definition at line 120 of file matrix4x4-sse.h.

Definition at line 120 of file matrix4x4-sse.h.

Definition at line 120 of file matrix4x4-sse.h.

Definition at line 121 of file matrix4x4-sse.h.

Definition at line 121 of file matrix4x4-sse.h.

Definition at line 121 of file matrix4x4-sse.h.

Definition at line 121 of file matrix4x4-sse.h.

Definition at line 122 of file matrix4x4-sse.h.

Definition at line 122 of file matrix4x4-sse.h.

Definition at line 122 of file matrix4x4-sse.h.

Definition at line 122 of file matrix4x4-sse.h.

Definition at line 123 of file matrix4x4-sse.h.

Definition at line 123 of file matrix4x4-sse.h.

Definition at line 123 of file matrix4x4-sse.h.

Definition at line 123 of file matrix4x4-sse.h.

Definition at line 117 of file matrix4x4-sse.h.

Referenced by operator[]().

Definition at line 117 of file matrix4x4-sse.h.

Definition at line 117 of file matrix4x4-sse.h.

Definition at line 117 of file matrix4x4-sse.h.

Definition at line 126 of file matrix4x4-sse.h.

Definition at line 127 of file matrix4x4-sse.h.

Definition at line 128 of file matrix4x4-sse.h.

Definition at line 129 of file matrix4x4-sse.h.

Definition at line 126 of file matrix4x4-sse.h.

Definition at line 127 of file matrix4x4-sse.h.

Definition at line 128 of file matrix4x4-sse.h.

Definition at line 129 of file matrix4x4-sse.h.

Definition at line 126 of file matrix4x4-sse.h.

Definition at line 127 of file matrix4x4-sse.h.

Definition at line 128 of file matrix4x4-sse.h.

Definition at line 129 of file matrix4x4-sse.h.

Definition at line 126 of file matrix4x4-sse.h.

Definition at line 127 of file matrix4x4-sse.h.

Definition at line 128 of file matrix4x4-sse.h.

Definition at line 129 of file matrix4x4-sse.h.

float lux::Matrix4x4::m[4][4]

Definition at line 73 of file matrix4x4.h.

Referenced by Determinant(), Inverse(), Matrix4x4(), Print(), and Transpose().


The documentation for this class was generated from the following files:
Generated by  doxygen 1.6.2-20100208