30 lines
1.1 KiB
C++
30 lines
1.1 KiB
C++
#ifdef GESTURE_EVALUATOR
|
|
#include "Matrix44.h"
|
|
|
|
namespace VectorMathLimited
|
|
{
|
|
Matrix44::Matrix44(void) : r1(vector4(0,0,0,0)), r2(0,0,0,0), r3(0,0,0,0), r4(0,0,0,0){}
|
|
|
|
Matrix44::Matrix44( vector4 a, vector4 b, vector4 c, vector4 d ) : r1(a), r2(b), r3(c), r4(d){}
|
|
|
|
Matrix44::Matrix44( float r11, float r12, float r13,float r14, float r21, float r22, float r23,float r24, float r31, float r32, float r33,float r34, float r41, float r42, float r43,float r44 )
|
|
:r1(r11,r12,r13,r14),
|
|
r2(r21,r22,r23,r24),
|
|
r3(r31,r32,r33,r34),
|
|
r4(r41,r42,r43,r44){}
|
|
|
|
Matrix44::~Matrix44(void){}
|
|
|
|
vector4& Matrix44::TransformPoint( const vector4& src )
|
|
{
|
|
vector4* result = new vector4();
|
|
|
|
result->v[0] = src.v[0] * r1.v[0] + src.v[1] * r1.v[1]+ src.v[2] * r1.v[2]+ src.v[3] * r1.v[3];
|
|
result->v[1] = src.v[0] * r2.v[0] + src.v[1] * r2.v[1]+ src.v[2] * r2.v[2]+ src.v[3] * r2.v[3];
|
|
result->v[2] = src.v[0] * r3.v[0] + src.v[1] * r3.v[1]+ src.v[2] * r3.v[2]+ src.v[3] * r3.v[3];
|
|
result->v[3] = src.v[0] * r4.v[0] + src.v[1] * r4.v[1]+ src.v[2] * r4.v[2]+ src.v[3] * r4.v[3];
|
|
|
|
return *result;
|
|
}
|
|
}
|
|
#endif
|