JAL-1807 still testing
[jalviewjs.git] / bin / jalview / math / RotatableMatrix.js
index bec7c23..12195ca 100644 (file)
-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;
-});
+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