Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / j2s / jalview / math / RotatableMatrix.js
index 12195ca..bec7c23 100644 (file)
-Clazz.declarePackage ("jalview.math");\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.matrix = null;\r
-this.temp = null;\r
-this.rot = null;\r
-Clazz.instantialize (this, arguments);\r
-}, jalview.math, "RotatableMatrix");\r
-Clazz.makeConstructor (c$, \r
-function (rows, cols) {\r
-this.matrix =  Clazz.newFloatArray (rows, cols, 0);\r
-this.temp =  Clazz.newFloatArray (3, 0);\r
-this.rot =  Clazz.newFloatArray (3, 3, 0);\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "addElement", \r
-function (i, j, value) {\r
-this.matrix[i][j] = value;\r
-}, "~N,~N,~N");\r
-Clazz.defineMethod (c$, "print", \r
-function () {\r
-System.out.println (this.matrix[0][0] + " " + this.matrix[0][1] + " " + this.matrix[0][2]);\r
-System.out.println (this.matrix[1][0] + " " + this.matrix[1][1] + " " + this.matrix[1][2]);\r
-System.out.println (this.matrix[2][0] + " " + this.matrix[2][1] + " " + this.matrix[2][2]);\r
-});\r
-Clazz.defineMethod (c$, "rotate", \r
-function (degrees, axis) {\r
-var costheta = Math.cos ((degrees * 3.141592653589793) / 180.0);\r
-var sintheta = Math.sin ((degrees * 3.141592653589793) / 180.0);\r
-if (axis == 'z') {\r
-this.rot[0][0] = costheta;\r
-this.rot[0][1] = -sintheta;\r
-this.rot[0][2] = 0.0;\r
-this.rot[1][0] = sintheta;\r
-this.rot[1][1] = costheta;\r
-this.rot[1][2] = 0.0;\r
-this.rot[2][0] = 0.0;\r
-this.rot[2][1] = 0.0;\r
-this.rot[2][2] = 1.0;\r
-this.preMultiply (this.rot);\r
-}if (axis == 'x') {\r
-this.rot[0][0] = 1.0;\r
-this.rot[0][1] = 0.0;\r
-this.rot[0][2] = 0.0;\r
-this.rot[1][0] = 0.0;\r
-this.rot[1][1] = costheta;\r
-this.rot[1][2] = sintheta;\r
-this.rot[2][0] = 0.0;\r
-this.rot[2][1] = -sintheta;\r
-this.rot[2][2] = costheta;\r
-this.preMultiply (this.rot);\r
-}if (axis == 'y') {\r
-this.rot[0][0] = costheta;\r
-this.rot[0][1] = 0.0;\r
-this.rot[0][2] = -sintheta;\r
-this.rot[1][0] = 0.0;\r
-this.rot[1][1] = 1.0;\r
-this.rot[1][2] = 0.0;\r
-this.rot[2][0] = sintheta;\r
-this.rot[2][1] = 0.0;\r
-this.rot[2][2] = costheta;\r
-this.preMultiply (this.rot);\r
-}}, "~N,~S");\r
-Clazz.defineMethod (c$, "vectorMultiply", \r
-function (vect) {\r
-this.temp[0] = vect[0];\r
-this.temp[1] = vect[1];\r
-this.temp[2] = vect[2];\r
-for (var i = 0; i < 3; i++) {\r
-this.temp[i] = (this.matrix[i][0] * vect[0]) + (this.matrix[i][1] * vect[1]) + (this.matrix[i][2] * vect[2]);\r
-}\r
-vect[0] = this.temp[0];\r
-vect[1] = this.temp[1];\r
-vect[2] = this.temp[2];\r
-return vect;\r
-}, "~A");\r
-Clazz.defineMethod (c$, "preMultiply", \r
-function (mat) {\r
-var tmp =  Clazz.newFloatArray (3, 3, 0);\r
-for (var i = 0; i < 3; i++) {\r
-for (var j = 0; j < 3; j++) {\r
-tmp[i][j] = (mat[i][0] * this.matrix[0][j]) + (mat[i][1] * this.matrix[1][j]) + (mat[i][2] * this.matrix[2][j]);\r
-}\r
-}\r
-for (var i = 0; i < 3; i++) {\r
-for (var j = 0; j < 3; j++) {\r
-this.matrix[i][j] = tmp[i][j];\r
-}\r
-}\r
-}, "~A");\r
-Clazz.defineMethod (c$, "postMultiply", \r
-function (mat) {\r
-var tmp =  Clazz.newFloatArray (3, 3, 0);\r
-for (var i = 0; i < 3; i++) {\r
-for (var j = 0; j < 3; j++) {\r
-tmp[i][j] = (this.matrix[i][0] * mat[0][j]) + (this.matrix[i][1] * mat[1][j]) + (this.matrix[i][2] * mat[2][j]);\r
-}\r
-}\r
-for (var i = 0; i < 3; i++) {\r
-for (var j = 0; j < 3; j++) {\r
-this.matrix[i][j] = tmp[i][j];\r
-}\r
-}\r
-}, "~A");\r
-Clazz.defineMethod (c$, "setIdentity", \r
-function () {\r
-this.matrix[0][0] = 1.0;\r
-this.matrix[1][1] = 1.0;\r
-this.matrix[2][2] = 1.0;\r
-this.matrix[0][1] = 0.0;\r
-this.matrix[0][2] = 0.0;\r
-this.matrix[1][0] = 0.0;\r
-this.matrix[1][2] = 0.0;\r
-this.matrix[2][0] = 0.0;\r
-this.matrix[2][1] = 0.0;\r
-});\r
+Clazz.declarePackage ("jalview.math");
+c$ = Clazz.decorateAsClass (function () {
+this.matrix = null;
+this.temp = null;
+this.rot = null;
+Clazz.instantialize (this, arguments);
+}, jalview.math, "RotatableMatrix");
+Clazz.makeConstructor (c$, 
+function (rows, cols) {
+this.matrix =  Clazz.newFloatArray (rows, cols, 0);
+this.temp =  Clazz.newFloatArray (3, 0);
+this.rot =  Clazz.newFloatArray (3, 3, 0);
+}, "~N,~N");
+Clazz.defineMethod (c$, "addElement", 
+function (i, j, value) {
+this.matrix[i][j] = value;
+}, "~N,~N,~N");
+Clazz.defineMethod (c$, "print", 
+function () {
+System.out.println (this.matrix[0][0] + " " + this.matrix[0][1] + " " + this.matrix[0][2]);
+System.out.println (this.matrix[1][0] + " " + this.matrix[1][1] + " " + this.matrix[1][2]);
+System.out.println (this.matrix[2][0] + " " + this.matrix[2][1] + " " + this.matrix[2][2]);
+});
+Clazz.defineMethod (c$, "rotate", 
+function (degrees, axis) {
+var costheta = Math.cos ((degrees * 3.141592653589793) / 180.0);
+var sintheta = Math.sin ((degrees * 3.141592653589793) / 180.0);
+if (axis == 'z') {
+this.rot[0][0] = costheta;
+this.rot[0][1] = -sintheta;
+this.rot[0][2] = 0.0;
+this.rot[1][0] = sintheta;
+this.rot[1][1] = costheta;
+this.rot[1][2] = 0.0;
+this.rot[2][0] = 0.0;
+this.rot[2][1] = 0.0;
+this.rot[2][2] = 1.0;
+this.preMultiply (this.rot);
+}if (axis == 'x') {
+this.rot[0][0] = 1.0;
+this.rot[0][1] = 0.0;
+this.rot[0][2] = 0.0;
+this.rot[1][0] = 0.0;
+this.rot[1][1] = costheta;
+this.rot[1][2] = sintheta;
+this.rot[2][0] = 0.0;
+this.rot[2][1] = -sintheta;
+this.rot[2][2] = costheta;
+this.preMultiply (this.rot);
+}if (axis == 'y') {
+this.rot[0][0] = costheta;
+this.rot[0][1] = 0.0;
+this.rot[0][2] = -sintheta;
+this.rot[1][0] = 0.0;
+this.rot[1][1] = 1.0;
+this.rot[1][2] = 0.0;
+this.rot[2][0] = sintheta;
+this.rot[2][1] = 0.0;
+this.rot[2][2] = costheta;
+this.preMultiply (this.rot);
+}}, "~N,~S");
+Clazz.defineMethod (c$, "vectorMultiply", 
+function (vect) {
+this.temp[0] = vect[0];
+this.temp[1] = vect[1];
+this.temp[2] = vect[2];
+for (var i = 0; i < 3; i++) {
+this.temp[i] = (this.matrix[i][0] * vect[0]) + (this.matrix[i][1] * vect[1]) + (this.matrix[i][2] * vect[2]);
+}
+vect[0] = this.temp[0];
+vect[1] = this.temp[1];
+vect[2] = this.temp[2];
+return vect;
+}, "~A");
+Clazz.defineMethod (c$, "preMultiply", 
+function (mat) {
+var tmp =  Clazz.newFloatArray (3, 3, 0);
+for (var i = 0; i < 3; i++) {
+for (var j = 0; j < 3; j++) {
+tmp[i][j] = (mat[i][0] * this.matrix[0][j]) + (mat[i][1] * this.matrix[1][j]) + (mat[i][2] * this.matrix[2][j]);
+}
+}
+for (var i = 0; i < 3; i++) {
+for (var j = 0; j < 3; j++) {
+this.matrix[i][j] = tmp[i][j];
+}
+}
+}, "~A");
+Clazz.defineMethod (c$, "postMultiply", 
+function (mat) {
+var tmp =  Clazz.newFloatArray (3, 3, 0);
+for (var i = 0; i < 3; i++) {
+for (var j = 0; j < 3; j++) {
+tmp[i][j] = (this.matrix[i][0] * mat[0][j]) + (this.matrix[i][1] * mat[1][j]) + (this.matrix[i][2] * mat[2][j]);
+}
+}
+for (var i = 0; i < 3; i++) {
+for (var j = 0; j < 3; j++) {
+this.matrix[i][j] = tmp[i][j];
+}
+}
+}, "~A");
+Clazz.defineMethod (c$, "setIdentity", 
+function () {
+this.matrix[0][0] = 1.0;
+this.matrix[1][1] = 1.0;
+this.matrix[2][2] = 1.0;
+this.matrix[0][1] = 0.0;
+this.matrix[0][2] = 0.0;
+this.matrix[1][0] = 0.0;
+this.matrix[1][2] = 0.0;
+this.matrix[2][0] = 0.0;
+this.matrix[2][1] = 0.0;
+});