Initial commit of newLISP.
[newlisp.git] / guiserver / java / PolygonShape.java
blob1bfb66643973a43683b9a162124707ad1f340ed9
1 //
2 // PolygonShape.java
3 // guiserver
4 //
5 // Created by Lutz Mueller on 7/2/07.
6 //
7 //
8 // Copyright (C) 2007 Lutz Mueller
9 //
10 // This program is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
15 // This program is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
20 // You should have received a copy of the GNU General Public License
21 // along with this program. If not, see <http://www.gnu.org/licenses/>.
25 import java.lang.*;
26 import java.awt.*;
27 import java.awt.color.*;
28 import java.awt.geom.*;
29 import java.awt.Polygon;
30 import java.util.*;
32 @SuppressWarnings("unchecked")
33 public class PolygonShape extends Shape {
35 int pointXd[];
36 int pointYd[];
38 int N;
40 public PolygonShape(StringTokenizer tokens)
42 tag = tokens.nextToken();
43 N = Integer.parseInt(tokens.nextToken());
45 pointXd = new int [N];
46 pointYd = new int [N];
48 X = Integer.parseInt(tokens.nextToken());
49 Y = Integer.parseInt(tokens.nextToken());
51 pointXd[0] = pointYd[0] = 0;
53 for(int i = 1; i < N; i++)
55 pointXd[i] = Integer.parseInt(tokens.nextToken()) - X;
56 pointYd[i] = Integer.parseInt(tokens.nextToken()) - Y;
59 if(tokens.hasMoreTokens())
60 paintColor = Shape.getColorParameter(tokens);
62 stroke = CanvasWidget.currentCanvas.currentStroke;
64 CanvasWidget.currentCanvas.drawobjects.add(this);
67 public void drawShape(Graphics2D g2)
69 g2.setStroke(stroke);
70 g2.setPaint(paintColor);
73 int pX[] = new int [N];
74 int pY[] = new int [N];
76 for(int i = 0; i < N; i++)
78 pX[i] = pointXd[i] + X;
79 pY[i] = pointYd[i] + Y;
81 g2.drawPolygon(pX, pY, N);
83 Polygon polygon = new Polygon();
85 for(int i = 0; i < N; i++)
86 polygon.addPoint(pointXd[i] + X, pointYd[i] + Y);
88 g2.draw(polygon);
91 public boolean hasPoint(int x, int y)
93 Polygon polygon = new Polygon();
95 for(int i = 0; i < N; i++)
96 polygon.addPoint(pointXd[i] + X, pointYd[i] + Y);
98 return(polygon.contains(x, y));
105 // eof //