JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / java / awt / geom / Line2D.js
1 Clazz.declarePackage ("java.awt.geom");\r
2 Clazz.load (["java.awt.Shape"], "java.awt.geom.Line2D", ["java.lang.InternalError", "java.awt.geom.LineIterator", "$.Point2D", "$.Rectangle2D"], function () {\r
3 c$ = Clazz.declareType (java.awt.geom, "Line2D", null, [java.awt.Shape, Cloneable]);\r
4 Clazz.makeConstructor (c$, \r
5 function () {\r
6 });\r
7 Clazz.defineMethod (c$, "setLine", \r
8 function (p1, p2) {\r
9 this.setLine (p1.getX (), p1.getY (), p2.getX (), p2.getY ());\r
10 }, "java.awt.geom.Point2D,java.awt.geom.Point2D");\r
11 Clazz.defineMethod (c$, "setLine", \r
12 function (l) {\r
13 this.setLine (l.getX1 (), l.getY1 (), l.getX2 (), l.getY2 ());\r
14 }, "java.awt.geom.Line2D");\r
15 c$.relativeCCW = Clazz.defineMethod (c$, "relativeCCW", \r
16 function (x1, y1, x2, y2, px, py) {\r
17 x2 -= x1;\r
18 y2 -= y1;\r
19 px -= x1;\r
20 py -= y1;\r
21 var ccw = px * y2 - py * x2;\r
22 if (ccw == 0.0) {\r
23 ccw = px * x2 + py * y2;\r
24 if (ccw > 0.0) {\r
25 px -= x2;\r
26 py -= y2;\r
27 ccw = px * x2 + py * y2;\r
28 if (ccw < 0.0) {\r
29 ccw = 0.0;\r
30 }}}return (ccw < 0.0) ? -1 : ((ccw > 0.0) ? 1 : 0);\r
31 }, "~N,~N,~N,~N,~N,~N");\r
32 Clazz.defineMethod (c$, "relativeCCW", \r
33 function (px, py) {\r
34 return java.awt.geom.Line2D.relativeCCW (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), px, py);\r
35 }, "~N,~N");\r
36 Clazz.defineMethod (c$, "relativeCCW", \r
37 function (p) {\r
38 return java.awt.geom.Line2D.relativeCCW (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), p.getX (), p.getY ());\r
39 }, "java.awt.geom.Point2D");\r
40 c$.linesIntersect = Clazz.defineMethod (c$, "linesIntersect", \r
41 function (x1, y1, x2, y2, x3, y3, x4, y4) {\r
42 return ((java.awt.geom.Line2D.relativeCCW (x1, y1, x2, y2, x3, y3) * java.awt.geom.Line2D.relativeCCW (x1, y1, x2, y2, x4, y4) <= 0) && (java.awt.geom.Line2D.relativeCCW (x3, y3, x4, y4, x1, y1) * java.awt.geom.Line2D.relativeCCW (x3, y3, x4, y4, x2, y2) <= 0));\r
43 }, "~N,~N,~N,~N,~N,~N,~N,~N");\r
44 Clazz.defineMethod (c$, "intersectsLine", \r
45 function (x1, y1, x2, y2) {\r
46 return java.awt.geom.Line2D.linesIntersect (x1, y1, x2, y2, this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 ());\r
47 }, "~N,~N,~N,~N");\r
48 Clazz.defineMethod (c$, "intersectsLine", \r
49 function (l) {\r
50 return java.awt.geom.Line2D.linesIntersect (l.getX1 (), l.getY1 (), l.getX2 (), l.getY2 (), this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 ());\r
51 }, "java.awt.geom.Line2D");\r
52 c$.ptSegDistSq = Clazz.defineMethod (c$, "ptSegDistSq", \r
53 function (x1, y1, x2, y2, px, py) {\r
54 x2 -= x1;\r
55 y2 -= y1;\r
56 px -= x1;\r
57 py -= y1;\r
58 var dotprod = px * x2 + py * y2;\r
59 var projlenSq;\r
60 if (dotprod <= 0.0) {\r
61 projlenSq = 0.0;\r
62 } else {\r
63 px = x2 - px;\r
64 py = y2 - py;\r
65 dotprod = px * x2 + py * y2;\r
66 if (dotprod <= 0.0) {\r
67 projlenSq = 0.0;\r
68 } else {\r
69 projlenSq = dotprod * dotprod / (x2 * x2 + y2 * y2);\r
70 }}var lenSq = px * px + py * py - projlenSq;\r
71 if (lenSq < 0) {\r
72 lenSq = 0;\r
73 }return lenSq;\r
74 }, "~N,~N,~N,~N,~N,~N");\r
75 c$.ptSegDist = Clazz.defineMethod (c$, "ptSegDist", \r
76 function (x1, y1, x2, y2, px, py) {\r
77 return Math.sqrt (java.awt.geom.Line2D.ptSegDistSq (x1, y1, x2, y2, px, py));\r
78 }, "~N,~N,~N,~N,~N,~N");\r
79 Clazz.defineMethod (c$, "ptSegDistSq", \r
80 function (px, py) {\r
81 return java.awt.geom.Line2D.ptSegDistSq (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), px, py);\r
82 }, "~N,~N");\r
83 Clazz.defineMethod (c$, "ptSegDistSq", \r
84 function (pt) {\r
85 return java.awt.geom.Line2D.ptSegDistSq (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), pt.getX (), pt.getY ());\r
86 }, "java.awt.geom.Point2D");\r
87 Clazz.defineMethod (c$, "ptSegDist", \r
88 function (px, py) {\r
89 return java.awt.geom.Line2D.ptSegDist (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), px, py);\r
90 }, "~N,~N");\r
91 Clazz.defineMethod (c$, "ptSegDist", \r
92 function (pt) {\r
93 return java.awt.geom.Line2D.ptSegDist (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), pt.getX (), pt.getY ());\r
94 }, "java.awt.geom.Point2D");\r
95 c$.ptLineDistSq = Clazz.defineMethod (c$, "ptLineDistSq", \r
96 function (x1, y1, x2, y2, px, py) {\r
97 x2 -= x1;\r
98 y2 -= y1;\r
99 px -= x1;\r
100 py -= y1;\r
101 var dotprod = px * x2 + py * y2;\r
102 var projlenSq = dotprod * dotprod / (x2 * x2 + y2 * y2);\r
103 var lenSq = px * px + py * py - projlenSq;\r
104 if (lenSq < 0) {\r
105 lenSq = 0;\r
106 }return lenSq;\r
107 }, "~N,~N,~N,~N,~N,~N");\r
108 c$.ptLineDist = Clazz.defineMethod (c$, "ptLineDist", \r
109 function (x1, y1, x2, y2, px, py) {\r
110 return Math.sqrt (java.awt.geom.Line2D.ptLineDistSq (x1, y1, x2, y2, px, py));\r
111 }, "~N,~N,~N,~N,~N,~N");\r
112 Clazz.defineMethod (c$, "ptLineDistSq", \r
113 function (px, py) {\r
114 return java.awt.geom.Line2D.ptLineDistSq (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), px, py);\r
115 }, "~N,~N");\r
116 Clazz.defineMethod (c$, "ptLineDistSq", \r
117 function (pt) {\r
118 return java.awt.geom.Line2D.ptLineDistSq (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), pt.getX (), pt.getY ());\r
119 }, "java.awt.geom.Point2D");\r
120 Clazz.defineMethod (c$, "ptLineDist", \r
121 function (px, py) {\r
122 return java.awt.geom.Line2D.ptLineDist (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), px, py);\r
123 }, "~N,~N");\r
124 Clazz.defineMethod (c$, "ptLineDist", \r
125 function (pt) {\r
126 return java.awt.geom.Line2D.ptLineDist (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 (), pt.getX (), pt.getY ());\r
127 }, "java.awt.geom.Point2D");\r
128 Clazz.defineMethod (c$, "contains", \r
129 function (x, y) {\r
130 return false;\r
131 }, "~N,~N");\r
132 Clazz.defineMethod (c$, "contains", \r
133 function (p) {\r
134 return false;\r
135 }, "java.awt.geom.Point2D");\r
136 Clazz.defineMethod (c$, "intersects", \r
137 function (x, y, w, h) {\r
138 return this.intersects ( new java.awt.geom.Rectangle2D.Double (x, y, w, h));\r
139 }, "~N,~N,~N,~N");\r
140 Clazz.defineMethod (c$, "intersects", \r
141 function (r) {\r
142 return r.intersectsLine (this.getX1 (), this.getY1 (), this.getX2 (), this.getY2 ());\r
143 }, "java.awt.geom.Rectangle2D");\r
144 Clazz.defineMethod (c$, "contains", \r
145 function (x, y, w, h) {\r
146 return false;\r
147 }, "~N,~N,~N,~N");\r
148 Clazz.defineMethod (c$, "contains", \r
149 function (r) {\r
150 return false;\r
151 }, "java.awt.geom.Rectangle2D");\r
152 Clazz.overrideMethod (c$, "getBounds", \r
153 function () {\r
154 return this.getBounds2D ().getBounds ();\r
155 });\r
156 Clazz.defineMethod (c$, "getPathIterator", \r
157 function (at) {\r
158 return  new java.awt.geom.LineIterator (this, at);\r
159 }, "java.awt.geom.AffineTransform");\r
160 Clazz.defineMethod (c$, "getPathIterator", \r
161 function (at, flatness) {\r
162 return  new java.awt.geom.LineIterator (this, at);\r
163 }, "java.awt.geom.AffineTransform,~N");\r
164 Clazz.defineMethod (c$, "clone", \r
165 function () {\r
166 try {\r
167 return Clazz.superCall (this, java.awt.geom.Line2D, "clone", []);\r
168 } catch (e) {\r
169 if (Clazz.exceptionOf (e, CloneNotSupportedException)) {\r
170 throw  new InternalError ();\r
171 } else {\r
172 throw e;\r
173 }\r
174 }\r
175 });\r
176 Clazz.pu$h(self.c$);\r
177 c$ = Clazz.decorateAsClass (function () {\r
178 this.x1 = 0;\r
179 this.y1 = 0;\r
180 this.x2 = 0;\r
181 this.y2 = 0;\r
182 Clazz.instantialize (this, arguments);\r
183 }, java.awt.geom.Line2D, "Float", java.awt.geom.Line2D);\r
184 Clazz.makeConstructor (c$, \r
185 function () {\r
186 Clazz.superConstructor (this, java.awt.geom.Line2D.Float, []);\r
187 });\r
188 Clazz.makeConstructor (c$, \r
189 function (a, b, c, d) {\r
190 Clazz.superConstructor (this, java.awt.geom.Line2D.Float, []);\r
191 this.setLine (a, b, c, d);\r
192 }, "~N,~N,~N,~N");\r
193 Clazz.makeConstructor (c$, \r
194 function (a, b) {\r
195 Clazz.superConstructor (this, java.awt.geom.Line2D.Float, []);\r
196 this.setLine (a, b);\r
197 }, "java.awt.geom.Point2D,java.awt.geom.Point2D");\r
198 Clazz.overrideMethod (c$, "getX1", \r
199 function () {\r
200 return this.x1;\r
201 });\r
202 Clazz.overrideMethod (c$, "getY1", \r
203 function () {\r
204 return this.y1;\r
205 });\r
206 Clazz.overrideMethod (c$, "getP1", \r
207 function () {\r
208 return  new java.awt.geom.Point2D.Float (this.x1, this.y1);\r
209 });\r
210 Clazz.overrideMethod (c$, "getX2", \r
211 function () {\r
212 return this.x2;\r
213 });\r
214 Clazz.overrideMethod (c$, "getY2", \r
215 function () {\r
216 return this.y2;\r
217 });\r
218 Clazz.overrideMethod (c$, "getP2", \r
219 function () {\r
220 return  new java.awt.geom.Point2D.Float (this.x2, this.y2);\r
221 });\r
222 Clazz.defineMethod (c$, "setLine", \r
223 function (a, b, c, d) {\r
224 this.x1 = a;\r
225 this.y1 = b;\r
226 this.x2 = c;\r
227 this.y2 = d;\r
228 }, "~N,~N,~N,~N");\r
229 Clazz.defineMethod (c$, "setLine", \r
230 function (a, b, c, d) {\r
231 this.x1 = a;\r
232 this.y1 = b;\r
233 this.x2 = c;\r
234 this.y2 = d;\r
235 }, "~N,~N,~N,~N");\r
236 Clazz.overrideMethod (c$, "getBounds2D", \r
237 function () {\r
238 var a;\r
239 var b;\r
240 var c;\r
241 var d;\r
242 if (this.x1 < this.x2) {\r
243 a = this.x1;\r
244 c = this.x2 - this.x1;\r
245 } else {\r
246 a = this.x2;\r
247 c = this.x1 - this.x2;\r
248 }if (this.y1 < this.y2) {\r
249 b = this.y1;\r
250 d = this.y2 - this.y1;\r
251 } else {\r
252 b = this.y2;\r
253 d = this.y1 - this.y2;\r
254 }return  new java.awt.geom.Rectangle2D.Float (a, b, c, d);\r
255 });\r
256 c$ = Clazz.p0p ();\r
257 Clazz.pu$h(self.c$);\r
258 c$ = Clazz.decorateAsClass (function () {\r
259 this.x1 = 0;\r
260 this.y1 = 0;\r
261 this.x2 = 0;\r
262 this.y2 = 0;\r
263 Clazz.instantialize (this, arguments);\r
264 }, java.awt.geom.Line2D, "Double", java.awt.geom.Line2D);\r
265 Clazz.makeConstructor (c$, \r
266 function () {\r
267 Clazz.superConstructor (this, java.awt.geom.Line2D.Double, []);\r
268 });\r
269 Clazz.makeConstructor (c$, \r
270 function (a, b, c, d) {\r
271 Clazz.superConstructor (this, java.awt.geom.Line2D.Double, []);\r
272 this.setLine (a, b, c, d);\r
273 }, "~N,~N,~N,~N");\r
274 Clazz.makeConstructor (c$, \r
275 function (a, b) {\r
276 Clazz.superConstructor (this, java.awt.geom.Line2D.Double, []);\r
277 this.setLine (a, b);\r
278 }, "java.awt.geom.Point2D,java.awt.geom.Point2D");\r
279 Clazz.overrideMethod (c$, "getX1", \r
280 function () {\r
281 return this.x1;\r
282 });\r
283 Clazz.overrideMethod (c$, "getY1", \r
284 function () {\r
285 return this.y1;\r
286 });\r
287 Clazz.overrideMethod (c$, "getP1", \r
288 function () {\r
289 return  new java.awt.geom.Point2D.Double (this.x1, this.y1);\r
290 });\r
291 Clazz.overrideMethod (c$, "getX2", \r
292 function () {\r
293 return this.x2;\r
294 });\r
295 Clazz.overrideMethod (c$, "getY2", \r
296 function () {\r
297 return this.y2;\r
298 });\r
299 Clazz.overrideMethod (c$, "getP2", \r
300 function () {\r
301 return  new java.awt.geom.Point2D.Double (this.x2, this.y2);\r
302 });\r
303 Clazz.defineMethod (c$, "setLine", \r
304 function (a, b, c, d) {\r
305 this.x1 = a;\r
306 this.y1 = b;\r
307 this.x2 = c;\r
308 this.y2 = d;\r
309 }, "~N,~N,~N,~N");\r
310 Clazz.overrideMethod (c$, "getBounds2D", \r
311 function () {\r
312 var a;\r
313 var b;\r
314 var c;\r
315 var d;\r
316 if (this.x1 < this.x2) {\r
317 a = this.x1;\r
318 c = this.x2 - this.x1;\r
319 } else {\r
320 a = this.x2;\r
321 c = this.x1 - this.x2;\r
322 }if (this.y1 < this.y2) {\r
323 b = this.y1;\r
324 d = this.y2 - this.y1;\r
325 } else {\r
326 b = this.y2;\r
327 d = this.y1 - this.y2;\r
328 }return  new java.awt.geom.Rectangle2D.Double (a, b, c, d);\r
329 });\r
330 c$ = Clazz.p0p ();\r
331 });\r