3127449e9db2983a53d9e7476bb21fa5ffa013b4
[jalviewjs.git] / site / j2s / java / awt / geom / Rectangle2D.js
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
5 function () {\r
6 Clazz.superConstructor (this, java.awt.geom.Rectangle2D, []);\r
7 });\r
8 Clazz.defineMethod (c$, "setRect", \r
9 function (r) {\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
14 var out1;\r
15 var out2;\r
16 if ((out2 = this.outcode (x2, y2)) == 0) {\r
17 return true;\r
18 }while ((out1 = this.outcode (x1, y1)) != 0) {\r
19 if ((out1 & out2) != 0) {\r
20 return false;\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
26 x1 = x;\r
27 } else {\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
32 y1 = y;\r
33 }}\r
34 return true;\r
35 }, "~N,~N,~N,~N");\r
36 Clazz.defineMethod (c$, "intersectsLine", \r
37 function (l) {\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
41 function (p) {\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
47 }, "~N,~N,~N,~N");\r
48 Clazz.overrideMethod (c$, "getBounds2D", \r
49 function () {\r
50 return this.clone ();\r
51 });\r
52 Clazz.defineMethod (c$, "contains", \r
53 function (x, y) {\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
57 }, "~N,~N");\r
58 Clazz.defineMethod (c$, "intersects", \r
59 function (x, y, w, h) {\r
60 if (this.isEmpty () || w <= 0 || h <= 0) {\r
61 return false;\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
65 }, "~N,~N,~N,~N");\r
66 Clazz.defineMethod (c$, "contains", \r
67 function (x, y, w, h) {\r
68 if (this.isEmpty () || w <= 0 || h <= 0) {\r
69 return false;\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
73 }, "~N,~N,~N,~N");\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
97 }, "~N,~N");\r
98 Clazz.defineMethod (c$, "add", \r
99 function (pt) {\r
100 this.add (pt.getX (), pt.getY ());\r
101 }, "java.awt.geom.Point2D");\r
102 Clazz.defineMethod (c$, "add", \r
103 function (r) {\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
111 function (at) {\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
119 function () {\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
125 });\r
126 Clazz.overrideMethod (c$, "equals", \r
127 function (obj) {\r
128 if (obj === this) {\r
129 return true;\r
130 }if (Clazz.instanceOf (obj, java.awt.geom.Rectangle2D)) {\r
131 var r2d = obj;\r
132 return ((this.getX () == r2d.getX ()) && (this.getY () == r2d.getY ()) && (this.getWidth () == r2d.getWidth ()) && (this.getHeight () == r2d.getHeight ()));\r
133 }return false;\r
134 }, "~O");\r
135 Clazz.pu$h(self.c$);\r
136 c$ = Clazz.decorateAsClass (function () {\r
137 this.x = 0;\r
138 this.y = 0;\r
139 this.width = 0;\r
140 this.height = 0;\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
146 {\r
147 if (arguments.length == 0)\r
148 return;\r
149 }this.setRect (a, b, c, d);\r
150 }, "~N,~N,~N,~N");\r
151 Clazz.defineMethod (c$, "getX", \r
152 function () {\r
153 return this.x;\r
154 });\r
155 Clazz.defineMethod (c$, "getY", \r
156 function () {\r
157 return this.y;\r
158 });\r
159 Clazz.defineMethod (c$, "getWidth", \r
160 function () {\r
161 return this.width;\r
162 });\r
163 Clazz.defineMethod (c$, "getHeight", \r
164 function () {\r
165 return this.height;\r
166 });\r
167 Clazz.overrideMethod (c$, "isEmpty", \r
168 function () {\r
169 return (this.width <= 0.0) || (this.height <= 0.0);\r
170 });\r
171 Clazz.defineMethod (c$, "setRect", \r
172 function (a, b, c, d) {\r
173 this.x = a;\r
174 this.y = b;\r
175 this.width = c;\r
176 this.height = d;\r
177 }, "~N,~N,~N,~N");\r
178 Clazz.defineMethod (c$, "setRect", \r
179 function (a, b, c, d) {\r
180 this.x = a;\r
181 this.y = b;\r
182 this.width = c;\r
183 this.height = d;\r
184 }, "~N,~N,~N,~N");\r
185 Clazz.defineMethod (c$, "setRect", \r
186 function (a) {\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
193 function (a, b) {\r
194 var c = 0;\r
195 if (this.width <= 0) {\r
196 c |= 5;\r
197 } else if (a < this.x) {\r
198 c |= 1;\r
199 } else if (a > this.x + this.width) {\r
200 c |= 4;\r
201 }if (this.height <= 0) {\r
202 c |= 10;\r
203 } else if (b < this.y) {\r
204 c |= 2;\r
205 } else if (b > this.y + this.height) {\r
206 c |= 8;\r
207 }return c;\r
208 }, "~N,~N");\r
209 Clazz.overrideMethod (c$, "getBounds2D", \r
210 function () {\r
211 return  new java.awt.geom.Rectangle2D.Float (this.x, this.y, this.width, this.height);\r
212 });\r
213 Clazz.overrideMethod (c$, "createIntersection", \r
214 function (a) {\r
215 var b;\r
216 if (Clazz.instanceOf (a, java.awt.geom.Rectangle2D.Float)) {\r
217 b =  new java.awt.geom.Rectangle2D.Float ();\r
218 } else {\r
219 b =  new java.awt.geom.Rectangle2D.Double ();\r
220 }java.awt.geom.Rectangle2D.intersect (this, a, b);\r
221 return b;\r
222 }, "java.awt.geom.Rectangle2D");\r
223 Clazz.overrideMethod (c$, "createUnion", \r
224 function (a) {\r
225 var b;\r
226 if (Clazz.instanceOf (a, java.awt.geom.Rectangle2D.Float)) {\r
227 b =  new java.awt.geom.Rectangle2D.Float ();\r
228 } else {\r
229 b =  new java.awt.geom.Rectangle2D.Double ();\r
230 }java.awt.geom.Rectangle2D.union (this, a, b);\r
231 return b;\r
232 }, "java.awt.geom.Rectangle2D");\r
233 Clazz.overrideMethod (c$, "toString", \r
234 function () {\r
235 return this.getClass ().getName () + "[x=" + this.x + ",y=" + this.y + ",w=" + this.width + ",h=" + this.height + "]";\r
236 });\r
237 c$ = Clazz.p0p ();\r
238 Clazz.pu$h(self.c$);\r
239 c$ = Clazz.decorateAsClass (function () {\r
240 this.x = 0;\r
241 this.y = 0;\r
242 this.width = 0;\r
243 this.height = 0;\r
244 Clazz.instantialize (this, arguments);\r
245 }, java.awt.geom.Rectangle2D, "Double", java.awt.geom.Rectangle2D);\r
246 Clazz.makeConstructor (c$, \r
247 function () {\r
248 Clazz.superConstructor (this, java.awt.geom.Rectangle2D.Double, []);\r
249 });\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
254 }, "~N,~N,~N,~N");\r
255 Clazz.defineMethod (c$, "getX", \r
256 function () {\r
257 return this.x;\r
258 });\r
259 Clazz.defineMethod (c$, "getY", \r
260 function () {\r
261 return this.y;\r
262 });\r
263 Clazz.defineMethod (c$, "getWidth", \r
264 function () {\r
265 return this.width;\r
266 });\r
267 Clazz.defineMethod (c$, "getHeight", \r
268 function () {\r
269 return this.height;\r
270 });\r
271 Clazz.overrideMethod (c$, "isEmpty", \r
272 function () {\r
273 return (this.width <= 0.0) || (this.height <= 0.0);\r
274 });\r
275 Clazz.defineMethod (c$, "setRect", \r
276 function (a, b, c, d) {\r
277 this.x = a;\r
278 this.y = b;\r
279 this.width = c;\r
280 this.height = d;\r
281 }, "~N,~N,~N,~N");\r
282 Clazz.defineMethod (c$, "setRect", \r
283 function (a) {\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
290 function (a, b) {\r
291 var c = 0;\r
292 if (this.width <= 0) {\r
293 c |= 5;\r
294 } else if (a < this.x) {\r
295 c |= 1;\r
296 } else if (a > this.x + this.width) {\r
297 c |= 4;\r
298 }if (this.height <= 0) {\r
299 c |= 10;\r
300 } else if (b < this.y) {\r
301 c |= 2;\r
302 } else if (b > this.y + this.height) {\r
303 c |= 8;\r
304 }return c;\r
305 }, "~N,~N");\r
306 Clazz.overrideMethod (c$, "getBounds2D", \r
307 function () {\r
308 return  new java.awt.geom.Rectangle2D.Double (this.x, this.y, this.width, this.height);\r
309 });\r
310 Clazz.overrideMethod (c$, "createIntersection", \r
311 function (a) {\r
312 var b =  new java.awt.geom.Rectangle2D.Double ();\r
313 java.awt.geom.Rectangle2D.intersect (this, a, b);\r
314 return b;\r
315 }, "java.awt.geom.Rectangle2D");\r
316 Clazz.overrideMethod (c$, "createUnion", \r
317 function (a) {\r
318 var b =  new java.awt.geom.Rectangle2D.Double ();\r
319 java.awt.geom.Rectangle2D.union (this, a, b);\r
320 return b;\r
321 }, "java.awt.geom.Rectangle2D");\r
322 Clazz.overrideMethod (c$, "toString", \r
323 function () {\r
324 return this.getClass ().getName () + "[x=" + this.x + ",y=" + this.y + ",w=" + this.width + ",h=" + this.height + "]";\r
325 });\r
326 c$ = Clazz.p0p ();\r
327 Clazz.defineStatics (c$,\r
328 "OUT_LEFT", 1,\r
329 "OUT_TOP", 2,\r
330 "OUT_RIGHT", 4,\r
331 "OUT_BOTTOM", 8);\r
332 });\r