X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fmath%2FRotatableMatrix.java;h=2385288b46e321d50c88baaf63809e9991a07c1e;hb=08044f16da407871ea84ccbfbc09e34cceb74080;hp=c0ec1c98abc4719ede8489e2c6a2c7f51e80cc2c;hpb=588042b69abf8e60bcc950b24c283933c7dd422f;p=jalview.git diff --git a/src/jalview/math/RotatableMatrix.java b/src/jalview/math/RotatableMatrix.java index c0ec1c9..2385288 100755 --- a/src/jalview/math/RotatableMatrix.java +++ b/src/jalview/math/RotatableMatrix.java @@ -18,12 +18,27 @@ */ package jalview.math; -public class RotatableMatrix { + +/** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision$ + */ +public class RotatableMatrix +{ float[][] matrix; float[] temp; float[][] rot; - public RotatableMatrix(int rows, int cols) { + /** + * Creates a new RotatableMatrix object. + * + * @param rows DOCUMENT ME! + * @param cols DOCUMENT ME! + */ + public RotatableMatrix(int rows, int cols) + { matrix = new float[rows][cols]; temp = new float[3]; @@ -31,11 +46,23 @@ public class RotatableMatrix { rot = new float[3][3]; } - public void addElement(int i, int j, float value) { + /** + * DOCUMENT ME! + * + * @param i DOCUMENT ME! + * @param j DOCUMENT ME! + * @param value DOCUMENT ME! + */ + public void addElement(int i, int j, float value) + { matrix[i][j] = value; } - public void print() { + /** + * DOCUMENT ME! + */ + public void print() + { System.out.println(matrix[0][0] + " " + matrix[0][1] + " " + matrix[0][2]); @@ -46,12 +73,20 @@ public class RotatableMatrix { matrix[2][2]); } - public void rotate(float degrees, char axis) { + /** + * DOCUMENT ME! + * + * @param degrees DOCUMENT ME! + * @param axis DOCUMENT ME! + */ + public void rotate(float degrees, char axis) + { float costheta = (float) Math.cos((degrees * Math.PI) / (float) 180.0); float sintheta = (float) Math.sin((degrees * Math.PI) / (float) 180.0); - if (axis == 'z') { + if (axis == 'z') + { rot[0][0] = (float) costheta; rot[0][1] = (float) -sintheta; @@ -73,7 +108,8 @@ public class RotatableMatrix { preMultiply(rot); } - if (axis == 'x') { + if (axis == 'x') + { rot[0][0] = (float) 1.0; rot[0][1] = (float) 0.0; @@ -95,7 +131,8 @@ public class RotatableMatrix { preMultiply(rot); } - if (axis == 'y') { + if (axis == 'y') + { rot[0][0] = (float) costheta; rot[0][1] = (float) 0.0; @@ -118,14 +155,23 @@ public class RotatableMatrix { } } - public float[] vectorMultiply(float[] vect) { + /** + * DOCUMENT ME! + * + * @param vect DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public float[] vectorMultiply(float[] vect) + { temp[0] = vect[0]; temp[1] = vect[1]; temp[2] = vect[2]; - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 3; i++) + { temp[i] = (matrix[i][0] * vect[0]) + (matrix[i][1] * vect[1]) + (matrix[i][2] * vect[2]); } @@ -139,41 +185,67 @@ public class RotatableMatrix { return vect; } - public void preMultiply(float[][] mat) { + /** + * DOCUMENT ME! + * + * @param mat DOCUMENT ME! + */ + public void preMultiply(float[][] mat) + { float[][] tmp = new float[3][3]; - for (int i = 0; i < 3; i++) { - for (int j = 0; j < 3; j++) { + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 3; j++) + { tmp[i][j] = (mat[i][0] * matrix[0][j]) + (mat[i][1] * matrix[1][j]) + (mat[i][2] * matrix[2][j]); } } - for (int i = 0; i < 3; i++) { - for (int j = 0; j < 3; j++) { + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 3; j++) + { matrix[i][j] = tmp[i][j]; } } } - public void postMultiply(float[][] mat) { + /** + * DOCUMENT ME! + * + * @param mat DOCUMENT ME! + */ + public void postMultiply(float[][] mat) + { float[][] tmp = new float[3][3]; - for (int i = 0; i < 3; i++) { - for (int j = 0; j < 3; j++) { + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 3; j++) + { tmp[i][j] = (matrix[i][0] * mat[0][j]) + (matrix[i][1] * mat[1][j]) + (matrix[i][2] * mat[2][j]); } } - for (int i = 0; i < 3; i++) { - for (int j = 0; j < 3; j++) { + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 3; j++) + { matrix[i][j] = tmp[i][j]; } } } - public static void main(String[] args) { + /** + * DOCUMENT ME! + * + * @param args DOCUMENT ME! + */ + public static void main(String[] args) + { RotatableMatrix m = new RotatableMatrix(3, 3); m.addElement(0, 0, 1); @@ -234,7 +306,11 @@ public class RotatableMatrix { System.out.println(vect[0] + " " + vect[1] + " " + vect[2]); } - public void setIdentity() { + /** + * DOCUMENT ME! + */ + public void setIdentity() + { matrix[0][0] = (float) 1.0; matrix[1][1] = (float) 1.0;