1 Clazz.declarePackage ("javajs.util");
\r
2 Clazz.load (["javajs.api.JSONEncodable"], "javajs.util.T3", ["java.lang.Float"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
7 Clazz.instantialize (this, arguments);
\r
8 }, javajs.util, "T3", null, [javajs.api.JSONEncodable, java.io.Serializable]);
\r
9 Clazz.defineMethod (c$, "set",
\r
10 function (x, y, z) {
\r
15 Clazz.defineMethod (c$, "setA",
\r
21 Clazz.defineMethod (c$, "setT",
\r
26 }, "javajs.util.T3");
\r
27 Clazz.defineMethod (c$, "add2",
\r
29 this.x = t1.x + t2.x;
\r
30 this.y = t1.y + t2.y;
\r
31 this.z = t1.z + t2.z;
\r
32 }, "javajs.util.T3,javajs.util.T3");
\r
33 Clazz.defineMethod (c$, "add",
\r
38 }, "javajs.util.T3");
\r
39 Clazz.defineMethod (c$, "distanceSquared",
\r
41 var dx = this.x - p1.x;
\r
42 var dy = this.y - p1.y;
\r
43 var dz = this.z - p1.z;
\r
44 return (dx * dx + dy * dy + dz * dz);
\r
45 }, "javajs.util.T3");
\r
46 Clazz.defineMethod (c$, "distance",
\r
48 return Math.sqrt (this.distanceSquared (p1));
\r
49 }, "javajs.util.T3");
\r
50 Clazz.defineMethod (c$, "sub2",
\r
52 this.x = t1.x - t2.x;
\r
53 this.y = t1.y - t2.y;
\r
54 this.z = t1.z - t2.z;
\r
55 }, "javajs.util.T3,javajs.util.T3");
\r
56 Clazz.defineMethod (c$, "sub",
\r
61 }, "javajs.util.T3");
\r
62 Clazz.defineMethod (c$, "scale",
\r
68 Clazz.defineMethod (c$, "add3",
\r
69 function (a, b, c) {
\r
74 Clazz.defineMethod (c$, "scaleT",
\r
79 }, "javajs.util.T3");
\r
80 Clazz.defineMethod (c$, "scaleAdd2",
\r
81 function (s, t1, t2) {
\r
82 this.x = s * t1.x + t2.x;
\r
83 this.y = s * t1.y + t2.y;
\r
84 this.z = s * t1.z + t2.z;
\r
85 }, "~N,javajs.util.T3,javajs.util.T3");
\r
86 Clazz.defineMethod (c$, "ave",
\r
88 this.x = (a.x + b.x) / 2;
\r
89 this.y = (a.y + b.y) / 2;
\r
90 this.z = (a.z + b.z) / 2;
\r
91 }, "javajs.util.T3,javajs.util.T3");
\r
92 Clazz.defineMethod (c$, "dot",
\r
94 return this.x * v.x + this.y * v.y + this.z * v.z;
\r
95 }, "javajs.util.T3");
\r
96 Clazz.defineMethod (c$, "lengthSquared",
\r
98 return this.x * this.x + this.y * this.y + this.z * this.z;
\r
100 Clazz.defineMethod (c$, "length",
\r
102 return Math.sqrt (this.lengthSquared ());
\r
104 Clazz.defineMethod (c$, "normalize",
\r
106 var d = this.length ();
\r
111 Clazz.defineMethod (c$, "cross",
\r
112 function (v1, v2) {
\r
113 this.set (v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x);
\r
114 }, "javajs.util.T3,javajs.util.T3");
\r
115 Clazz.overrideMethod (c$, "hashCode",
\r
118 bits = 31 * bits + javajs.util.T3.floatToIntBits0 (this.x);
\r
119 bits = 31 * bits + javajs.util.T3.floatToIntBits0 (this.y);
\r
120 bits = 31 * bits + javajs.util.T3.floatToIntBits0 (this.z);
\r
121 return (bits ^ (bits >> 32));
\r
123 c$.floatToIntBits0 = Clazz.defineMethod (c$, "floatToIntBits0",
\r
125 return (f == 0 ? 0 : Float.floatToIntBits (f));
\r
127 Clazz.overrideMethod (c$, "equals",
\r
129 if (!(Clazz.instanceOf (t1, javajs.util.T3))) return false;
\r
131 return (this.x == t2.x && this.y == t2.y && this.z == t2.z);
\r
133 Clazz.overrideMethod (c$, "toString",
\r
135 return "{" + this.x + ", " + this.y + ", " + this.z + "}";
\r
137 Clazz.overrideMethod (c$, "toJSON",
\r
139 return "[" + this.x + "," + this.y + "," + this.z + "]";
\r