package myGraphics.VectorGrafix; import myGraphics.VectorGrafix.Matrix; import myGraphics.VectorGrafix.Vector3d; public class Matrix3d extends Matrix { public Matrix3d() { int i, j; mterm = new double[4][4]; for (i = 0; i < 4; i++) { /* initialized to identity matrix */ for (j = 0; j < 4; j++) { if (i == j) { mterm[i][j] = 1.0; } else { mterm[i][j] = 0.0; } } } } public void reset() { int i, j; for (i = 0; i < 4; i++) { /* reset to identity matrix */ for (j = 0; j < 4; j++) { if (i == j) { mterm[i][j] = 1.0; } else { mterm[i][j] = 0.0; } } } } public Matrix3d multiply(Matrix3d m2) { Matrix3d temp = new Matrix3d(); int i, j, s; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { temp.set_term(i, j, 0.0); for (s = 0; s < 4; s++) { temp.set_term(i, j, temp.get_term(i, j) + (mterm[i][s] * m2.get_term(s, j))); } } } return temp; } public Vector3d multiply(Vector3d v) { Vector3d temp = new Vector3d(); int i, s; for (i = 0; i < 4; i++) { temp.set_term(i, 0.0); for (s = 0; s < 4; s++) { temp.set_term(i, temp.get_term(i) + (mterm[i][s] * v.get_term(s))); } } return temp; } }