JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / JU / V3.js
1 Clazz.declarePackage ("JU");\r
2 Clazz.load (["JU.T3"], "JU.V3", null, function () {\r
3 c$ = Clazz.declareType (JU, "V3", JU.T3);\r
4 Clazz.makeConstructor (c$, \r
5 function () {\r
6 });\r
7 c$.newV = Clazz.defineMethod (c$, "newV", \r
8 function (t) {\r
9 return JU.V3.new3 (t.x, t.y, t.z);\r
10 }, "JU.T3");\r
11 c$.newVsub = Clazz.defineMethod (c$, "newVsub", \r
12 function (t1, t2) {\r
13 return JU.V3.new3 (t1.x - t2.x, t1.y - t2.y, t1.z - t2.z);\r
14 }, "JU.T3,JU.T3");\r
15 c$.new3 = Clazz.defineMethod (c$, "new3", \r
16 function (x, y, z) {\r
17 var v =  new JU.V3 ();\r
18 v.x = x;\r
19 v.y = y;\r
20 v.z = z;\r
21 return v;\r
22 }, "~N,~N,~N");\r
23 Clazz.defineMethod (c$, "angle", \r
24 function (v1) {\r
25 var xx = this.y * v1.z - this.z * v1.y;\r
26 var yy = this.z * v1.x - this.x * v1.z;\r
27 var zz = this.x * v1.y - this.y * v1.x;\r
28 var cross = Math.sqrt (xx * xx + yy * yy + zz * zz);\r
29 return Math.abs (Math.atan2 (cross, this.dot (v1)));\r
30 }, "JU.V3");\r
31 });\r