1 Clazz.declarePackage ("javajs.util");
\r
2 Clazz.load (["javajs.api.JSONEncodable"], "javajs.util.A4", ["javajs.util.T3"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
8 Clazz.instantialize (this, arguments);
\r
9 }, javajs.util, "A4", null, [javajs.api.JSONEncodable, java.io.Serializable]);
\r
10 Clazz.makeConstructor (c$,
\r
14 c$.new4 = Clazz.defineMethod (c$, "new4",
\r
15 function (x, y, z, angle) {
\r
16 var a = new javajs.util.A4 ();
\r
17 a.set4 (x, y, z, angle);
\r
20 c$.newAA = Clazz.defineMethod (c$, "newAA",
\r
22 var a = new javajs.util.A4 ();
\r
23 a.set4 (a1.x, a1.y, a1.z, a1.angle);
\r
25 }, "javajs.util.A4");
\r
26 c$.newVA = Clazz.defineMethod (c$, "newVA",
\r
27 function (axis, angle) {
\r
28 var a = new javajs.util.A4 ();
\r
29 a.setVA (axis, angle);
\r
31 }, "javajs.util.V3,~N");
\r
32 Clazz.defineMethod (c$, "setVA",
\r
33 function (axis, angle) {
\r
38 }, "javajs.util.V3,~N");
\r
39 Clazz.defineMethod (c$, "set4",
\r
40 function (x, y, z, angle) {
\r
46 Clazz.defineMethod (c$, "setAA",
\r
51 this.angle = a.angle;
\r
52 }, "javajs.util.A4");
\r
53 Clazz.defineMethod (c$, "setM",
\r
55 this.setFromMat (m1.m00, m1.m01, m1.m02, m1.m10, m1.m11, m1.m12, m1.m20, m1.m21, m1.m22);
\r
56 }, "javajs.util.M3");
\r
57 Clazz.defineMethod (c$, "setFromMat",
\r
58 ($fz = function (m00, m01, m02, m10, m11, m12, m20, m21, m22) {
\r
59 var cos = (m00 + m11 + m22 - 1.0) * 0.5;
\r
60 this.x = (m21 - m12);
\r
61 this.y = (m02 - m20);
\r
62 this.z = (m10 - m01);
\r
63 var sin = 0.5 * Math.sqrt (this.x * this.x + this.y * this.y + this.z * this.z);
\r
64 if (sin == 0 && cos == 1) {
\r
65 this.x = this.y = 0;
\r
69 this.angle = Math.atan2 (sin, cos);
\r
70 }}, $fz.isPrivate = true, $fz), "~N,~N,~N,~N,~N,~N,~N,~N,~N");
\r
71 Clazz.overrideMethod (c$, "hashCode",
\r
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);
\r
75 Clazz.overrideMethod (c$, "equals",
\r
77 if (!(Clazz.instanceOf (o, javajs.util.A4))) return false;
\r
79 return this.x == a1.x && this.y == a1.y && this.z == a1.z && this.angle == a1.angle;
\r
81 Clazz.overrideMethod (c$, "toString",
\r
83 return "(" + this.x + ", " + this.y + ", " + this.z + ", " + this.angle + ")";
\r
85 Clazz.overrideMethod (c$, "toJSON",
\r
87 return "[" + this.x + "," + this.y + "," + this.z + "," + (this.angle * 180.0 / 3.141592653589793) + "]";
\r