JD2022-TU1/main/extern/KinectGesture/Src/VectorMath/Matrix44.cpp

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