Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include <blort/TomGine/tgMatrix3.h>
00011
00012 using namespace TomGine;
00013
00014 tgMatrix3::tgMatrix3(){
00015 for(int i=0; i<9; i++)
00016 m[i] = 0.0f;
00017 }
00018
00019 tgMatrix3::tgMatrix3(tgVector3 x, tgVector3 y, tgVector3 z){
00020 m[0] = x.x; m[1] = y.x; m[2] = z.x;
00021 m[3] = x.y; m[4] = y.y; m[5] = z.y;
00022 m[6] = x.z; m[7] = y.z; m[8] = z.z;
00023 }
00024
00025 tgMatrix3::tgMatrix3(const tgMatrix3 &m1){
00026 m[0]=m1.m[0]; m[1]=m1.m[1]; m[2]=m1.m[2];
00027 m[3]=m1.m[3]; m[4]=m1.m[4]; m[5]=m1.m[5];
00028 m[6]=m1.m[6]; m[7]=m1.m[7]; m[8]=m1.m[8];
00029 }
00030
00031 tgMatrix3::tgMatrix3( float m0, float m1, float m2,
00032 float m3, float m4, float m5,
00033 float m6, float m7, float m8){
00034 m[0]=m0; m[1]=m1; m[2]=m2;
00035 m[3]=m3; m[4]=m4; m[5]=m5;
00036 m[6]=m6; m[7]=m7; m[8]=m8;
00037
00038 }
00039
00040 tgMatrix3 tgMatrix3::operator+(tgMatrix3 m1){
00041 tgMatrix3 m2;
00042 return m2;
00043 }
00044
00045 tgMatrix3 tgMatrix3::operator-(tgMatrix3 m1){
00046 tgMatrix3 m2;
00047 return m2;
00048 }
00049
00050 tgMatrix3 tgMatrix3::operator*(tgMatrix3 m1){
00051 tgMatrix3 m2;
00052
00053 m2.m[0] = m[0]*m1.m[0] + m[1]*m1.m[3] + m[2]*m1.m[6];
00054 m2.m[1] = m[0]*m1.m[1] + m[1]*m1.m[4] + m[2]*m1.m[7];
00055 m2.m[2] = m[0]*m1.m[2] + m[1]*m1.m[5] + m[2]*m1.m[8];
00056
00057 m2.m[3] = m[3]*m1.m[0] + m[4]*m1.m[3] + m[5]*m1.m[6];
00058 m2.m[4] = m[3]*m1.m[1] + m[4]*m1.m[4] + m[5]*m1.m[7];
00059 m2.m[5] = m[3]*m1.m[2] + m[4]*m1.m[5] + m[5]*m1.m[8];
00060
00061 m2.m[6] = m[6]*m1.m[0] + m[7]*m1.m[3] + m[8]*m1.m[6];
00062 m2.m[7] = m[6]*m1.m[1] + m[7]*m1.m[4] + m[8]*m1.m[7];
00063 m2.m[8] = m[6]*m1.m[2] + m[7]*m1.m[5] + m[8]*m1.m[8];
00064
00065 return m2;
00066 }
00067
00068 tgMatrix3 tgMatrix3::operator*(float f){
00069 tgMatrix3 m2;
00070 return m2;
00071 }
00072
00073 tgVector3 tgMatrix3::operator*(tgVector3 v1){
00074 tgVector3 v2;
00075
00076 v2.x = m[0]*v1.x + m[1]*v1.y + m[2]*v1.z;
00077 v2.y = m[3]*v1.x + m[4]*v1.y + m[5]*v1.z;
00078 v2.z = m[6]*v1.x + m[7]*v1.y + m[8]*v1.z;
00079
00080 return v2;
00081 }
00082
00083 void tgMatrix3::transpose(){
00084 tgMatrix3 m1 = tgMatrix3(*this);
00085
00086 m[0]=m1.m[0]; m[1]=m1.m[3]; m[2]=m1.m[6];
00087 m[3]=m1.m[1]; m[4]=m1.m[4]; m[5]=m1.m[7];
00088 m[6]=m1.m[2]; m[7]=m1.m[5]; m[8]=m1.m[8];
00089 }
00090
00091
00092