JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / bin / javajs / util / A4.js
1 Clazz.declarePackage ("javajs.util");
2 Clazz.load (["javajs.api.JSONEncodable"], "javajs.util.A4", ["javajs.util.T3"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.x = 0;
5 this.y = 0;
6 this.z = 0;
7 this.angle = 0;
8 Clazz.instantialize (this, arguments);
9 }, javajs.util, "A4", null, [javajs.api.JSONEncodable, java.io.Serializable]);
10 Clazz.makeConstructor (c$, 
11 function () {
12 this.z = 1.0;
13 });
14 c$.new4 = Clazz.defineMethod (c$, "new4", 
15 function (x, y, z, angle) {
16 var a =  new javajs.util.A4 ();
17 a.set4 (x, y, z, angle);
18 return a;
19 }, "~N,~N,~N,~N");
20 c$.newAA = Clazz.defineMethod (c$, "newAA", 
21 function (a1) {
22 var a =  new javajs.util.A4 ();
23 a.set4 (a1.x, a1.y, a1.z, a1.angle);
24 return a;
25 }, "javajs.util.A4");
26 c$.newVA = Clazz.defineMethod (c$, "newVA", 
27 function (axis, angle) {
28 var a =  new javajs.util.A4 ();
29 a.setVA (axis, angle);
30 return a;
31 }, "javajs.util.V3,~N");
32 Clazz.defineMethod (c$, "setVA", 
33 function (axis, angle) {
34 this.x = axis.x;
35 this.y = axis.y;
36 this.z = axis.z;
37 this.angle = angle;
38 }, "javajs.util.V3,~N");
39 Clazz.defineMethod (c$, "set4", 
40 function (x, y, z, angle) {
41 this.x = x;
42 this.y = y;
43 this.z = z;
44 this.angle = angle;
45 }, "~N,~N,~N,~N");
46 Clazz.defineMethod (c$, "setAA", 
47 function (a) {
48 this.x = a.x;
49 this.y = a.y;
50 this.z = a.z;
51 this.angle = a.angle;
52 }, "javajs.util.A4");
53 Clazz.defineMethod (c$, "setM", 
54 function (m1) {
55 this.setFromMat (m1.m00, m1.m01, m1.m02, m1.m10, m1.m11, m1.m12, m1.m20, m1.m21, m1.m22);
56 }, "javajs.util.M3");
57 Clazz.defineMethod (c$, "setFromMat", 
58 ($fz = function (m00, m01, m02, m10, m11, m12, m20, m21, m22) {
59 var cos = (m00 + m11 + m22 - 1.0) * 0.5;
60 this.x = (m21 - m12);
61 this.y = (m02 - m20);
62 this.z = (m10 - m01);
63 var sin = 0.5 * Math.sqrt (this.x * this.x + this.y * this.y + this.z * this.z);
64 if (sin == 0 && cos == 1) {
65 this.x = this.y = 0;
66 this.z = 1;
67 this.angle = 0;
68 } else {
69 this.angle = Math.atan2 (sin, cos);
70 }}, $fz.isPrivate = true, $fz), "~N,~N,~N,~N,~N,~N,~N,~N,~N");
71 Clazz.overrideMethod (c$, "hashCode", 
72 function () {
73 return javajs.util.T3.floatToIntBits0 (this.x) ^ javajs.util.T3.floatToIntBits0 (this.y) ^ javajs.util.T3.floatToIntBits0 (this.z) ^ javajs.util.T3.floatToIntBits0 (this.angle);
74 });
75 Clazz.overrideMethod (c$, "equals", 
76 function (o) {
77 if (!(Clazz.instanceOf (o, javajs.util.A4))) return false;
78 var a1 = o;
79 return this.x == a1.x && this.y == a1.y && this.z == a1.z && this.angle == a1.angle;
80 }, "~O");
81 Clazz.overrideMethod (c$, "toString", 
82 function () {
83 return "(" + this.x + ", " + this.y + ", " + this.z + ", " + this.angle + ")";
84 });
85 Clazz.overrideMethod (c$, "toJSON", 
86 function () {
87 return "[" + this.x + "," + this.y + "," + this.z + "," + (this.angle * 180.0 / 3.141592653589793) + "]";
88 });
89 });