-public class MCMatrix {\r
- float[][] matrix;\r
- float[][] tmp;\r
- float mycos;\r
- float mysin;\r
- float myconst = (float) (Math.PI / 180);\r
-\r
- public MCMatrix(int rows, int cols) {\r
- matrix = new float[rows][cols];\r
- tmp = new float[rows][cols];\r
+public class MCMatrix\r
+{\r
+ float[][] matrix;\r
+ float[][] tmp;\r
+ float mycos;\r
+ float mysin;\r
+ float myconst = (float) (Math.PI / 180);\r
+\r
+ public MCMatrix(int rows, int cols)\r
+ {\r
+ matrix = new float[rows][cols];\r
+ tmp = new float[rows][cols];\r
+ }\r
+\r
+ public void addElement(int i, int j, float value)\r
+ {\r
+ matrix[i][j] = value;\r
+ }\r
+\r
+ public void rotatex(float degrees)\r
+ {\r
+ mycos = (float) (Math.cos(degrees * myconst));\r
+ mysin = (float) (Math.sin(degrees * myconst));\r
+\r
+ tmp[0][0] = 1;\r
+ tmp[0][1] = 0;\r
+ tmp[0][2] = 0;\r
+ tmp[1][0] = 0;\r
+ tmp[1][1] = mycos;\r
+ tmp[1][2] = mysin;\r
+ tmp[2][0] = 0;\r
+ tmp[2][1] = -mysin;\r
+ tmp[2][2] = mycos;\r
+ preMultiply(tmp);\r
+ }\r
+\r
+ public void rotatez(float degrees)\r
+ {\r
+ mycos = (float) (Math.cos(degrees * myconst));\r
+ mysin = (float) (Math.sin(degrees * myconst));\r
+\r
+ tmp[0][0] = mycos;\r
+ tmp[0][1] = -mysin;\r
+ tmp[0][2] = 0;\r
+ tmp[1][0] = mysin;\r
+ tmp[1][1] = mycos;\r
+ tmp[1][2] = 0;\r
+ tmp[2][0] = 0;\r
+ tmp[2][1] = 0;\r
+ tmp[2][2] = 1;\r
+\r
+ preMultiply(tmp);\r
+ }\r
+\r
+ public void rotatey(float degrees)\r
+ {\r
+ mycos = (float) (Math.cos(degrees * myconst));\r
+ mysin = (float) (Math.sin(degrees * myconst));\r
+\r
+ tmp[0][0] = mycos;\r
+ tmp[0][1] = 0;\r
+ tmp[0][2] = -mysin;\r
+ tmp[1][0] = 0;\r
+ tmp[1][1] = 1;\r
+ tmp[1][2] = 0;\r
+ tmp[2][0] = mysin;\r
+ tmp[2][1] = 0;\r
+ tmp[2][2] = mycos;\r
+\r
+ preMultiply(tmp);\r
+ }\r
+\r
+ public float[] vectorMultiply(float[] vect)\r
+ {\r
+ float[] temp = new float[3];\r
+\r
+ temp[0] = vect[0];\r
+ temp[1] = vect[1];\r
+ temp[2] = vect[2];\r
+\r
+ for (int i = 0; i < 3; i++)\r
+ {\r
+ temp[i] = ( (float) matrix[i][0] * vect[0]) +\r
+ ( (float) matrix[i][1] * vect[1]) +\r
+ ( (float) matrix[i][2] * vect[2]);\r