1 Clazz.declarePackage ("java.awt.geom");
\r
2 Clazz.load (["java.awt.geom.RectangularShape"], "java.awt.geom.Rectangle2D", ["java.lang.Double", "java.awt.geom.RectIterator"], function () {
\r
3 c$ = Clazz.declareType (java.awt.geom, "Rectangle2D", java.awt.geom.RectangularShape);
\r
4 Clazz.makeConstructor (c$,
\r
6 Clazz.superConstructor (this, java.awt.geom.Rectangle2D, []);
\r
8 Clazz.defineMethod (c$, "setRect",
\r
10 this.setRect (r.getX (), r.getY (), r.getWidth (), r.getHeight ());
\r
11 }, "java.awt.geom.Rectangle2D");
\r
12 Clazz.defineMethod (c$, "intersectsLine",
\r
13 function (x1, y1, x2, y2) {
\r
16 if ((out2 = this.outcode (x2, y2)) == 0) {
\r
18 }while ((out1 = this.outcode (x1, y1)) != 0) {
\r
19 if ((out1 & out2) != 0) {
\r
21 }if ((out1 & (5)) != 0) {
\r
22 var x = this.getX ();
\r
23 if ((out1 & 4) != 0) {
\r
24 x += this.getWidth ();
\r
25 }y1 = y1 + (x - x1) * (y2 - y1) / (x2 - x1);
\r
28 var y = this.getY ();
\r
29 if ((out1 & 8) != 0) {
\r
30 y += this.getHeight ();
\r
31 }x1 = x1 + (y - y1) * (x2 - x1) / (y2 - y1);
\r
36 Clazz.defineMethod (c$, "intersectsLine",
\r
38 return this.intersectsLine (l.getX1 (), l.getY1 (), l.getX2 (), l.getY2 ());
\r
39 }, "java.awt.geom.Line2D");
\r
40 Clazz.defineMethod (c$, "outcode",
\r
42 return this.outcode (p.getX (), p.getY ());
\r
43 }, "java.awt.geom.Point2D");
\r
44 Clazz.defineMethod (c$, "setFrame",
\r
45 function (x, y, w, h) {
\r
46 this.setRect (x, y, w, h);
\r
48 Clazz.overrideMethod (c$, "getBounds2D",
\r
50 return this.clone ();
\r
52 Clazz.defineMethod (c$, "contains",
\r
54 var x0 = this.getX ();
\r
55 var y0 = this.getY ();
\r
56 return (x >= x0 && y >= y0 && x < x0 + this.getWidth () && y < y0 + this.getHeight ());
\r
58 Clazz.defineMethod (c$, "intersects",
\r
59 function (x, y, w, h) {
\r
60 if (this.isEmpty () || w <= 0 || h <= 0) {
\r
62 }var x0 = this.getX ();
\r
63 var y0 = this.getY ();
\r
64 return (x + w > x0 && y + h > y0 && x < x0 + this.getWidth () && y < y0 + this.getHeight ());
\r
66 Clazz.defineMethod (c$, "contains",
\r
67 function (x, y, w, h) {
\r
68 if (this.isEmpty () || w <= 0 || h <= 0) {
\r
70 }var x0 = this.getX ();
\r
71 var y0 = this.getY ();
\r
72 return (x >= x0 && y >= y0 && (x + w) <= x0 + this.getWidth () && (y + h) <= y0 + this.getHeight ());
\r
74 c$.intersect = Clazz.defineMethod (c$, "intersect",
\r
75 function (src1, src2, dest) {
\r
76 var x1 = Math.max (src1.getMinX (), src2.getMinX ());
\r
77 var y1 = Math.max (src1.getMinY (), src2.getMinY ());
\r
78 var x2 = Math.min (src1.getMaxX (), src2.getMaxX ());
\r
79 var y2 = Math.min (src1.getMaxY (), src2.getMaxY ());
\r
80 dest.setFrame (x1, y1, x2 - x1, y2 - y1);
\r
81 }, "java.awt.geom.Rectangle2D,java.awt.geom.Rectangle2D,java.awt.geom.Rectangle2D");
\r
82 c$.union = Clazz.defineMethod (c$, "union",
\r
83 function (src1, src2, dest) {
\r
84 var x1 = Math.min (src1.getMinX (), src2.getMinX ());
\r
85 var y1 = Math.min (src1.getMinY (), src2.getMinY ());
\r
86 var x2 = Math.max (src1.getMaxX (), src2.getMaxX ());
\r
87 var y2 = Math.max (src1.getMaxY (), src2.getMaxY ());
\r
88 dest.setFrameFromDiagonal (x1, y1, x2, y2);
\r
89 }, "java.awt.geom.Rectangle2D,java.awt.geom.Rectangle2D,java.awt.geom.Rectangle2D");
\r
90 Clazz.defineMethod (c$, "add",
\r
91 function (newx, newy) {
\r
92 var x1 = Math.min (this.getMinX (), newx);
\r
93 var x2 = Math.max (this.getMaxX (), newx);
\r
94 var y1 = Math.min (this.getMinY (), newy);
\r
95 var y2 = Math.max (this.getMaxY (), newy);
\r
96 this.setRect (x1, y1, x2 - x1, y2 - y1);
\r
98 Clazz.defineMethod (c$, "add",
\r
100 this.add (pt.getX (), pt.getY ());
\r
101 }, "java.awt.geom.Point2D");
\r
102 Clazz.defineMethod (c$, "add",
\r
104 var x1 = Math.min (this.getMinX (), r.getMinX ());
\r
105 var x2 = Math.max (this.getMaxX (), r.getMaxX ());
\r
106 var y1 = Math.min (this.getMinY (), r.getMinY ());
\r
107 var y2 = Math.max (this.getMaxY (), r.getMaxY ());
\r
108 this.setRect (x1, y1, x2 - x1, y2 - y1);
\r
109 }, "java.awt.geom.Rectangle2D");
\r
110 Clazz.defineMethod (c$, "getPathIterator",
\r
112 return new java.awt.geom.RectIterator (this, at);
\r
113 }, "java.awt.geom.AffineTransform");
\r
114 Clazz.defineMethod (c$, "getPathIterator",
\r
115 function (at, flatness) {
\r
116 return new java.awt.geom.RectIterator (this, at);
\r
117 }, "java.awt.geom.AffineTransform,~N");
\r
118 Clazz.overrideMethod (c$, "hashCode",
\r
120 var bits = java.lang.Double.doubleToLongBits (this.getX ());
\r
121 bits += java.lang.Double.doubleToLongBits (this.getY ()) * 37;
\r
122 bits += java.lang.Double.doubleToLongBits (this.getWidth ()) * 43;
\r
123 bits += java.lang.Double.doubleToLongBits (this.getHeight ()) * 47;
\r
124 return ((bits) ^ ((bits >> 32)));
\r
126 Clazz.overrideMethod (c$, "equals",
\r
128 if (obj === this) {
\r
130 }if (Clazz.instanceOf (obj, java.awt.geom.Rectangle2D)) {
\r
132 return ((this.getX () == r2d.getX ()) && (this.getY () == r2d.getY ()) && (this.getWidth () == r2d.getWidth ()) && (this.getHeight () == r2d.getHeight ()));
\r
135 Clazz.pu$h(self.c$);
\r
136 c$ = Clazz.decorateAsClass (function () {
\r
141 Clazz.instantialize (this, arguments);
\r
142 }, java.awt.geom.Rectangle2D, "Float", java.awt.geom.Rectangle2D);
\r
143 Clazz.makeConstructor (c$,
\r
144 function (a, b, c, d) {
\r
145 Clazz.superConstructor (this, java.awt.geom.Rectangle2D.Float, []);
\r
147 if (arguments.length == 0)
\r
149 }this.setRect (a, b, c, d);
\r
151 Clazz.defineMethod (c$, "getX",
\r
155 Clazz.defineMethod (c$, "getY",
\r
159 Clazz.defineMethod (c$, "getWidth",
\r
163 Clazz.defineMethod (c$, "getHeight",
\r
165 return this.height;
\r
167 Clazz.overrideMethod (c$, "isEmpty",
\r
169 return (this.width <= 0.0) || (this.height <= 0.0);
\r
171 Clazz.defineMethod (c$, "setRect",
\r
172 function (a, b, c, d) {
\r
178 Clazz.defineMethod (c$, "setRect",
\r
179 function (a, b, c, d) {
\r
185 Clazz.defineMethod (c$, "setRect",
\r
187 this.x = a.getX ();
\r
188 this.y = a.getY ();
\r
189 this.width = a.getWidth ();
\r
190 this.height = a.getHeight ();
\r
191 }, "java.awt.geom.Rectangle2D");
\r
192 Clazz.defineMethod (c$, "outcode",
\r
195 if (this.width <= 0) {
\r
197 } else if (a < this.x) {
\r
199 } else if (a > this.x + this.width) {
\r
201 }if (this.height <= 0) {
\r
203 } else if (b < this.y) {
\r
205 } else if (b > this.y + this.height) {
\r
209 Clazz.overrideMethod (c$, "getBounds2D",
\r
211 return new java.awt.geom.Rectangle2D.Float (this.x, this.y, this.width, this.height);
\r
213 Clazz.overrideMethod (c$, "createIntersection",
\r
216 if (Clazz.instanceOf (a, java.awt.geom.Rectangle2D.Float)) {
\r
217 b = new java.awt.geom.Rectangle2D.Float ();
\r
219 b = new java.awt.geom.Rectangle2D.Double ();
\r
220 }java.awt.geom.Rectangle2D.intersect (this, a, b);
\r
222 }, "java.awt.geom.Rectangle2D");
\r
223 Clazz.overrideMethod (c$, "createUnion",
\r
226 if (Clazz.instanceOf (a, java.awt.geom.Rectangle2D.Float)) {
\r
227 b = new java.awt.geom.Rectangle2D.Float ();
\r
229 b = new java.awt.geom.Rectangle2D.Double ();
\r
230 }java.awt.geom.Rectangle2D.union (this, a, b);
\r
232 }, "java.awt.geom.Rectangle2D");
\r
233 Clazz.overrideMethod (c$, "toString",
\r
235 return this.getClass ().getName () + "[x=" + this.x + ",y=" + this.y + ",w=" + this.width + ",h=" + this.height + "]";
\r
238 Clazz.pu$h(self.c$);
\r
239 c$ = Clazz.decorateAsClass (function () {
\r
244 Clazz.instantialize (this, arguments);
\r
245 }, java.awt.geom.Rectangle2D, "Double", java.awt.geom.Rectangle2D);
\r
246 Clazz.makeConstructor (c$,
\r
248 Clazz.superConstructor (this, java.awt.geom.Rectangle2D.Double, []);
\r
250 Clazz.makeConstructor (c$,
\r
251 function (a, b, c, d) {
\r
252 Clazz.superConstructor (this, java.awt.geom.Rectangle2D.Double, []);
\r
253 this.setRect (a, b, c, d);
\r
255 Clazz.defineMethod (c$, "getX",
\r
259 Clazz.defineMethod (c$, "getY",
\r
263 Clazz.defineMethod (c$, "getWidth",
\r
267 Clazz.defineMethod (c$, "getHeight",
\r
269 return this.height;
\r
271 Clazz.overrideMethod (c$, "isEmpty",
\r
273 return (this.width <= 0.0) || (this.height <= 0.0);
\r
275 Clazz.defineMethod (c$, "setRect",
\r
276 function (a, b, c, d) {
\r
282 Clazz.defineMethod (c$, "setRect",
\r
284 this.x = a.getX ();
\r
285 this.y = a.getY ();
\r
286 this.width = a.getWidth ();
\r
287 this.height = a.getHeight ();
\r
288 }, "java.awt.geom.Rectangle2D");
\r
289 Clazz.defineMethod (c$, "outcode",
\r
292 if (this.width <= 0) {
\r
294 } else if (a < this.x) {
\r
296 } else if (a > this.x + this.width) {
\r
298 }if (this.height <= 0) {
\r
300 } else if (b < this.y) {
\r
302 } else if (b > this.y + this.height) {
\r
306 Clazz.overrideMethod (c$, "getBounds2D",
\r
308 return new java.awt.geom.Rectangle2D.Double (this.x, this.y, this.width, this.height);
\r
310 Clazz.overrideMethod (c$, "createIntersection",
\r
312 var b = new java.awt.geom.Rectangle2D.Double ();
\r
313 java.awt.geom.Rectangle2D.intersect (this, a, b);
\r
315 }, "java.awt.geom.Rectangle2D");
\r
316 Clazz.overrideMethod (c$, "createUnion",
\r
318 var b = new java.awt.geom.Rectangle2D.Double ();
\r
319 java.awt.geom.Rectangle2D.union (this, a, b);
\r
321 }, "java.awt.geom.Rectangle2D");
\r
322 Clazz.overrideMethod (c$, "toString",
\r
324 return this.getClass ().getName () + "[x=" + this.x + ",y=" + this.y + ",w=" + this.width + ",h=" + this.height + "]";
\r
327 Clazz.defineStatics (c$,
\r