#ifndef _MATRIX3_H_
#define _MATRIX3_H_
class Matrix3
{
private:
float values[3][3];
public:
Matrix3(float v=1.0f); // Initialize diagonal to some value, default to 1.0
Matrix3(float v11,float v12,float v13,
float v21,float v22,float v23,
float v31,float v32,float v33);
void Identity(); // Create an identity matrix
void SetValue(short row,short column,float v); // 0 based index
float GetValue(short row,short column); // 0 based index
Matrix3 Add(Matrix3 &);
Matrix3 Subtract(Matrix3 &);
Matrix3 Multiply(Matrix3 &);
void Print(ostream &); // Print the matrix nicely to the console
};
#endif
Matrix3 mTest;
Matrix3 mAdd(2.0f);
Matrix3 mSubtract(3.0f);
Matrix3 mMultiply(4.0f);
Matrix3 mResult;
//
// Default matrix should have a 1.0 for the diagonal
cout << "Default Matrix..." << endl;
mTest.Print(cout);
cout << endl;
//
// Add a couple of matrices
cout << "Adding two matrices..." << endl;
mResult=mAdd.Add(mTest);
mResult.Print(cout);
cout << endl;
//
// Subtract a couple of matrices
cout << "Subtracting two matrices..." << endl;
mResult=mSubtract.Subtract(mTest);
mResult.Print(cout);
cout << endl;
//
// Multiply a couple of matrices
cout << "Multiplying two matrices..." << endl;
mResult=mMultiply.Multiply(mAdd);
mResult.Print(cout);
cout << endl;
return 0;
}