JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / bin / javajs / util / T3.js
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
4 this.x = 0;\r
5 this.y = 0;\r
6 this.z = 0;\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
11 this.x = x;\r
12 this.y = y;\r
13 this.z = z;\r
14 }, "~N,~N,~N");\r
15 Clazz.defineMethod (c$, "setA", \r
16 function (t) {\r
17 this.x = t[0];\r
18 this.y = t[1];\r
19 this.z = t[2];\r
20 }, "~A");\r
21 Clazz.defineMethod (c$, "setT", \r
22 function (t1) {\r
23 this.x = t1.x;\r
24 this.y = t1.y;\r
25 this.z = t1.z;\r
26 }, "javajs.util.T3");\r
27 Clazz.defineMethod (c$, "add2", \r
28 function (t1, t2) {\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
34 function (t1) {\r
35 this.x += t1.x;\r
36 this.y += t1.y;\r
37 this.z += t1.z;\r
38 }, "javajs.util.T3");\r
39 Clazz.defineMethod (c$, "distanceSquared", \r
40 function (p1) {\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
47 function (p1) {\r
48 return Math.sqrt (this.distanceSquared (p1));\r
49 }, "javajs.util.T3");\r
50 Clazz.defineMethod (c$, "sub2", \r
51 function (t1, t2) {\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
57 function (t1) {\r
58 this.x -= t1.x;\r
59 this.y -= t1.y;\r
60 this.z -= t1.z;\r
61 }, "javajs.util.T3");\r
62 Clazz.defineMethod (c$, "scale", \r
63 function (s) {\r
64 this.x *= s;\r
65 this.y *= s;\r
66 this.z *= s;\r
67 }, "~N");\r
68 Clazz.defineMethod (c$, "add3", \r
69 function (a, b, c) {\r
70 this.x += a;\r
71 this.y += b;\r
72 this.z += c;\r
73 }, "~N,~N,~N");\r
74 Clazz.defineMethod (c$, "scaleT", \r
75 function (p) {\r
76 this.x *= p.x;\r
77 this.y *= p.y;\r
78 this.z *= p.z;\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
87 function (a, b) {\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
93 function (v) {\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
97 function () {\r
98 return this.x * this.x + this.y * this.y + this.z * this.z;\r
99 });\r
100 Clazz.defineMethod (c$, "length", \r
101 function () {\r
102 return Math.sqrt (this.lengthSquared ());\r
103 });\r
104 Clazz.defineMethod (c$, "normalize", \r
105 function () {\r
106 var d = this.length ();\r
107 this.x /= d;\r
108 this.y /= d;\r
109 this.z /= d;\r
110 });\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
116 function () {\r
117 var bits = 1;\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
122 });\r
123 c$.floatToIntBits0 = Clazz.defineMethod (c$, "floatToIntBits0", \r
124 function (f) {\r
125 return (f == 0 ? 0 : Float.floatToIntBits (f));\r
126 }, "~N");\r
127 Clazz.overrideMethod (c$, "equals", \r
128 function (t1) {\r
129 if (!(Clazz.instanceOf (t1, javajs.util.T3))) return false;\r
130 var t2 = t1;\r
131 return (this.x == t2.x && this.y == t2.y && this.z == t2.z);\r
132 }, "~O");\r
133 Clazz.overrideMethod (c$, "toString", \r
134 function () {\r
135 return "{" + this.x + ", " + this.y + ", " + this.z + "}";\r
136 });\r
137 Clazz.overrideMethod (c$, "toJSON", \r
138 function () {\r
139 return "[" + this.x + "," + this.y + "," + this.z + "]";\r
140 });\r
141 });\r