#include #include "Vector3.h" #include "Matrix3x3.h" Matrix3x3::Matrix3x3() { int i, j; for (i = 0; i < 3; i = i + 1) for (j = 0; j < 3; j = j + 1) A[i][j] = 0; } Matrix3x3::Matrix3x3(double a, double b, double c, double d, double e, double f, double g, double h, double i ) { A[0][0] = a; A[0][1] = b; A[0][2] = c; A[1][0] = d; A[1][1] = e; A[1][2] = f; A[2][0] = g; A[2][1] = h; A[2][2] = i; } /************************************************ Matrix vector multiply member FRIEND function *************************************************/ Vector3 Matrix3x3::operator*(Vector3 & v) { Vector3 z; int i, j; for (i = 0; i < 3; i=i+1) z.x[i] = 0; for (i = 0; i < 3; i=i+1) for (j = 0; j < 3; j=j+1) z.x[i] = z.x[i] + A[i][j]*v.x[j]; return z; } /* ------------------------------------------------------- Friend function to print a matrix ------------------------------------------------------- */ ostream & operator<<(ostream & cout, Matrix3x3 & M) { int i, j; for (i = 0; i < 3; i=i+1) { for (j = 0; j < 3; j=j+1) cout << M.A[i][j] << "\t"; cout << endl; } return(cout); }