You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.3 KiB
60 lines
1.3 KiB
//Computes the dot product of two vectors |
|
float Vector_Dot_Product(float vector1[3],float vector2[3]) |
|
{ |
|
float op=0; |
|
|
|
for(int c=0; c<3; c++) |
|
{ |
|
op+=vector1[c]*vector2[c]; |
|
} |
|
|
|
return op; |
|
} |
|
|
|
//Computes the cross product of two vectors |
|
void Vector_Cross_Product(float vectorOut[3], float v1[3],float v2[3]) |
|
{ |
|
vectorOut[0]= (v1[1]*v2[2]) - (v1[2]*v2[1]); |
|
vectorOut[1]= (v1[2]*v2[0]) - (v1[0]*v2[2]); |
|
vectorOut[2]= (v1[0]*v2[1]) - (v1[1]*v2[0]); |
|
} |
|
|
|
//Multiply the vector by a scalar. |
|
void Vector_Scale(float vectorOut[3],float vectorIn[3], float scale2) |
|
{ |
|
for(int c=0; c<3; c++) |
|
{ |
|
vectorOut[c]=vectorIn[c]*scale2; |
|
} |
|
} |
|
|
|
void Vector_Add(float vectorOut[3],float vectorIn1[3], float vectorIn2[3]) |
|
{ |
|
for(int c=0; c<3; c++) |
|
{ |
|
vectorOut[c]=vectorIn1[c]+vectorIn2[c]; |
|
} |
|
} |
|
|
|
/********* MATRIX FUNCTIONS *****************************************/ |
|
//Multiply two 3x3 matrixs. This function developed by Jordi can be easily adapted to multiple n*n matrix's. (Pero me da flojera!). |
|
void Matrix_Multiply(float a[3][3], float b[3][3],float mat[3][3]) |
|
{ |
|
float op[3]; |
|
for(int x=0; x<3; x++) |
|
{ |
|
for(int y=0; y<3; y++) |
|
{ |
|
for(int w=0; w<3; w++) |
|
{ |
|
op[w]=a[x][w]*b[w][y]; |
|
} |
|
mat[x][y]=0; |
|
mat[x][y]=op[0]+op[1]+op[2]; |
|
|
|
float test=mat[x][y]; |
|
} |
|
} |
|
} |
|
|
|
|
|
|