NL3D::CMatrix3x4 Class Reference

#include <matrix_3x4.h>

Inheritance diagram for NL3D::CMatrix3x4:

NL3D::CMatrix3x4SSE

Detailed Description

For fast vector/point multiplication. Special usage for Skinning.
Author:
Lionel Berenguier

Nevrax France

Date:
2002

Definition at line 50 of file matrix_3x4.h.

Public Member Functions

void mulAddPoint (const CVector &in, float scale, CVector &out)
void mulAddVector (const CVector &in, float scale, CVector &out)
void mulSetPoint (const CVector &in, float scale, CVector &out)
void mulSetPoint (const CVector &in, CVector &out)
void mulSetVector (const CVector &in, float scale, CVector &out)
void mulSetVector (const CVector &in, CVector &out)
void set (const CMatrix &mat)

Data Fields

float a11
float a12
float a13
float a14
float a21
float a22
float a23
float a24
float a31
float a32
float a33
float a34


Member Function Documentation

void NL3D::CMatrix3x4::mulAddPoint const CVector in,
float  scale,
CVector out
[inline]
 

Definition at line 108 of file matrix_3x4.h.

References a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, in, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.

Referenced by NL3D::CMeshGeom::computeSoftwarePointSkinning().

00109         {
00110                 out.x+= (a11*in.x + a12*in.y + a13*in.z + a14) * scale;
00111                 out.y+= (a21*in.x + a22*in.y + a23*in.z + a24) * scale;
00112                 out.z+= (a31*in.x + a32*in.y + a33*in.z + a34) * scale;
00113         }

void NL3D::CMatrix3x4::mulAddVector const CVector in,
float  scale,
CVector out
[inline]
 

Definition at line 101 of file matrix_3x4.h.

References a11, a12, a13, a21, a22, a23, a31, a32, a33, in, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.

Referenced by NL3D::CMeshGeom::computeSoftwareVectorSkinning().

00102         {
00103                 out.x+= (a11*in.x + a12*in.y + a13*in.z) * scale;
00104                 out.y+= (a21*in.x + a22*in.y + a23*in.z) * scale;
00105                 out.z+= (a31*in.x + a32*in.y + a33*in.z) * scale;
00106         }

void NL3D::CMatrix3x4::mulSetPoint const CVector in,
float  scale,
CVector out
[inline]
 

Definition at line 92 of file matrix_3x4.h.

References a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, in, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.

00093         {
00094                 out.x= (a11*in.x + a12*in.y + a13*in.z + a14) * scale;
00095                 out.y= (a21*in.x + a22*in.y + a23*in.z + a24) * scale;
00096                 out.z= (a31*in.x + a32*in.y + a33*in.z + a34) * scale;
00097         }

void NL3D::CMatrix3x4::mulSetPoint const CVector in,
CVector out
[inline]
 

Definition at line 76 of file matrix_3x4.h.

References a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, in, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.

Referenced by NL3D::CMeshGeom::computeSoftwarePointSkinning().

00077         {
00078                 out.x= (a11*in.x + a12*in.y + a13*in.z + a14);
00079                 out.y= (a21*in.x + a22*in.y + a23*in.z + a24);
00080                 out.z= (a31*in.x + a32*in.y + a33*in.z + a34);
00081         }

void NL3D::CMatrix3x4::mulSetVector const CVector in,
float  scale,
CVector out
[inline]
 

Definition at line 85 of file matrix_3x4.h.

References a11, a12, a13, a21, a22, a23, a31, a32, a33, in, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.

00086         {
00087                 out.x= (a11*in.x + a12*in.y + a13*in.z) * scale;
00088                 out.y= (a21*in.x + a22*in.y + a23*in.z) * scale;
00089                 out.z= (a31*in.x + a32*in.y + a33*in.z) * scale;
00090         }

void NL3D::CMatrix3x4::mulSetVector const CVector in,
CVector out
[inline]
 

Definition at line 69 of file matrix_3x4.h.

References a11, a12, a13, a21, a22, a23, a31, a32, a33, in, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.

Referenced by NL3D::CMeshGeom::computeSoftwareVectorSkinning().

00070         {
00071                 out.x= (a11*in.x + a12*in.y + a13*in.z);
00072                 out.y= (a21*in.x + a22*in.y + a23*in.z);
00073                 out.z= (a31*in.x + a32*in.y + a33*in.z);
00074         }

void NL3D::CMatrix3x4::set const CMatrix mat  )  [inline]
 

Definition at line 59 of file matrix_3x4.h.

References a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, and NLMISC::CMatrix::get().

Referenced by NL3D::CMeshGeom::computeSkinMatrixes().

00060         {
00061                 const float     *m =mat.get();
00062                 a11= m[0]; a12= m[4]; a13= m[8] ; a14= m[12]; 
00063                 a21= m[1]; a22= m[5]; a23= m[9] ; a24= m[13]; 
00064                 a31= m[2]; a32= m[6]; a33= m[10]; a34= m[14]; 
00065         }


Field Documentation

float NL3D::CMatrix3x4::a11
 

Definition at line 54 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulAddVector(), mulSetPoint(), mulSetVector(), and set().

float NL3D::CMatrix3x4::a12
 

Definition at line 54 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulAddVector(), mulSetPoint(), mulSetVector(), and set().

float NL3D::CMatrix3x4::a13
 

Definition at line 54 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulAddVector(), mulSetPoint(), mulSetVector(), and set().

float NL3D::CMatrix3x4::a14
 

Definition at line 54 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulSetPoint(), and set().

float NL3D::CMatrix3x4::a21
 

Definition at line 55 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulAddVector(), mulSetPoint(), mulSetVector(), and set().

float NL3D::CMatrix3x4::a22
 

Definition at line 55 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulAddVector(), mulSetPoint(), mulSetVector(), and set().

float NL3D::CMatrix3x4::a23
 

Definition at line 55 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulAddVector(), mulSetPoint(), mulSetVector(), and set().

float NL3D::CMatrix3x4::a24
 

Definition at line 55 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulSetPoint(), and set().

float NL3D::CMatrix3x4::a31
 

Definition at line 56 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulAddVector(), mulSetPoint(), mulSetVector(), and set().

float NL3D::CMatrix3x4::a32
 

Definition at line 56 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulAddVector(), mulSetPoint(), mulSetVector(), and set().

float NL3D::CMatrix3x4::a33
 

Definition at line 56 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulAddVector(), mulSetPoint(), mulSetVector(), and set().

float NL3D::CMatrix3x4::a34
 

Definition at line 56 of file matrix_3x4.h.

Referenced by mulAddPoint(), mulSetPoint(), and set().


The documentation for this class was generated from the following file:
Generated on Tue Mar 16 06:50:46 2004 for NeL by doxygen 1.3.6