JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / java / awt / geom / RoundRectIterator.js
1 Clazz.declarePackage ("java.awt.geom");\r
2 Clazz.load (["java.awt.geom.PathIterator"], "java.awt.geom.RoundRectIterator", ["java.util.NoSuchElementException"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.x = 0;\r
5 this.y = 0;\r
6 this.w = 0;\r
7 this.h = 0;\r
8 this.aw = 0;\r
9 this.ah = 0;\r
10 this.affine = null;\r
11 this.index = 0;\r
12 Clazz.instantialize (this, arguments);\r
13 }, java.awt.geom, "RoundRectIterator", null, java.awt.geom.PathIterator);\r
14 Clazz.makeConstructor (c$, \r
15 function (rr, at) {\r
16 this.x = rr.getX ();\r
17 this.y = rr.getY ();\r
18 this.w = rr.getWidth ();\r
19 this.h = rr.getHeight ();\r
20 this.aw = Math.min (this.w, Math.abs (rr.getArcWidth ()));\r
21 this.ah = Math.min (this.h, Math.abs (rr.getArcHeight ()));\r
22 this.affine = at;\r
23 if (this.aw < 0 || this.ah < 0) {\r
24 this.index = java.awt.geom.RoundRectIterator.ctrlpts.length;\r
25 }}, "java.awt.geom.RoundRectangle2D,java.awt.geom.AffineTransform");\r
26 Clazz.overrideMethod (c$, "getWindingRule", \r
27 function () {\r
28 return 1;\r
29 });\r
30 Clazz.overrideMethod (c$, "isDone", \r
31 function () {\r
32 return this.index >= java.awt.geom.RoundRectIterator.ctrlpts.length;\r
33 });\r
34 Clazz.overrideMethod (c$, "next", \r
35 function () {\r
36 this.index++;\r
37 });\r
38 Clazz.defineMethod (c$, "currentSegment", \r
39 function (coords) {\r
40 if (this.isDone ()) {\r
41 throw  new java.util.NoSuchElementException ("roundrect iterator out of bounds");\r
42 }var ctrls = java.awt.geom.RoundRectIterator.ctrlpts[this.index];\r
43 var nc = 0;\r
44 for (var i = 0; i < ctrls.length; i += 4) {\r
45 coords[nc++] = (this.x + ctrls[i + 0] * this.w + ctrls[i + 1] * this.aw);\r
46 coords[nc++] = (this.y + ctrls[i + 2] * this.h + ctrls[i + 3] * this.ah);\r
47 }\r
48 if (this.affine != null) {\r
49 this.affine.transform (coords, 0, coords, 0, Clazz.doubleToInt (nc / 2));\r
50 }return java.awt.geom.RoundRectIterator.types[this.index];\r
51 }, "~A");\r
52 Clazz.defineMethod (c$, "currentSegment", \r
53 function (coords) {\r
54 if (this.isDone ()) {\r
55 throw  new java.util.NoSuchElementException ("roundrect iterator out of bounds");\r
56 }var ctrls = java.awt.geom.RoundRectIterator.ctrlpts[this.index];\r
57 var nc = 0;\r
58 for (var i = 0; i < ctrls.length; i += 4) {\r
59 coords[nc++] = (this.x + ctrls[i + 0] * this.w + ctrls[i + 1] * this.aw);\r
60 coords[nc++] = (this.y + ctrls[i + 2] * this.h + ctrls[i + 3] * this.ah);\r
61 }\r
62 if (this.affine != null) {\r
63 this.affine.transform (coords, 0, coords, 0, Clazz.doubleToInt (nc / 2));\r
64 }return java.awt.geom.RoundRectIterator.types[this.index];\r
65 }, "~A");\r
66 Clazz.defineStatics (c$,\r
67 "angle", 0.7853981633974483);\r
68 c$.a = c$.prototype.a = 1.0 - Math.cos (0.7853981633974483);\r
69 c$.b = c$.prototype.b = Math.tan (0.7853981633974483);\r
70 c$.c = c$.prototype.c = Math.sqrt (1.0 + java.awt.geom.RoundRectIterator.b * java.awt.geom.RoundRectIterator.b) - 1 + java.awt.geom.RoundRectIterator.a;\r
71 c$.cv = c$.prototype.cv = 1.3333333333333333 * java.awt.geom.RoundRectIterator.a * java.awt.geom.RoundRectIterator.b / java.awt.geom.RoundRectIterator.c;\r
72 c$.acv = c$.prototype.acv = (1.0 - java.awt.geom.RoundRectIterator.cv) / 2.0;\r
73 c$.ctrlpts = c$.prototype.ctrlpts =  Clazz.newArray (-1, [ Clazz.newDoubleArray (-1, [0.0, 0.0, 0.0, 0.5]),  Clazz.newDoubleArray (-1, [0.0, 0.0, 1.0, -0.5]),  Clazz.newDoubleArray (-1, [0.0, 0.0, 1.0, -java.awt.geom.RoundRectIterator.acv, 0.0, java.awt.geom.RoundRectIterator.acv, 1.0, 0.0, 0.0, 0.5, 1.0, 0.0]),  Clazz.newDoubleArray (-1, [1.0, -0.5, 1.0, 0.0]),  Clazz.newDoubleArray (-1, [1.0, -java.awt.geom.RoundRectIterator.acv, 1.0, 0.0, 1.0, 0.0, 1.0, -java.awt.geom.RoundRectIterator.acv, 1.0, 0.0, 1.0, -0.5]),  Clazz.newDoubleArray (-1, [1.0, 0.0, 0.0, 0.5]),  Clazz.newDoubleArray (-1, [1.0, 0.0, 0.0, java.awt.geom.RoundRectIterator.acv, 1.0, -java.awt.geom.RoundRectIterator.acv, 0.0, 0.0, 1.0, -0.5, 0.0, 0.0]),  Clazz.newDoubleArray (-1, [0.0, 0.5, 0.0, 0.0]),  Clazz.newDoubleArray (-1, [0.0, java.awt.geom.RoundRectIterator.acv, 0.0, 0.0, 0.0, 0.0, 0.0, java.awt.geom.RoundRectIterator.acv, 0.0, 0.0, 0.0, 0.5]),  Clazz.newDoubleArray (-1, [])]);\r
74 Clazz.defineStatics (c$,\r
75 "types",  Clazz.newIntArray (-1, [0, 1, 3, 1, 3, 1, 3, 1, 3, 4]));\r
76 });\r