/*\r
* Jalview - A Sequence Alignment Editor and Viewer\r
-* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
*\r
* This program is free software; you can redistribute it and/or\r
* modify it under the terms of the GNU General Public License\r
*/\r
package jalview.math;\r
\r
-public class RotatableMatrix {\r
+\r
+/**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @author $author$\r
+ * @version $Revision$\r
+ */\r
+public class RotatableMatrix\r
+{\r
float[][] matrix;\r
float[] temp;\r
float[][] rot;\r
\r
- public RotatableMatrix(int rows, int cols) {\r
+ /**\r
+ * Creates a new RotatableMatrix object.\r
+ *\r
+ * @param rows DOCUMENT ME!\r
+ * @param cols DOCUMENT ME!\r
+ */\r
+ public RotatableMatrix(int rows, int cols)\r
+ {\r
matrix = new float[rows][cols];\r
\r
temp = new float[3];\r
rot = new float[3][3];\r
}\r
\r
- public void addElement(int i, int j, float value) {\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param i DOCUMENT ME!\r
+ * @param j DOCUMENT ME!\r
+ * @param value DOCUMENT ME!\r
+ */\r
+ public void addElement(int i, int j, float value)\r
+ {\r
matrix[i][j] = value;\r
}\r
\r
- public void print() {\r
+ /**\r
+ * DOCUMENT ME!\r
+ */\r
+ public void print()\r
+ {\r
System.out.println(matrix[0][0] + " " + matrix[0][1] + " " +\r
matrix[0][2]);\r
\r
matrix[2][2]);\r
}\r
\r
- public void rotate(float degrees, char axis) {\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param degrees DOCUMENT ME!\r
+ * @param axis DOCUMENT ME!\r
+ */\r
+ public void rotate(float degrees, char axis)\r
+ {\r
float costheta = (float) Math.cos((degrees * Math.PI) / (float) 180.0);\r
\r
float sintheta = (float) Math.sin((degrees * Math.PI) / (float) 180.0);\r
\r
- if (axis == 'z') {\r
+ if (axis == 'z')\r
+ {\r
rot[0][0] = (float) costheta;\r
\r
rot[0][1] = (float) -sintheta;\r
preMultiply(rot);\r
}\r
\r
- if (axis == 'x') {\r
+ if (axis == 'x')\r
+ {\r
rot[0][0] = (float) 1.0;\r
\r
rot[0][1] = (float) 0.0;\r
preMultiply(rot);\r
}\r
\r
- if (axis == 'y') {\r
+ if (axis == 'y')\r
+ {\r
rot[0][0] = (float) costheta;\r
\r
rot[0][1] = (float) 0.0;\r
}\r
}\r
\r
- public float[] vectorMultiply(float[] vect) {\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param vect DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public float[] vectorMultiply(float[] vect)\r
+ {\r
temp[0] = vect[0];\r
\r
temp[1] = vect[1];\r
\r
temp[2] = vect[2];\r
\r
- for (int i = 0; i < 3; i++) {\r
+ for (int i = 0; i < 3; i++)\r
+ {\r
temp[i] = (matrix[i][0] * vect[0]) + (matrix[i][1] * vect[1]) +\r
(matrix[i][2] * vect[2]);\r
}\r
return vect;\r
}\r
\r
- public void preMultiply(float[][] mat) {\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param mat DOCUMENT ME!\r
+ */\r
+ public void preMultiply(float[][] mat)\r
+ {\r
float[][] tmp = new float[3][3];\r
\r
- for (int i = 0; i < 3; i++) {\r
- for (int j = 0; j < 3; j++) {\r
+ for (int i = 0; i < 3; i++)\r
+ {\r
+ for (int j = 0; j < 3; j++)\r
+ {\r
tmp[i][j] = (mat[i][0] * matrix[0][j]) +\r
(mat[i][1] * matrix[1][j]) + (mat[i][2] * matrix[2][j]);\r
}\r
}\r
\r
- for (int i = 0; i < 3; i++) {\r
- for (int j = 0; j < 3; j++) {\r
+ for (int i = 0; i < 3; i++)\r
+ {\r
+ for (int j = 0; j < 3; j++)\r
+ {\r
matrix[i][j] = tmp[i][j];\r
}\r
}\r
}\r
\r
- public void postMultiply(float[][] mat) {\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param mat DOCUMENT ME!\r
+ */\r
+ public void postMultiply(float[][] mat)\r
+ {\r
float[][] tmp = new float[3][3];\r
\r
- for (int i = 0; i < 3; i++) {\r
- for (int j = 0; j < 3; j++) {\r
+ for (int i = 0; i < 3; i++)\r
+ {\r
+ for (int j = 0; j < 3; j++)\r
+ {\r
tmp[i][j] = (matrix[i][0] * mat[0][j]) +\r
(matrix[i][1] * mat[1][j]) + (matrix[i][2] * mat[2][j]);\r
}\r
}\r
\r
- for (int i = 0; i < 3; i++) {\r
- for (int j = 0; j < 3; j++) {\r
+ for (int i = 0; i < 3; i++)\r
+ {\r
+ for (int j = 0; j < 3; j++)\r
+ {\r
matrix[i][j] = tmp[i][j];\r
}\r
}\r
}\r
\r
- public static void main(String[] args) {\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param args DOCUMENT ME!\r
+ */\r
+ public static void main(String[] args)\r
+ {\r
RotatableMatrix m = new RotatableMatrix(3, 3);\r
\r
m.addElement(0, 0, 1);\r
System.out.println(vect[0] + " " + vect[1] + " " + vect[2]);\r
}\r
\r
- public void setIdentity() {\r
+ /**\r
+ * DOCUMENT ME!\r
+ */\r
+ public void setIdentity()\r
+ {\r
matrix[0][0] = (float) 1.0;\r
\r
matrix[1][1] = (float) 1.0;\r