JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / java / awt / geom / QuadCurve2D.js
1 Clazz.declarePackage ("java.awt.geom");\r
2 Clazz.load (["java.awt.Shape"], "java.awt.geom.QuadCurve2D", ["java.lang.InternalError", "java.awt.geom.FlatteningPathIterator", "$.Line2D", "$.Point2D", "$.QuadIterator", "$.Rectangle2D"], function () {\r
3 c$ = Clazz.declareType (java.awt.geom, "QuadCurve2D", null, [java.awt.Shape, Cloneable]);\r
4 Clazz.makeConstructor (c$, \r
5 function () {\r
6 });\r
7 Clazz.defineMethod (c$, "setCurve", \r
8 function (coords, offset) {\r
9 this.setCurve (coords[offset + 0], coords[offset + 1], coords[offset + 2], coords[offset + 3], coords[offset + 4], coords[offset + 5]);\r
10 }, "~A,~N");\r
11 Clazz.defineMethod (c$, "setCurve", \r
12 function (p1, cp, p2) {\r
13 this.setCurve (p1.getX (), p1.getY (), cp.getX (), cp.getY (), p2.getX (), p2.getY ());\r
14 }, "java.awt.geom.Point2D,java.awt.geom.Point2D,java.awt.geom.Point2D");\r
15 Clazz.defineMethod (c$, "setCurve", \r
16 function (pts, offset) {\r
17 this.setCurve (pts[offset + 0].getX (), pts[offset + 0].getY (), pts[offset + 1].getX (), pts[offset + 1].getY (), pts[offset + 2].getX (), pts[offset + 2].getY ());\r
18 }, "~A,~N");\r
19 Clazz.defineMethod (c$, "setCurve", \r
20 function (c) {\r
21 this.setCurve (c.getX1 (), c.getY1 (), c.getCtrlX (), c.getCtrlY (), c.getX2 (), c.getY2 ());\r
22 }, "java.awt.geom.QuadCurve2D");\r
23 c$.getFlatnessSq = Clazz.defineMethod (c$, "getFlatnessSq", \r
24 function (x1, y1, ctrlx, ctrly, x2, y2) {\r
25 return java.awt.geom.Line2D.ptSegDistSq (x1, y1, x2, y2, ctrlx, ctrly);\r
26 }, "~N,~N,~N,~N,~N,~N");\r
27 c$.getFlatness = Clazz.defineMethod (c$, "getFlatness", \r
28 function (x1, y1, ctrlx, ctrly, x2, y2) {\r
29 return java.awt.geom.Line2D.ptSegDist (x1, y1, x2, y2, ctrlx, ctrly);\r
30 }, "~N,~N,~N,~N,~N,~N");\r
31 c$.getFlatnessSq = Clazz.defineMethod (c$, "getFlatnessSq", \r
32 function (coords, offset) {\r
33 return java.awt.geom.Line2D.ptSegDistSq (coords[offset + 0], coords[offset + 1], coords[offset + 4], coords[offset + 5], coords[offset + 2], coords[offset + 3]);\r
34 }, "~A,~N");\r
35 c$.getFlatness = Clazz.defineMethod (c$, "getFlatness", \r
36 function (coords, offset) {\r
37 return java.awt.geom.Line2D.ptSegDist (coords[offset + 0], coords[offset + 1], coords[offset + 4], coords[offset + 5], coords[offset + 2], coords[offset + 3]);\r
38 }, "~A,~N");\r
39 Clazz.defineMethod (c$, "getFlatnessSq", \r
40 function () {\r
41 return java.awt.geom.Line2D.ptSegDistSq (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), this.getCtrlX (), this.getCtrlY ());\r
42 });\r
43 Clazz.defineMethod (c$, "getFlatness", \r
44 function () {\r
45 return java.awt.geom.Line2D.ptSegDist (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), this.getCtrlX (), this.getCtrlY ());\r
46 });\r
47 Clazz.defineMethod (c$, "subdivide", \r
48 function (left, right) {\r
49 java.awt.geom.QuadCurve2D.subdivide (this, left, right);\r
50 }, "java.awt.geom.QuadCurve2D,java.awt.geom.QuadCurve2D");\r
51 c$.subdivide = Clazz.defineMethod (c$, "subdivide", \r
52 function (src, left, right) {\r
53 var x1 = src.getX1 ();\r
54 var y1 = src.getY1 ();\r
55 var ctrlx = src.getCtrlX ();\r
56 var ctrly = src.getCtrlY ();\r
57 var x2 = src.getX2 ();\r
58 var y2 = src.getY2 ();\r
59 var ctrlx1 = (x1 + ctrlx) / 2.0;\r
60 var ctrly1 = (y1 + ctrly) / 2.0;\r
61 var ctrlx2 = (x2 + ctrlx) / 2.0;\r
62 var ctrly2 = (y2 + ctrly) / 2.0;\r
63 ctrlx = (ctrlx1 + ctrlx2) / 2.0;\r
64 ctrly = (ctrly1 + ctrly2) / 2.0;\r
65 if (left != null) {\r
66 left.setCurve (x1, y1, ctrlx1, ctrly1, ctrlx, ctrly);\r
67 }if (right != null) {\r
68 right.setCurve (ctrlx, ctrly, ctrlx2, ctrly2, x2, y2);\r
69 }}, "java.awt.geom.QuadCurve2D,java.awt.geom.QuadCurve2D,java.awt.geom.QuadCurve2D");\r
70 c$.subdivide = Clazz.defineMethod (c$, "subdivide", \r
71 function (src, srcoff, left, leftoff, right, rightoff) {\r
72 var x1 = src[srcoff + 0];\r
73 var y1 = src[srcoff + 1];\r
74 var ctrlx = src[srcoff + 2];\r
75 var ctrly = src[srcoff + 3];\r
76 var x2 = src[srcoff + 4];\r
77 var y2 = src[srcoff + 5];\r
78 if (left != null) {\r
79 left[leftoff + 0] = x1;\r
80 left[leftoff + 1] = y1;\r
81 }if (right != null) {\r
82 right[rightoff + 4] = x2;\r
83 right[rightoff + 5] = y2;\r
84 }x1 = (x1 + ctrlx) / 2.0;\r
85 y1 = (y1 + ctrly) / 2.0;\r
86 x2 = (x2 + ctrlx) / 2.0;\r
87 y2 = (y2 + ctrly) / 2.0;\r
88 ctrlx = (x1 + x2) / 2.0;\r
89 ctrly = (y1 + y2) / 2.0;\r
90 if (left != null) {\r
91 left[leftoff + 2] = x1;\r
92 left[leftoff + 3] = y1;\r
93 left[leftoff + 4] = ctrlx;\r
94 left[leftoff + 5] = ctrly;\r
95 }if (right != null) {\r
96 right[rightoff + 0] = ctrlx;\r
97 right[rightoff + 1] = ctrly;\r
98 right[rightoff + 2] = x2;\r
99 right[rightoff + 3] = y2;\r
100 }}, "~A,~N,~A,~N,~A,~N");\r
101 c$.solveQuadratic = Clazz.defineMethod (c$, "solveQuadratic", \r
102 function (eqn) {\r
103 return java.awt.geom.QuadCurve2D.solveQuadratic (eqn, eqn);\r
104 }, "~A");\r
105 c$.solveQuadratic = Clazz.defineMethod (c$, "solveQuadratic", \r
106 function (eqn, res) {\r
107 var a = eqn[2];\r
108 var b = eqn[1];\r
109 var c = eqn[0];\r
110 var roots = 0;\r
111 if (a == 0.0) {\r
112 if (b == 0.0) {\r
113 return -1;\r
114 }res[roots++] = -c / b;\r
115 } else {\r
116 var d = b * b - 4.0 * a * c;\r
117 if (d < 0.0) {\r
118 return 0;\r
119 }d = Math.sqrt (d);\r
120 if (b < 0.0) {\r
121 d = -d;\r
122 }var q = (b + d) / -2.0;\r
123 res[roots++] = q / a;\r
124 if (q != 0.0) {\r
125 res[roots++] = c / q;\r
126 }}return roots;\r
127 }, "~A,~A");\r
128 Clazz.defineMethod (c$, "contains", \r
129 function (x, y) {\r
130 var x1 = this.getX1 ();\r
131 var y1 = this.getY1 ();\r
132 var xc = this.getCtrlX ();\r
133 var yc = this.getCtrlY ();\r
134 var x2 = this.getX2 ();\r
135 var y2 = this.getY2 ();\r
136 var kx = x1 - 2 * xc + x2;\r
137 var ky = y1 - 2 * yc + y2;\r
138 var dx = x - x1;\r
139 var dy = y - y1;\r
140 var dxl = x2 - x1;\r
141 var dyl = y2 - y1;\r
142 var t0 = (dx * ky - dy * kx) / (dxl * ky - dyl * kx);\r
143 if (t0 < 0 || t0 > 1 || t0 != t0) {\r
144 return false;\r
145 }var xb = kx * t0 * t0 + 2 * (xc - x1) * t0 + x1;\r
146 var yb = ky * t0 * t0 + 2 * (yc - y1) * t0 + y1;\r
147 var xl = dxl * t0 + x1;\r
148 var yl = dyl * t0 + y1;\r
149 return (x >= xb && x < xl) || (x >= xl && x < xb) || (y >= yb && y < yl) || (y >= yl && y < yb);\r
150 }, "~N,~N");\r
151 Clazz.defineMethod (c$, "contains", \r
152 function (p) {\r
153 return this.contains (p.getX (), p.getY ());\r
154 }, "java.awt.geom.Point2D");\r
155 c$.fillEqn = Clazz.defineMethod (c$, "fillEqn", \r
156  function (eqn, val, c1, cp, c2) {\r
157 eqn[0] = c1 - val;\r
158 eqn[1] = cp + cp - c1 - c1;\r
159 eqn[2] = c1 - cp - cp + c2;\r
160 return;\r
161 }, "~A,~N,~N,~N,~N");\r
162 c$.evalQuadratic = Clazz.defineMethod (c$, "evalQuadratic", \r
163  function (vals, num, include0, include1, inflect, c1, ctrl, c2) {\r
164 var j = 0;\r
165 for (var i = 0; i < num; i++) {\r
166 var t = vals[i];\r
167 if ((include0 ? t >= 0 : t > 0) && (include1 ? t <= 1 : t < 1) && (inflect == null || inflect[1] + 2 * inflect[2] * t != 0)) {\r
168 var u = 1 - t;\r
169 vals[j++] = c1 * u * u + 2 * ctrl * t * u + c2 * t * t;\r
170 }}\r
171 return j;\r
172 }, "~A,~N,~B,~B,~A,~N,~N,~N");\r
173 c$.getTag = Clazz.defineMethod (c$, "getTag", \r
174  function (coord, low, high) {\r
175 if (coord <= low) {\r
176 return (coord < low ? -2 : -1);\r
177 }if (coord >= high) {\r
178 return (coord > high ? 2 : 1);\r
179 }return 0;\r
180 }, "~N,~N,~N");\r
181 c$.inwards = Clazz.defineMethod (c$, "inwards", \r
182  function (pttag, opt1tag, opt2tag) {\r
183 switch (pttag) {\r
184 case -2:\r
185 case 2:\r
186 default:\r
187 return false;\r
188 case -1:\r
189 return (opt1tag >= 0 || opt2tag >= 0);\r
190 case 0:\r
191 return true;\r
192 case 1:\r
193 return (opt1tag <= 0 || opt2tag <= 0);\r
194 }\r
195 }, "~N,~N,~N");\r
196 Clazz.defineMethod (c$, "intersects", \r
197 function (x, y, w, h) {\r
198 if (w <= 0 || h <= 0) {\r
199 return false;\r
200 }var x1 = this.getX1 ();\r
201 var y1 = this.getY1 ();\r
202 var x1tag = java.awt.geom.QuadCurve2D.getTag (x1, x, x + w);\r
203 var y1tag = java.awt.geom.QuadCurve2D.getTag (y1, y, y + h);\r
204 if (x1tag == 0 && y1tag == 0) {\r
205 return true;\r
206 }var x2 = this.getX2 ();\r
207 var y2 = this.getY2 ();\r
208 var x2tag = java.awt.geom.QuadCurve2D.getTag (x2, x, x + w);\r
209 var y2tag = java.awt.geom.QuadCurve2D.getTag (y2, y, y + h);\r
210 if (x2tag == 0 && y2tag == 0) {\r
211 return true;\r
212 }var ctrlx = this.getCtrlX ();\r
213 var ctrly = this.getCtrlY ();\r
214 var ctrlxtag = java.awt.geom.QuadCurve2D.getTag (ctrlx, x, x + w);\r
215 var ctrlytag = java.awt.geom.QuadCurve2D.getTag (ctrly, y, y + h);\r
216 if (x1tag < 0 && x2tag < 0 && ctrlxtag < 0) {\r
217 return false;\r
218 }if (y1tag < 0 && y2tag < 0 && ctrlytag < 0) {\r
219 return false;\r
220 }if (x1tag > 0 && x2tag > 0 && ctrlxtag > 0) {\r
221 return false;\r
222 }if (y1tag > 0 && y2tag > 0 && ctrlytag > 0) {\r
223 return false;\r
224 }if (java.awt.geom.QuadCurve2D.inwards (x1tag, x2tag, ctrlxtag) && java.awt.geom.QuadCurve2D.inwards (y1tag, y2tag, ctrlytag)) {\r
225 return true;\r
226 }if (java.awt.geom.QuadCurve2D.inwards (x2tag, x1tag, ctrlxtag) && java.awt.geom.QuadCurve2D.inwards (y2tag, y1tag, ctrlytag)) {\r
227 return true;\r
228 }var xoverlap = (x1tag * x2tag <= 0);\r
229 var yoverlap = (y1tag * y2tag <= 0);\r
230 if (x1tag == 0 && x2tag == 0 && yoverlap) {\r
231 return true;\r
232 }if (y1tag == 0 && y2tag == 0 && xoverlap) {\r
233 return true;\r
234 }var eqn =  Clazz.newDoubleArray (3, 0);\r
235 var res =  Clazz.newDoubleArray (3, 0);\r
236 if (!yoverlap) {\r
237 java.awt.geom.QuadCurve2D.fillEqn (eqn, (y1tag < 0 ? y : y + h), y1, ctrly, y2);\r
238 return (java.awt.geom.QuadCurve2D.solveQuadratic (eqn, res) == 2 && java.awt.geom.QuadCurve2D.evalQuadratic (res, 2, true, true, null, x1, ctrlx, x2) == 2 && java.awt.geom.QuadCurve2D.getTag (res[0], x, x + w) * java.awt.geom.QuadCurve2D.getTag (res[1], x, x + w) <= 0);\r
239 }if (!xoverlap) {\r
240 java.awt.geom.QuadCurve2D.fillEqn (eqn, (x1tag < 0 ? x : x + w), x1, ctrlx, x2);\r
241 return (java.awt.geom.QuadCurve2D.solveQuadratic (eqn, res) == 2 && java.awt.geom.QuadCurve2D.evalQuadratic (res, 2, true, true, null, y1, ctrly, y2) == 2 && java.awt.geom.QuadCurve2D.getTag (res[0], y, y + h) * java.awt.geom.QuadCurve2D.getTag (res[1], y, y + h) <= 0);\r
242 }var dx = x2 - x1;\r
243 var dy = y2 - y1;\r
244 var k = y2 * x1 - x2 * y1;\r
245 var c1tag;\r
246 var c2tag;\r
247 if (y1tag == 0) {\r
248 c1tag = x1tag;\r
249 } else {\r
250 c1tag = java.awt.geom.QuadCurve2D.getTag ((k + dx * (y1tag < 0 ? y : y + h)) / dy, x, x + w);\r
251 }if (y2tag == 0) {\r
252 c2tag = x2tag;\r
253 } else {\r
254 c2tag = java.awt.geom.QuadCurve2D.getTag ((k + dx * (y2tag < 0 ? y : y + h)) / dy, x, x + w);\r
255 }if (c1tag * c2tag <= 0) {\r
256 return true;\r
257 }c1tag = ((c1tag * x1tag <= 0) ? y1tag : y2tag);\r
258 java.awt.geom.QuadCurve2D.fillEqn (eqn, (c2tag < 0 ? x : x + w), x1, ctrlx, x2);\r
259 var num = java.awt.geom.QuadCurve2D.solveQuadratic (eqn, res);\r
260 java.awt.geom.QuadCurve2D.evalQuadratic (res, num, true, true, null, y1, ctrly, y2);\r
261 c2tag = java.awt.geom.QuadCurve2D.getTag (res[0], y, y + h);\r
262 return (c1tag * c2tag <= 0);\r
263 }, "~N,~N,~N,~N");\r
264 Clazz.defineMethod (c$, "intersects", \r
265 function (r) {\r
266 return this.intersects (r.getX (), r.getY (), r.getWidth (), r.getHeight ());\r
267 }, "java.awt.geom.Rectangle2D");\r
268 Clazz.defineMethod (c$, "contains", \r
269 function (x, y, w, h) {\r
270 if (w <= 0 || h <= 0) {\r
271 return false;\r
272 }return (this.contains (x, y) && this.contains (x + w, y) && this.contains (x + w, y + h) && this.contains (x, y + h));\r
273 }, "~N,~N,~N,~N");\r
274 Clazz.defineMethod (c$, "contains", \r
275 function (r) {\r
276 return this.contains (r.getX (), r.getY (), r.getWidth (), r.getHeight ());\r
277 }, "java.awt.geom.Rectangle2D");\r
278 Clazz.overrideMethod (c$, "getBounds", \r
279 function () {\r
280 return this.getBounds2D ().getBounds ();\r
281 });\r
282 Clazz.defineMethod (c$, "getPathIterator", \r
283 function (at) {\r
284 return  new java.awt.geom.QuadIterator (this, at);\r
285 }, "java.awt.geom.AffineTransform");\r
286 Clazz.defineMethod (c$, "getPathIterator", \r
287 function (at, flatness) {\r
288 return  new java.awt.geom.FlatteningPathIterator (this.getPathIterator (at), flatness);\r
289 }, "java.awt.geom.AffineTransform,~N");\r
290 Clazz.defineMethod (c$, "clone", \r
291 function () {\r
292 try {\r
293 return Clazz.superCall (this, java.awt.geom.QuadCurve2D, "clone", []);\r
294 } catch (e) {\r
295 if (Clazz.exceptionOf (e, CloneNotSupportedException)) {\r
296 throw  new InternalError ();\r
297 } else {\r
298 throw e;\r
299 }\r
300 }\r
301 });\r
302 Clazz.pu$h(self.c$);\r
303 c$ = Clazz.decorateAsClass (function () {\r
304 this.x1 = 0;\r
305 this.y1 = 0;\r
306 this.ctrlx = 0;\r
307 this.ctrly = 0;\r
308 this.x2 = 0;\r
309 this.y2 = 0;\r
310 Clazz.instantialize (this, arguments);\r
311 }, java.awt.geom.QuadCurve2D, "Float", java.awt.geom.QuadCurve2D);\r
312 Clazz.makeConstructor (c$, \r
313 function () {\r
314 Clazz.superConstructor (this, java.awt.geom.QuadCurve2D.Float, []);\r
315 });\r
316 Clazz.makeConstructor (c$, \r
317 function (a, b, c, d, e, f) {\r
318 Clazz.superConstructor (this, java.awt.geom.QuadCurve2D.Float, []);\r
319 this.setCurve (a, b, c, d, e, f);\r
320 }, "~N,~N,~N,~N,~N,~N");\r
321 Clazz.overrideMethod (c$, "getX1", \r
322 function () {\r
323 return this.x1;\r
324 });\r
325 Clazz.overrideMethod (c$, "getY1", \r
326 function () {\r
327 return this.y1;\r
328 });\r
329 Clazz.overrideMethod (c$, "getP1", \r
330 function () {\r
331 return  new java.awt.geom.Point2D.Float (this.x1, this.y1);\r
332 });\r
333 Clazz.overrideMethod (c$, "getCtrlX", \r
334 function () {\r
335 return this.ctrlx;\r
336 });\r
337 Clazz.overrideMethod (c$, "getCtrlY", \r
338 function () {\r
339 return this.ctrly;\r
340 });\r
341 Clazz.overrideMethod (c$, "getCtrlPt", \r
342 function () {\r
343 return  new java.awt.geom.Point2D.Float (this.ctrlx, this.ctrly);\r
344 });\r
345 Clazz.overrideMethod (c$, "getX2", \r
346 function () {\r
347 return this.x2;\r
348 });\r
349 Clazz.overrideMethod (c$, "getY2", \r
350 function () {\r
351 return this.y2;\r
352 });\r
353 Clazz.overrideMethod (c$, "getP2", \r
354 function () {\r
355 return  new java.awt.geom.Point2D.Float (this.x2, this.y2);\r
356 });\r
357 Clazz.defineMethod (c$, "setCurve", \r
358 function (a, b, c, d, e, f) {\r
359 this.x1 = a;\r
360 this.y1 = b;\r
361 this.ctrlx = c;\r
362 this.ctrly = d;\r
363 this.x2 = e;\r
364 this.y2 = f;\r
365 }, "~N,~N,~N,~N,~N,~N");\r
366 Clazz.defineMethod (c$, "setCurve", \r
367 function (a, b, c, d, e, f) {\r
368 this.x1 = a;\r
369 this.y1 = b;\r
370 this.ctrlx = c;\r
371 this.ctrly = d;\r
372 this.x2 = e;\r
373 this.y2 = f;\r
374 }, "~N,~N,~N,~N,~N,~N");\r
375 Clazz.overrideMethod (c$, "getBounds2D", \r
376 function () {\r
377 var a = Math.min (Math.min (this.x1, this.x2), this.ctrlx);\r
378 var b = Math.min (Math.min (this.y1, this.y2), this.ctrly);\r
379 var c = Math.max (Math.max (this.x1, this.x2), this.ctrlx);\r
380 var d = Math.max (Math.max (this.y1, this.y2), this.ctrly);\r
381 return  new java.awt.geom.Rectangle2D.Float (a, b, c - a, d - b);\r
382 });\r
383 c$ = Clazz.p0p ();\r
384 Clazz.pu$h(self.c$);\r
385 c$ = Clazz.decorateAsClass (function () {\r
386 this.x1 = 0;\r
387 this.y1 = 0;\r
388 this.ctrlx = 0;\r
389 this.ctrly = 0;\r
390 this.x2 = 0;\r
391 this.y2 = 0;\r
392 Clazz.instantialize (this, arguments);\r
393 }, java.awt.geom.QuadCurve2D, "Double", java.awt.geom.QuadCurve2D);\r
394 Clazz.makeConstructor (c$, \r
395 function () {\r
396 Clazz.superConstructor (this, java.awt.geom.QuadCurve2D.Double, []);\r
397 });\r
398 Clazz.makeConstructor (c$, \r
399 function (a, b, c, d, e, f) {\r
400 Clazz.superConstructor (this, java.awt.geom.QuadCurve2D.Double, []);\r
401 this.setCurve (a, b, c, d, e, f);\r
402 }, "~N,~N,~N,~N,~N,~N");\r
403 Clazz.overrideMethod (c$, "getX1", \r
404 function () {\r
405 return this.x1;\r
406 });\r
407 Clazz.overrideMethod (c$, "getY1", \r
408 function () {\r
409 return this.y1;\r
410 });\r
411 Clazz.overrideMethod (c$, "getP1", \r
412 function () {\r
413 return  new java.awt.geom.Point2D.Double (this.x1, this.y1);\r
414 });\r
415 Clazz.overrideMethod (c$, "getCtrlX", \r
416 function () {\r
417 return this.ctrlx;\r
418 });\r
419 Clazz.overrideMethod (c$, "getCtrlY", \r
420 function () {\r
421 return this.ctrly;\r
422 });\r
423 Clazz.overrideMethod (c$, "getCtrlPt", \r
424 function () {\r
425 return  new java.awt.geom.Point2D.Double (this.ctrlx, this.ctrly);\r
426 });\r
427 Clazz.overrideMethod (c$, "getX2", \r
428 function () {\r
429 return this.x2;\r
430 });\r
431 Clazz.overrideMethod (c$, "getY2", \r
432 function () {\r
433 return this.y2;\r
434 });\r
435 Clazz.overrideMethod (c$, "getP2", \r
436 function () {\r
437 return  new java.awt.geom.Point2D.Double (this.x2, this.y2);\r
438 });\r
439 Clazz.defineMethod (c$, "setCurve", \r
440 function (a, b, c, d, e, f) {\r
441 this.x1 = a;\r
442 this.y1 = b;\r
443 this.ctrlx = c;\r
444 this.ctrly = d;\r
445 this.x2 = e;\r
446 this.y2 = f;\r
447 }, "~N,~N,~N,~N,~N,~N");\r
448 Clazz.overrideMethod (c$, "getBounds2D", \r
449 function () {\r
450 var a = Math.min (Math.min (this.x1, this.x2), this.ctrlx);\r
451 var b = Math.min (Math.min (this.y1, this.y2), this.ctrly);\r
452 var c = Math.max (Math.max (this.x1, this.x2), this.ctrlx);\r
453 var d = Math.max (Math.max (this.y1, this.y2), this.ctrly);\r
454 return  new java.awt.geom.Rectangle2D.Double (a, b, c - a, d - b);\r
455 });\r
456 c$ = Clazz.p0p ();\r
457 Clazz.defineStatics (c$,\r
458 "BELOW", -2,\r
459 "LOWEDGE", -1,\r
460 "INSIDE", 0,\r
461 "HIGHEDGE", 1,\r
462 "ABOVE", 2);\r
463 });\r