1 Clazz.declarePackage ("java.awt.geom");
2 Clazz.load (["java.awt.Shape"], "java.awt.geom.CubicCurve2D", ["java.lang.InternalError", "java.util.Arrays", "java.awt.geom.FlatteningPathIterator", "$.Line2D", "$.Point2D", "$.QuadCurve2D", "$.Rectangle2D", "jssun.awt.geom.Curve", "swingjs.api.Interface"], function () {
3 c$ = Clazz.declareType (java.awt.geom, "CubicCurve2D", null, [java.awt.Shape, Cloneable]);
4 Clazz.makeConstructor (c$,
7 Clazz.defineMethod (c$, "setCurve",
8 function (coords, offset) {
9 this.setCurve (coords[offset + 0], coords[offset + 1], coords[offset + 2], coords[offset + 3], coords[offset + 4], coords[offset + 5], coords[offset + 6], coords[offset + 7]);
11 Clazz.defineMethod (c$, "setCurve",
12 function (p1, cp1, cp2, p2) {
13 this.setCurve (p1.getX (), p1.getY (), cp1.getX (), cp1.getY (), cp2.getX (), cp2.getY (), p2.getX (), p2.getY ());
14 }, "java.awt.geom.Point2D,java.awt.geom.Point2D,java.awt.geom.Point2D,java.awt.geom.Point2D");
15 Clazz.defineMethod (c$, "setCurve",
16 function (pts, offset) {
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 (), pts[offset + 3].getX (), pts[offset + 3].getY ());
19 Clazz.defineMethod (c$, "setCurve",
21 this.setCurve (c.getX1 (), c.getY1 (), c.getCtrlX1 (), c.getCtrlY1 (), c.getCtrlX2 (), c.getCtrlY2 (), c.getX2 (), c.getY2 ());
22 }, "java.awt.geom.CubicCurve2D");
23 c$.getFlatnessSq = Clazz.defineMethod (c$, "getFlatnessSq",
24 function (x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2) {
25 return Math.max (java.awt.geom.Line2D.ptSegDistSq (x1, y1, x2, y2, ctrlx1, ctrly1), java.awt.geom.Line2D.ptSegDistSq (x1, y1, x2, y2, ctrlx2, ctrly2));
26 }, "~N,~N,~N,~N,~N,~N,~N,~N");
27 c$.getFlatness = Clazz.defineMethod (c$, "getFlatness",
28 function (x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2) {
29 return Math.sqrt (java.awt.geom.CubicCurve2D.getFlatnessSq (x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2));
30 }, "~N,~N,~N,~N,~N,~N,~N,~N");
31 c$.getFlatnessSq = Clazz.defineMethod (c$, "getFlatnessSq",
32 function (coords, offset) {
33 return java.awt.geom.CubicCurve2D.getFlatnessSq (coords[offset + 0], coords[offset + 1], coords[offset + 2], coords[offset + 3], coords[offset + 4], coords[offset + 5], coords[offset + 6], coords[offset + 7]);
35 c$.getFlatness = Clazz.defineMethod (c$, "getFlatness",
36 function (coords, offset) {
37 return java.awt.geom.CubicCurve2D.getFlatness (coords[offset + 0], coords[offset + 1], coords[offset + 2], coords[offset + 3], coords[offset + 4], coords[offset + 5], coords[offset + 6], coords[offset + 7]);
39 Clazz.defineMethod (c$, "getFlatnessSq",
41 return java.awt.geom.CubicCurve2D.getFlatnessSq (this.getX1 (), this.getY1 (), this.getCtrlX1 (), this.getCtrlY1 (), this.getCtrlX2 (), this.getCtrlY2 (), this.getX2 (), this.getY2 ());
43 Clazz.defineMethod (c$, "getFlatness",
45 return java.awt.geom.CubicCurve2D.getFlatness (this.getX1 (), this.getY1 (), this.getCtrlX1 (), this.getCtrlY1 (), this.getCtrlX2 (), this.getCtrlY2 (), this.getX2 (), this.getY2 ());
47 Clazz.defineMethod (c$, "subdivide",
48 function (left, right) {
49 java.awt.geom.CubicCurve2D.subdivide (this, left, right);
50 }, "java.awt.geom.CubicCurve2D,java.awt.geom.CubicCurve2D");
51 c$.subdivide = Clazz.defineMethod (c$, "subdivide",
52 function (src, left, right) {
53 var x1 = src.getX1 ();
54 var y1 = src.getY1 ();
55 var ctrlx1 = src.getCtrlX1 ();
56 var ctrly1 = src.getCtrlY1 ();
57 var ctrlx2 = src.getCtrlX2 ();
58 var ctrly2 = src.getCtrlY2 ();
59 var x2 = src.getX2 ();
60 var y2 = src.getY2 ();
61 var centerx = (ctrlx1 + ctrlx2) / 2.0;
62 var centery = (ctrly1 + ctrly2) / 2.0;
63 ctrlx1 = (x1 + ctrlx1) / 2.0;
64 ctrly1 = (y1 + ctrly1) / 2.0;
65 ctrlx2 = (x2 + ctrlx2) / 2.0;
66 ctrly2 = (y2 + ctrly2) / 2.0;
67 var ctrlx12 = (ctrlx1 + centerx) / 2.0;
68 var ctrly12 = (ctrly1 + centery) / 2.0;
69 var ctrlx21 = (ctrlx2 + centerx) / 2.0;
70 var ctrly21 = (ctrly2 + centery) / 2.0;
71 centerx = (ctrlx12 + ctrlx21) / 2.0;
72 centery = (ctrly12 + ctrly21) / 2.0;
74 left.setCurve (x1, y1, ctrlx1, ctrly1, ctrlx12, ctrly12, centerx, centery);
76 right.setCurve (centerx, centery, ctrlx21, ctrly21, ctrlx2, ctrly2, x2, y2);
77 }}, "java.awt.geom.CubicCurve2D,java.awt.geom.CubicCurve2D,java.awt.geom.CubicCurve2D");
78 c$.subdivide = Clazz.defineMethod (c$, "subdivide",
79 function (src, srcoff, left, leftoff, right, rightoff) {
80 var x1 = src[srcoff + 0];
81 var y1 = src[srcoff + 1];
82 var ctrlx1 = src[srcoff + 2];
83 var ctrly1 = src[srcoff + 3];
84 var ctrlx2 = src[srcoff + 4];
85 var ctrly2 = src[srcoff + 5];
86 var x2 = src[srcoff + 6];
87 var y2 = src[srcoff + 7];
89 left[leftoff + 0] = x1;
90 left[leftoff + 1] = y1;
92 right[rightoff + 6] = x2;
93 right[rightoff + 7] = y2;
94 }x1 = (x1 + ctrlx1) / 2.0;
95 y1 = (y1 + ctrly1) / 2.0;
96 x2 = (x2 + ctrlx2) / 2.0;
97 y2 = (y2 + ctrly2) / 2.0;
98 var centerx = (ctrlx1 + ctrlx2) / 2.0;
99 var centery = (ctrly1 + ctrly2) / 2.0;
100 ctrlx1 = (x1 + centerx) / 2.0;
101 ctrly1 = (y1 + centery) / 2.0;
102 ctrlx2 = (x2 + centerx) / 2.0;
103 ctrly2 = (y2 + centery) / 2.0;
104 centerx = (ctrlx1 + ctrlx2) / 2.0;
105 centery = (ctrly1 + ctrly2) / 2.0;
107 left[leftoff + 2] = x1;
108 left[leftoff + 3] = y1;
109 left[leftoff + 4] = ctrlx1;
110 left[leftoff + 5] = ctrly1;
111 left[leftoff + 6] = centerx;
112 left[leftoff + 7] = centery;
113 }if (right != null) {
114 right[rightoff + 0] = centerx;
115 right[rightoff + 1] = centery;
116 right[rightoff + 2] = ctrlx2;
117 right[rightoff + 3] = ctrly2;
118 right[rightoff + 4] = x2;
119 right[rightoff + 5] = y2;
120 }}, "~A,~N,~A,~N,~A,~N");
121 c$.solveCubic = Clazz.defineMethod (c$, "solveCubic",
123 return java.awt.geom.CubicCurve2D.solveCubic (eqn, eqn);
125 c$.solveCubic = Clazz.defineMethod (c$, "solveCubic",
126 function (eqn, res) {
129 return java.awt.geom.QuadCurve2D.solveQuadratic (eqn, res);
134 var Q = (a * a - 3.0 * b) / 9.0;
135 var R = (2.0 * a * a * a - 9.0 * a * b + 27.0 * c) / 54.0;
140 var theta = Math.acos (R / Math.sqrt (Q3));
141 Q = -2.0 * Math.sqrt (Q);
143 eqn = Clazz.newDoubleArray (4, 0);
144 System.arraycopy (res, 0, eqn, 0, 4);
145 }res[roots++] = Q * Math.cos (theta / 3.0) - a;
146 res[roots++] = Q * Math.cos ((theta + 6.283185307179586) / 3.0) - a;
147 res[roots++] = Q * Math.cos ((theta - 6.283185307179586) / 3.0) - a;
148 java.awt.geom.CubicCurve2D.fixRoots (res, eqn);
151 var S = Math.sqrt (R2 - Q3);
154 }var A = Math.pow (R + S, 0.3333333333333333);
157 }var B = (A == 0.0) ? 0.0 : (Q / A);
158 res[roots++] = (A + B) - a;
161 c$.fixRoots = Clazz.defineMethod (c$, "fixRoots",
162 function (res, eqn) {
164 for (var i = 0; i < 3; i++) {
166 if (Math.abs (t) < 1.0E-5) {
167 res[i] = java.awt.geom.CubicCurve2D.findZero (t, 0, eqn);
168 } else if (Math.abs (t - 1) < 1.0E-5) {
169 res[i] = java.awt.geom.CubicCurve2D.findZero (t, 1, eqn);
172 c$.solveEqn = Clazz.defineMethod (c$, "solveEqn",
173 function (eqn, order, t) {
175 while (--order >= 0) {
176 v = v * t + eqn[order];
180 c$.findZero = Clazz.defineMethod (c$, "findZero",
181 function (t, target, eqn) {
182 var slopeqn = Clazz.newDoubleArray (-1, [eqn[1], 2 * eqn[2], 3 * eqn[3]]);
187 slope = java.awt.geom.CubicCurve2D.solveEqn (slopeqn, 2, t);
190 }var y = java.awt.geom.CubicCurve2D.solveEqn (eqn, 3, t);
193 }var delta = -(y / slope);
194 if (origdelta == 0) {
197 if (delta < 0) return t;
198 } else if (t > target) {
199 if (delta > 0) return t;
201 return (delta > 0 ? (target + 4.9E-324) : (target - 4.9E-324));
202 }var newt = t + delta;
205 }if (delta * origdelta < 0) {
206 var tag = (origt < t ? java.awt.geom.CubicCurve2D.getTag (target, origt, t) : java.awt.geom.CubicCurve2D.getTag (target, t, origt));
208 return (origt + t) / 2;
214 Clazz.defineMethod (c$, "contains",
216 if (!(x * 0.0 + y * 0.0 == 0.0)) {
218 }var x1 = this.getX1 ();
219 var y1 = this.getY1 ();
220 var x2 = this.getX2 ();
221 var y2 = this.getY2 ();
222 var crossings = (jssun.awt.geom.Curve.pointCrossingsForLine (x, y, x1, y1, x2, y2) + jssun.awt.geom.Curve.pointCrossingsForCubic (x, y, x1, y1, this.getCtrlX1 (), this.getCtrlY1 (), this.getCtrlX2 (), this.getCtrlY2 (), x2, y2, 0));
223 return ((crossings & 1) == 1);
225 Clazz.defineMethod (c$, "contains",
227 return this.contains (p.getX (), p.getY ());
228 }, "java.awt.geom.Point2D");
229 c$.fillEqn = Clazz.defineMethod (c$, "fillEqn",
230 function (eqn, val, c1, cp1, cp2, c2) {
232 eqn[1] = (cp1 - c1) * 3.0;
233 eqn[2] = (cp2 - cp1 - cp1 + c1) * 3.0;
234 eqn[3] = c2 + (cp1 - cp2) * 3.0 - c1;
236 }, "~A,~N,~N,~N,~N,~N");
237 c$.evalCubic = Clazz.defineMethod (c$, "evalCubic",
238 function (vals, num, include0, include1, inflect, c1, cp1, cp2, c2) {
240 for (var i = 0; i < num; i++) {
242 if ((include0 ? t >= 0 : t > 0) && (include1 ? t <= 1 : t < 1) && (inflect == null || inflect[1] + (2 * inflect[2] + 3 * inflect[3] * t) * t != 0)) {
244 vals[j++] = c1 * u * u * u + 3 * cp1 * t * u * u + 3 * cp2 * t * t * u + c2 * t * t * t;
247 }, "~A,~N,~B,~B,~A,~N,~N,~N,~N");
248 c$.getTag = Clazz.defineMethod (c$, "getTag",
249 function (coord, low, high) {
251 return (coord < low ? -2 : -1);
252 }if (coord >= high) {
253 return (coord > high ? 2 : 1);
256 c$.inwards = Clazz.defineMethod (c$, "inwards",
257 function (pttag, opt1tag, opt2tag) {
264 return (opt1tag >= 0 || opt2tag >= 0);
268 return (opt1tag <= 0 || opt2tag <= 0);
271 Clazz.defineMethod (c$, "intersects",
272 function (x, y, w, h) {
273 if (w <= 0 || h <= 0) {
275 }var x1 = this.getX1 ();
276 var y1 = this.getY1 ();
277 var x1tag = java.awt.geom.CubicCurve2D.getTag (x1, x, x + w);
278 var y1tag = java.awt.geom.CubicCurve2D.getTag (y1, y, y + h);
279 if (x1tag == 0 && y1tag == 0) {
281 }var x2 = this.getX2 ();
282 var y2 = this.getY2 ();
283 var x2tag = java.awt.geom.CubicCurve2D.getTag (x2, x, x + w);
284 var y2tag = java.awt.geom.CubicCurve2D.getTag (y2, y, y + h);
285 if (x2tag == 0 && y2tag == 0) {
287 }var ctrlx1 = this.getCtrlX1 ();
288 var ctrly1 = this.getCtrlY1 ();
289 var ctrlx2 = this.getCtrlX2 ();
290 var ctrly2 = this.getCtrlY2 ();
291 var ctrlx1tag = java.awt.geom.CubicCurve2D.getTag (ctrlx1, x, x + w);
292 var ctrly1tag = java.awt.geom.CubicCurve2D.getTag (ctrly1, y, y + h);
293 var ctrlx2tag = java.awt.geom.CubicCurve2D.getTag (ctrlx2, x, x + w);
294 var ctrly2tag = java.awt.geom.CubicCurve2D.getTag (ctrly2, y, y + h);
295 if (x1tag < 0 && x2tag < 0 && ctrlx1tag < 0 && ctrlx2tag < 0) {
297 }if (y1tag < 0 && y2tag < 0 && ctrly1tag < 0 && ctrly2tag < 0) {
299 }if (x1tag > 0 && x2tag > 0 && ctrlx1tag > 0 && ctrlx2tag > 0) {
301 }if (y1tag > 0 && y2tag > 0 && ctrly1tag > 0 && ctrly2tag > 0) {
303 }if (java.awt.geom.CubicCurve2D.inwards (x1tag, x2tag, ctrlx1tag) && java.awt.geom.CubicCurve2D.inwards (y1tag, y2tag, ctrly1tag)) {
305 }if (java.awt.geom.CubicCurve2D.inwards (x2tag, x1tag, ctrlx2tag) && java.awt.geom.CubicCurve2D.inwards (y2tag, y1tag, ctrly2tag)) {
307 }var xoverlap = (x1tag * x2tag <= 0);
308 var yoverlap = (y1tag * y2tag <= 0);
309 if (x1tag == 0 && x2tag == 0 && yoverlap) {
311 }if (y1tag == 0 && y2tag == 0 && xoverlap) {
313 }var eqn = Clazz.newDoubleArray (4, 0);
314 var res = Clazz.newDoubleArray (4, 0);
316 java.awt.geom.CubicCurve2D.fillEqn (eqn, (y1tag < 0 ? y : y + h), y1, ctrly1, ctrly2, y2);
317 var num = java.awt.geom.CubicCurve2D.solveCubic (eqn, res);
318 num = java.awt.geom.CubicCurve2D.evalCubic (res, num, true, true, null, x1, ctrlx1, ctrlx2, x2);
319 return (num == 2 && java.awt.geom.CubicCurve2D.getTag (res[0], x, x + w) * java.awt.geom.CubicCurve2D.getTag (res[1], x, x + w) <= 0);
321 java.awt.geom.CubicCurve2D.fillEqn (eqn, (x1tag < 0 ? x : x + w), x1, ctrlx1, ctrlx2, x2);
322 var num = java.awt.geom.CubicCurve2D.solveCubic (eqn, res);
323 num = java.awt.geom.CubicCurve2D.evalCubic (res, num, true, true, null, y1, ctrly1, ctrly2, y2);
324 return (num == 2 && java.awt.geom.CubicCurve2D.getTag (res[0], y, y + h) * java.awt.geom.CubicCurve2D.getTag (res[1], y, y + h) <= 0);
327 var k = y2 * x1 - x2 * y1;
333 c1tag = java.awt.geom.CubicCurve2D.getTag ((k + dx * (y1tag < 0 ? y : y + h)) / dy, x, x + w);
337 c2tag = java.awt.geom.CubicCurve2D.getTag ((k + dx * (y2tag < 0 ? y : y + h)) / dy, x, x + w);
338 }if (c1tag * c2tag <= 0) {
340 }c1tag = ((c1tag * x1tag <= 0) ? y1tag : y2tag);
341 java.awt.geom.CubicCurve2D.fillEqn (eqn, (c2tag < 0 ? x : x + w), x1, ctrlx1, ctrlx2, x2);
342 var num = java.awt.geom.CubicCurve2D.solveCubic (eqn, res);
343 num = java.awt.geom.CubicCurve2D.evalCubic (res, num, true, true, null, y1, ctrly1, ctrly2, y2);
344 var tags = Clazz.newIntArray (num + 1, 0);
345 for (var i = 0; i < num; i++) {
346 tags[i] = java.awt.geom.CubicCurve2D.getTag (res[i], y, y + h);
349 java.util.Arrays.sort (tags);
350 return ((num >= 1 && tags[0] * tags[1] <= 0) || (num >= 3 && tags[2] * tags[3] <= 0));
352 Clazz.defineMethod (c$, "intersects",
354 return this.intersects (r.getX (), r.getY (), r.getWidth (), r.getHeight ());
355 }, "java.awt.geom.Rectangle2D");
356 Clazz.defineMethod (c$, "contains",
357 function (x, y, w, h) {
358 if (w <= 0 || h <= 0) {
360 }if (!(this.contains (x, y) && this.contains (x + w, y) && this.contains (x + w, y + h) && this.contains (x, y + h))) {
362 }var rect = new java.awt.geom.Rectangle2D.Double (x, y, w, h);
363 return !rect.intersectsLine (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 ());
365 Clazz.defineMethod (c$, "contains",
367 return this.contains (r.getX (), r.getY (), r.getWidth (), r.getHeight ());
368 }, "java.awt.geom.Rectangle2D");
369 Clazz.overrideMethod (c$, "getBounds",
371 return this.getBounds2D ().getBounds ();
373 Clazz.defineMethod (c$, "getPathIterator",
375 return (swingjs.api.Interface.getInstance ("java.awt.geom.CubicInterator", false)).set (this, at);
376 }, "java.awt.geom.AffineTransform");
377 Clazz.defineMethod (c$, "getPathIterator",
378 function (at, flatness) {
379 return new java.awt.geom.FlatteningPathIterator (this.getPathIterator (at), flatness);
380 }, "java.awt.geom.AffineTransform,~N");
381 Clazz.defineMethod (c$, "clone",
384 return Clazz.superCall (this, java.awt.geom.CubicCurve2D, "clone", []);
386 if (Clazz.exceptionOf (e, CloneNotSupportedException)) {
387 throw new InternalError ();
394 c$ = Clazz.decorateAsClass (function () {
403 Clazz.instantialize (this, arguments);
404 }, java.awt.geom.CubicCurve2D, "Float", java.awt.geom.CubicCurve2D);
405 Clazz.makeConstructor (c$,
407 Clazz.superConstructor (this, java.awt.geom.CubicCurve2D.Float, []);
409 Clazz.makeConstructor (c$,
410 function (a, b, c, d, e, f, g, h) {
411 Clazz.superConstructor (this, java.awt.geom.CubicCurve2D.Float, []);
412 this.setCurve (a, b, c, d, e, f, g, h);
413 }, "~N,~N,~N,~N,~N,~N,~N,~N");
414 Clazz.overrideMethod (c$, "getX1",
418 Clazz.overrideMethod (c$, "getY1",
422 Clazz.overrideMethod (c$, "getP1",
424 return new java.awt.geom.Point2D.Float (this.x1, this.y1);
426 Clazz.overrideMethod (c$, "getCtrlX1",
430 Clazz.overrideMethod (c$, "getCtrlY1",
434 Clazz.overrideMethod (c$, "getCtrlP1",
436 return new java.awt.geom.Point2D.Float (this.ctrlx1, this.ctrly1);
438 Clazz.overrideMethod (c$, "getCtrlX2",
442 Clazz.overrideMethod (c$, "getCtrlY2",
446 Clazz.overrideMethod (c$, "getCtrlP2",
448 return new java.awt.geom.Point2D.Float (this.ctrlx2, this.ctrly2);
450 Clazz.overrideMethod (c$, "getX2",
454 Clazz.overrideMethod (c$, "getY2",
458 Clazz.overrideMethod (c$, "getP2",
460 return new java.awt.geom.Point2D.Float (this.x2, this.y2);
462 Clazz.defineMethod (c$, "setCurve",
463 function (a, b, c, d, e, f, g, h) {
472 }, "~N,~N,~N,~N,~N,~N,~N,~N");
473 Clazz.defineMethod (c$, "setCurve",
474 function (a, b, c, d, e, f, g, h) {
483 }, "~N,~N,~N,~N,~N,~N,~N,~N");
484 Clazz.overrideMethod (c$, "getBounds2D",
486 var a = Math.min (Math.min (this.x1, this.x2), Math.min (this.ctrlx1, this.ctrlx2));
487 var b = Math.min (Math.min (this.y1, this.y2), Math.min (this.ctrly1, this.ctrly2));
488 var c = Math.max (Math.max (this.x1, this.x2), Math.max (this.ctrlx1, this.ctrlx2));
489 var d = Math.max (Math.max (this.y1, this.y2), Math.max (this.ctrly1, this.ctrly2));
490 return new java.awt.geom.Rectangle2D.Float (a, b, c - a, d - b);
494 c$ = Clazz.decorateAsClass (function () {
503 Clazz.instantialize (this, arguments);
504 }, java.awt.geom.CubicCurve2D, "Double", java.awt.geom.CubicCurve2D);
505 Clazz.makeConstructor (c$,
507 Clazz.superConstructor (this, java.awt.geom.CubicCurve2D.Double, []);
509 Clazz.makeConstructor (c$,
510 function (a, b, c, d, e, f, g, h) {
511 Clazz.superConstructor (this, java.awt.geom.CubicCurve2D.Double, []);
512 this.setCurve (a, b, c, d, e, f, g, h);
513 }, "~N,~N,~N,~N,~N,~N,~N,~N");
514 Clazz.overrideMethod (c$, "getX1",
518 Clazz.overrideMethod (c$, "getY1",
522 Clazz.overrideMethod (c$, "getP1",
524 return new java.awt.geom.Point2D.Double (this.x1, this.y1);
526 Clazz.overrideMethod (c$, "getCtrlX1",
530 Clazz.overrideMethod (c$, "getCtrlY1",
534 Clazz.overrideMethod (c$, "getCtrlP1",
536 return new java.awt.geom.Point2D.Double (this.ctrlx1, this.ctrly1);
538 Clazz.overrideMethod (c$, "getCtrlX2",
542 Clazz.overrideMethod (c$, "getCtrlY2",
546 Clazz.overrideMethod (c$, "getCtrlP2",
548 return new java.awt.geom.Point2D.Double (this.ctrlx2, this.ctrly2);
550 Clazz.overrideMethod (c$, "getX2",
554 Clazz.overrideMethod (c$, "getY2",
558 Clazz.overrideMethod (c$, "getP2",
560 return new java.awt.geom.Point2D.Double (this.x2, this.y2);
562 Clazz.defineMethod (c$, "setCurve",
563 function (a, b, c, d, e, f, g, h) {
572 }, "~N,~N,~N,~N,~N,~N,~N,~N");
573 Clazz.overrideMethod (c$, "getBounds2D",
575 var a = Math.min (Math.min (this.x1, this.x2), Math.min (this.ctrlx1, this.ctrlx2));
576 var b = Math.min (Math.min (this.y1, this.y2), Math.min (this.ctrly1, this.ctrly2));
577 var c = Math.max (Math.max (this.x1, this.x2), Math.max (this.ctrlx1, this.ctrlx2));
578 var d = Math.max (Math.max (this.y1, this.y2), Math.max (this.ctrly1, this.ctrly2));
579 return new java.awt.geom.Rectangle2D.Double (a, b, c - a, d - b);
582 Clazz.defineStatics (c$,