#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