source: osm/applications/editors/josm/plugins/seachart/src/symbols/Topmarks.java@ 32393

Last change on this file since 32393 was 32393, checked in by donvip, 8 years ago

use diamond operator

File size: 31.6 KB
Line 
1/* Copyright 2014 Malcolm Herring
2 *
3 * This is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, version 3 of the License.
6 *
7 * For a copy of the GNU General Public License, see <http://www.gnu.org/licenses/>.
8 */
9
10package symbols;
11
12import java.awt.BasicStroke;
13import java.awt.Color;
14import java.awt.geom.*;
15import java.util.EnumMap;
16
17import s57.S57val.*;
18import symbols.Symbols.*;
19
20public class Topmarks {
21
22 public static final Symbol RadarReflector = new Symbol();
23 static {
24 RadarReflector.add(new Instr(Form.BBOX, new Rectangle2D.Double(-50,-40,100,40)));
25 RadarReflector.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
26 RadarReflector.add(new Instr(Form.FILL, Color.black));
27 Path2D.Double p = new Path2D.Double(); p.moveTo(-30,-3); p.quadTo(0, -40, 30, -3); p.moveTo(0,-20); p.lineTo(0,-37);
28 p.moveTo(-30, -3); p.lineTo(-43,-14); p.moveTo(30, -3); p.lineTo(44,-14); p.moveTo(-15, -14); p.lineTo(-25,-30); p.moveTo(15, -14); p.lineTo(25,-30);
29 RadarReflector.add(new Instr(Form.PLIN, p));
30 }
31 public static final Symbol TopBesom = new Symbol();
32 static {
33 TopBesom.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
34 TopBesom.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
35 TopBesom.add(new Instr(Form.FILL, Color.black));
36 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,0.0); p.lineTo(0.0,-30.0); p.lineTo(15.0,0.0); p.moveTo(0.0,0.0); p.lineTo(0.0,-28.0);
37 TopBesom.add(new Instr(Form.PLIN, p));
38 }
39 public static final Symbol TopIBesom = new Symbol();
40 static {
41 TopIBesom.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
42 TopIBesom.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
43 TopIBesom.add(new Instr(Form.FILL, Color.black));
44 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-30.0); p.lineTo(0.0,0.0); p.lineTo(15.0,-30.0);
45 TopIBesom.add(new Instr(Form.PLIN, p));
46 }
47 public static final Symbol TopBoard = new Symbol();
48 static {
49 TopBoard.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-60,60,60)));
50 Symbol colours = new Symbol();
51 Path2D.Double p = new Path2D.Double(); p.moveTo(-29,-1); p.lineTo(-29,-59); p.lineTo(29,-59); p.lineTo(29,-1); p.closePath();
52 colours.add(new Instr(Form.P1, p));
53 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
54 p.moveTo(-29,-1); p.lineTo(-29,-59); p.lineTo(29,-59); p.lineTo(29,-1); p.closePath();
55 p.moveTo(-19,-10); p.lineTo(-19,-49); p.lineTo(19,-49); p.lineTo(19,-10); p.closePath();
56 colours.add(new Instr(Form.B1, p));
57 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
58 p.moveTo(-29,-1); p.lineTo(-29,-30); p.lineTo(29,-30); p.lineTo(29,-59); p.lineTo(0,-59); p.lineTo(0,-1); p.closePath();
59 colours.add(new Instr(Form.S2, p));
60 p = new Path2D.Double(); p.moveTo(-29,-1); p.lineTo(-29,-30); p.lineTo(0,-30); p.lineTo(0,-1); p.closePath();
61 colours.add(new Instr(Form.S3, p));
62 p = new Path2D.Double(); p.moveTo(0,-1); p.lineTo(0,-30); p.lineTo(29,-30); p.lineTo(29,-1); p.closePath();
63 colours.add(new Instr(Form.S4, p));
64 TopBoard.add(new Instr(Form.COLR, colours));
65 TopBoard.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
66 TopBoard.add(new Instr(Form.FILL, Color.black));
67 p = new Path2D.Double(); p.moveTo(-29,-1); p.lineTo(-29,-59); p.lineTo(29,-59); p.lineTo(29.0,-1); p.closePath();
68 TopBoard.add(new Instr(Form.PLIN, p));
69 }
70 public static final Symbol TopCan = new Symbol();
71 static {
72 TopCan.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
73 Symbol colours = new Symbol();
74 Path2D.Double p = new Path2D.Double(); p.moveTo(-12.0,-15.0); p.lineTo(-12.0,-48.0); p.lineTo(12.0,-48.0); p.lineTo(12.0,-15.0); p.closePath();
75 colours.add(new Instr(Form.P1, p));
76 TopCan.add(new Instr(Form.COLR, colours));
77 TopCan.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
78 TopCan.add(new Instr(Form.FILL, Color.black));
79 TopCan.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
80 p = new Path2D.Double(); p.moveTo(-12.0,-15.0); p.lineTo(-12.0,-48.0); p.lineTo(12.0,-48.0); p.lineTo(12.0,-15.0); p.closePath();
81 TopCan.add(new Instr(Form.PLIN, p));
82 }
83 public static final Symbol TopCanSphere = new Symbol();
84 public static final Symbol TopCircle = new Symbol();
85 public static final Symbol TopCircleTriangle = new Symbol();
86 public static final Symbol TopCone = new Symbol();
87 static {
88 TopCone.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
89 Symbol colours = new Symbol();
90 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-15.0); p.lineTo(0.0,-45.0); p.lineTo(15.0,-15.0); p.closePath();
91 colours.add(new Instr(Form.P1, p));
92 TopCone.add(new Instr(Form.COLR, colours));
93 TopCone.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
94 TopCone.add(new Instr(Form.FILL, Color.black));
95 TopCone.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
96 p = new Path2D.Double(); p.moveTo(-15.0,-15.0); p.lineTo(0.0,-45.0); p.lineTo(15.0,-15.0); p.closePath();
97 TopCone.add(new Instr(Form.PLIN, p));
98 }
99 public static final Symbol TopConeSphere = new Symbol();
100 static {
101 TopConeSphere.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
102 Symbol colours = new Symbol();
103 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-47.0); p.lineTo(0.0,-77.0); p.lineTo(15.0,-47.0); p.closePath();
104 p.moveTo(-14.0,-28.0); p.curveTo(-14.0,-46.7,14.0,-46.7,14.0,-28.0); p.curveTo(14.0,-9.3,-14.0,-9.3,-14.0,-28.0); p.closePath();
105 colours.add(new Instr(Form.P1, p));
106 TopConeSphere.add(new Instr(Form.COLR, colours));
107 TopConeSphere.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
108 TopConeSphere.add(new Instr(Form.FILL, Color.black));
109 TopConeSphere.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
110 TopConeSphere.add(new Instr(Form.LINE, new Line2D.Double(0,-42,0,-47)));
111 p = new Path2D.Double(); p.moveTo(-15.0,-47.0); p.lineTo(0.0,-77.0); p.lineTo(15.0,-47.0); p.closePath();
112 TopConeSphere.add(new Instr(Form.ELPS, new Ellipse2D.Double(-14,-42,28,28)));
113 TopConeSphere.add(new Instr(Form.PLIN, p));
114 }
115 public static final Symbol TopCross = new Symbol();
116 static {
117 TopCross.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
118 Symbol colours = new Symbol();
119 Path2D.Double p = new Path2D.Double(); p.moveTo(-5.0,-15.0); p.lineTo(-5.0,-32.5); p.lineTo(-22.5,-32.5); p.lineTo(-22.5,-42.5); p.lineTo(-5.0,-42.5);
120 p.lineTo(-5.0,-60.0); p.lineTo(5.0,-60.0); p.lineTo(5.0,-42.5); p.lineTo(22.5,-42.5); p.lineTo(22.5,-32.5); p.lineTo(5.0,-32.5); p.lineTo(5.0,-15.0); p.closePath();
121 colours.add(new Instr(Form.P1, p));
122 TopCross.add(new Instr(Form.COLR, colours));
123 TopCross.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
124 TopCross.add(new Instr(Form.FILL, Color.black));
125 TopCross.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
126 TopCross.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
127 p = new Path2D.Double(); p.moveTo(-5.0,-15.0); p.lineTo(-5.0,-32.5); p.lineTo(-22.5,-32.5); p.lineTo(-22.5,-42.5); p.lineTo(-5.0,-42.5); p.lineTo(-5.0,-60.0);
128 p.lineTo(5.0,-60.0); p.lineTo(5.0,-42.5); p.lineTo(22.5,-42.5); p.lineTo(22.5,-32.5); p.lineTo(5.0,-32.5); p.lineTo(5.0,-15.0); p.closePath();
129 TopCross.add(new Instr(Form.PLIN, p));
130 }
131 public static final Symbol TopCrosses = new Symbol();
132 static {
133
134 }
135 public static final Symbol TopCrossCircle = new Symbol();
136 static {
137
138 }
139 public static final Symbol TopCube = new Symbol();
140 static {
141 TopCube.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
142 Symbol colours = new Symbol();
143 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-48); p.lineTo(-15,-37); p.lineTo(-15,-20); p.lineTo(0,-9); p.lineTo(15,-20); p.lineTo(15,-37); p.closePath();
144 colours.add(new Instr(Form.P1, p));
145 TopCube.add(new Instr(Form.COLR, colours));
146 TopCube.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
147 TopCube.add(new Instr(Form.FILL, Color.black));
148 TopCube.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
149 p = new Path2D.Double(); p.moveTo(0,-48); p.lineTo(-14,-37); p.lineTo(0,-26); p.lineTo(14,-37); p.closePath(); p.moveTo(0,-26); p.lineTo(0,0);
150 p.moveTo(-15,-37); p.lineTo(-15,-20); p.lineTo(0,-9); p.lineTo(15,-20); p.lineTo(15,-37);
151 TopCube.add(new Instr(Form.PLIN, p));
152 }
153 public static final Symbol TopEast = new Symbol();
154 static {
155 TopEast.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
156 Symbol colours = new Symbol();
157 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-80.0); p.lineTo(-15.0,-47.0); p.lineTo(15.0,-47.0); p.closePath();
158 colours.add(new Instr(Form.P1, p));
159 p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
160 colours.add(new Instr(Form.P2, p));
161 TopEast.add(new Instr(Form.COLR, colours));
162 TopEast.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
163 TopEast.add(new Instr(Form.FILL, Color.black));
164 TopEast.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-10)));
165 TopEast.add(new Instr(Form.LINE, new Line2D.Double(0,-43,0,-47)));
166 TopEast.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
167 p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
168 p.moveTo(0.0,-80.0); p.lineTo(-15.0,-47.0); p.lineTo(15.0,-47.0); p.closePath();
169 TopEast.add(new Instr(Form.PLIN, p));
170 }
171 public static final Symbol TopFlag = new Symbol();
172 static {
173 TopFlag.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
174 Symbol colours = new Symbol();
175 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-40); p.lineTo(0,-10); p.lineTo(39,-10); p.lineTo(39,-40); p.closePath();
176 colours.add(new Instr(Form.P1, p));
177 p = new Path2D.Double(); p.moveTo(0,-25); p.lineTo(0,-10); p.lineTo(40,-10); p.lineTo(39,-25); p.closePath();
178 colours.add(new Instr(Form.H2, p));
179 p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(0,-20); p.lineTo(40,-20); p.lineTo(39,-30); p.closePath();
180 colours.add(new Instr(Form.H3, p));
181 p = new Path2D.Double(); p.moveTo(19.5,-40); p.lineTo(19.5,-10); p.lineTo(39,-10); p.lineTo(39,-40); p.closePath();
182 colours.add(new Instr(Form.V2, p));
183 p = new Path2D.Double(); p.moveTo(13,-40); p.lineTo(13,-10); p.lineTo(26,-10); p.lineTo(26,-40); p.closePath();
184 colours.add(new Instr(Form.V3, p));
185 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
186 p.moveTo(0,-40); p.lineTo(0,-10); p.lineTo(39,-10); p.lineTo(39,-40); p.closePath();
187 p.moveTo(8,-35); p.lineTo(8,-15); p.lineTo(33,-15); p.lineTo(33,-35); p.closePath();
188 colours.add(new Instr(Form.B1, p));
189 p = new Path2D.Double(); p.moveTo(0,-25); p.lineTo(0,-10); p.lineTo(20,-10); p.lineTo(20,-40); p.lineTo(39,-40); p.lineTo(39,-25); p.closePath();
190 colours.add(new Instr(Form.S2, p));
191 p = new Path2D.Double(); p.moveTo(0,-25); p.lineTo(0,-10); p.lineTo(20,-10); p.lineTo(20,-25); p.closePath();
192 colours.add(new Instr(Form.S3, p));
193 p = new Path2D.Double(); p.moveTo(20,-25); p.lineTo(20,-10); p.lineTo(39,-10); p.lineTo(39,-25); p.closePath();
194 colours.add(new Instr(Form.S4, p));
195 TopFlag.add(new Instr(Form.COLR, colours));
196 TopFlag.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
197 TopFlag.add(new Instr(Form.FILL, Color.black));
198 TopFlag.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-45)));
199 TopFlag.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
200 TopFlag.add(new Instr(Form.RECT, new Rectangle2D.Double(0,-40,39,30)));
201 }
202 public static final Symbol TopIcone = new Symbol();
203 static {
204 TopIcone.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
205 Symbol colours = new Symbol();
206 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-45.0); p.lineTo(0.0,-15.0); p.lineTo(15.0,-45.0); p.closePath();
207 colours.add(new Instr(Form.P1, p));
208 TopIcone.add(new Instr(Form.COLR, colours));
209 TopIcone.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
210 TopIcone.add(new Instr(Form.FILL, Color.black));
211 TopIcone.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
212 p = new Path2D.Double(); p.moveTo(-15.0,-45.0); p.lineTo(0.0,-15.0); p.lineTo(15.0,-45.0); p.closePath();
213 TopIcone.add(new Instr(Form.PLIN, p));
214 }
215 public static final Symbol TopIsol = new Symbol();
216 static {
217 TopIsol.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
218 Symbol colours = new Symbol();
219 Path2D.Double p = new Path2D.Double(); p.moveTo(-13.0,-55.0); p.curveTo(-13.0, -72.3, 13.0, -72.3, 13.0,-55.0); p.curveTo(13.0, -37.7, -13.0, -37.7, -13.0,-55.0); p.closePath();
220 colours.add(new Instr(Form.P1, p));
221 p = new Path2D.Double(); p.moveTo(-13.0,-28.0); p.curveTo(-13.0, -45.3, 13.0, -45.3, 13.0,-28.0); p.curveTo(13.0, -10.7, -13.0, -10.7, -13.0,-28.0); p.closePath();
222 colours.add(new Instr(Form.P2, p));
223 TopIsol.add(new Instr(Form.COLR, colours));
224 TopIsol.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
225 TopIsol.add(new Instr(Form.FILL, Color.black));
226 TopIsol.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
227 TopIsol.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
228 TopIsol.add(new Instr(Form.ELPS, new Ellipse2D.Double(-13,-41,26,26)));
229 TopIsol.add(new Instr(Form.ELPS, new Ellipse2D.Double(-13,-68,26,26)));
230 }
231 public static final Symbol TopMooring = new Symbol();
232 static {
233 TopMooring.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
234 TopMooring.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
235 TopMooring.add(new Instr(Form.FILL, Color.black));
236 TopMooring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-1.5,-6,3,3)));
237 TopMooring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-8.5,-25,17,17)));
238 }
239 public static final Symbol TopNorth = new Symbol();
240 static {
241 TopNorth.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
242 Symbol colours = new Symbol();
243 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-78.0); p.lineTo(-15.0,-45.0); p.lineTo(15.0,-45.0); p.closePath();
244 colours.add(new Instr(Form.P1, p));
245 p = new Path2D.Double(); p.moveTo(-15.0,-10.0); p.lineTo(0.0,-43.0); p.lineTo(15.0,-10.0); p.closePath();
246 colours.add(new Instr(Form.P2, p));
247 TopNorth.add(new Instr(Form.COLR, colours));
248 TopNorth.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
249 TopNorth.add(new Instr(Form.FILL, Color.black));
250 TopNorth.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-10)));
251 TopNorth.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
252 p = new Path2D.Double(); p.moveTo(-15.0,-10.0); p.lineTo(0.0,-43.0); p.lineTo(15.0,-10.0); p.closePath();
253 p.moveTo(0.0,-78.0); p.lineTo(-15.0,-45.0); p.lineTo(15.0,-45.0); p.closePath();
254 TopNorth.add(new Instr(Form.PLIN, p));
255 }
256 public static final Symbol TopSouth = new Symbol();
257 static {
258 TopSouth.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
259 Symbol colours = new Symbol();
260 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-78.0); p.lineTo(0.0,-45.0); p.lineTo(15.0,-78.0); p.closePath();
261 colours.add(new Instr(Form.P1, p));
262 p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
263 colours.add(new Instr(Form.P2, p));
264 TopSouth.add(new Instr(Form.COLR, colours));
265 TopSouth.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
266 TopSouth.add(new Instr(Form.FILL, Color.black));
267 TopSouth.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-10)));
268 TopSouth.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
269 p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
270 p.moveTo(-15.0,-78.0); p.lineTo(0.0,-45.0); p.lineTo(15.0,-78.0); p.closePath();
271 TopSouth.add(new Instr(Form.PLIN, p));
272 }
273 public static final Symbol TopSphere = new Symbol();
274 static {
275 TopSphere.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
276 Symbol colours = new Symbol();
277 Path2D.Double p = new Path2D.Double(); p.moveTo(-14.0,-28.0); p.curveTo(-14.0,-46.7,14.0,-46.7,14.0,-28.0); p.curveTo(14.0,-9.3,-14.0,-9.3,-14.0,-28.0); p.closePath();
278 colours.add(new Instr(Form.P1, p));
279 TopSphere.add(new Instr(Form.COLR, colours));
280 TopSphere.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
281 TopSphere.add(new Instr(Form.FILL, Color.black));
282 TopSphere.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
283 TopSphere.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
284 TopSphere.add(new Instr(Form.ELPS, new Ellipse2D.Double(-14,-42,28,28)));
285 }
286 public static final Symbol TopSquare = new Symbol();
287 static {
288 TopSquare.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
289 Symbol colours = new Symbol();
290 Path2D.Double p = new Path2D.Double(); p.moveTo(-13.0,-1.0); p.lineTo(-13.0,-27.0); p.lineTo(13.0,-27.0); p.lineTo(13.0,-1.0); p.closePath();
291 colours.add(new Instr(Form.P1, p));
292 p = new Path2D.Double(); p.moveTo(-13.0,-15.0); p.lineTo(-13.0,-1.0); p.lineTo(13.0,-1.0); p.lineTo(13.0,-15.0); p.closePath();
293 colours.add(new Instr(Form.H2, p));
294 p = new Path2D.Double(); p.moveTo(-13.0,-19.3); p.lineTo(-13.0,-10.7); p.lineTo(13.0,-10.7); p.lineTo(13.0,-19.3); p.closePath();
295 colours.add(new Instr(Form.H3, p));
296 p = new Path2D.Double(); p.moveTo(0.0,-1.0); p.lineTo(0.0,-27.0); p.lineTo(13.0,-27.0); p.lineTo(13.0,-1.0); p.closePath();
297 colours.add(new Instr(Form.V2, p));
298 p = new Path2D.Double(); p.moveTo(-4.3,-1.0); p.lineTo(-4.3,-27.0); p.lineTo(4.3,-27.0); p.lineTo(4.3,-1.0); p.closePath();
299 colours.add(new Instr(Form.V3, p));
300 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
301 p.moveTo(-13.0,-1.0); p.lineTo(-13.0,-27.0); p.lineTo(13.0,-27.0); p.lineTo(13.0,-1.0); p.closePath();
302 p.moveTo(-8.0,-6.0); p.lineTo(-8.0,-22.0); p.lineTo(8.0,-22.0); p.lineTo(8.0,-6.0); p.closePath();
303 colours.add(new Instr(Form.B1, p));
304 TopSquare.add(new Instr(Form.COLR, colours));
305 TopSquare.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
306 TopSquare.add(new Instr(Form.FILL, Color.black));
307 p = new Path2D.Double(); p.moveTo(-13.0,-1.0); p.lineTo(-13.0,-27.0); p.lineTo(13.0,-27.0); p.lineTo(13.0,-1.0); p.closePath();
308 TopSquare.add(new Instr(Form.PLIN, p));
309 }
310 public static final Symbol TopRectangleH = new Symbol();
311 static {
312 TopRectangleH.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
313 Symbol colours = new Symbol();
314 Path2D.Double p = new Path2D.Double(); p.moveTo(-20.0,-1.0); p.lineTo(-20.0,-27.0); p.lineTo(20.0,-27.0); p.lineTo(20.0,-1.0); p.closePath();
315 colours.add(new Instr(Form.P1, p));
316 TopRectangleH.add(new Instr(Form.COLR, colours));
317 TopRectangleH.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
318 TopRectangleH.add(new Instr(Form.FILL, Color.black));
319 p = new Path2D.Double(); p.moveTo(-20.0,-1.0); p.lineTo(-20.0,-27.0); p.lineTo(20.0,-27.0); p.lineTo(20.0,-1.0); p.closePath();
320 TopRectangleH.add(new Instr(Form.PLIN, p));
321 }
322 public static final Symbol TopRectangleV = new Symbol();
323 static {
324 TopRectangleV.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
325 Symbol colours = new Symbol();
326 Path2D.Double p = new Path2D.Double(); p.moveTo(-13.0,-1.0); p.lineTo(-13.0,-41.0); p.lineTo(13.0,-41.0); p.lineTo(13.0,-1.0); p.closePath();
327 colours.add(new Instr(Form.P1, p));
328 TopRectangleV.add(new Instr(Form.COLR, colours));
329 TopRectangleV.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
330 TopRectangleV.add(new Instr(Form.FILL, Color.black));
331 p = new Path2D.Double(); p.moveTo(-13.0,-1.0); p.lineTo(-13.0,-41.0); p.lineTo(13.0,-41.0); p.lineTo(13.0,-1.0); p.closePath();
332 TopRectangleV.add(new Instr(Form.PLIN, p));
333 }
334 public static final Symbol TopRhombus = new Symbol();
335 static {
336 TopRhombus.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
337 Symbol colours = new Symbol();
338 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-29.0); p.lineTo(-15.0,-15.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-15.0); p.closePath();
339 colours.add(new Instr(Form.P1, p));
340 p = new Path2D.Double(); p.moveTo(-15.0,-15.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-15.0); p.closePath();
341 colours.add(new Instr(Form.H2, p));
342 p = new Path2D.Double(); p.moveTo(-10.0,-19.7); p.lineTo(-15.0,-15.0); p.lineTo(-10.0,-10.3); p.lineTo(10.0,-10.3); p.lineTo(15.0,-15.0); p.lineTo(10.0,-19.7); p.closePath();
343 colours.add(new Instr(Form.H3, p));
344 p = new Path2D.Double(); p.moveTo(0.0,-29.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-15.0); p.closePath();
345 colours.add(new Instr(Form.V2, p));
346 p = new Path2D.Double(); p.moveTo(0.0,-29.0); p.lineTo(-5.0,-24.3); p.lineTo(-5.0,-5.7); p.lineTo(0.0,-1.0); p.lineTo(5.0,-5.7); p.lineTo(5.0,-24.3); p.closePath();
347 colours.add(new Instr(Form.V3, p));
348 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
349 p.moveTo(0.0,-29.0); p.lineTo(-15.0,-15.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-15.0); p.closePath();
350 p.moveTo(0.0,-23.0); p.lineTo(-9.0,-15.0); p.lineTo(0.0,-7.0); p.lineTo(9.0,-15.0); p.closePath();
351 colours.add(new Instr(Form.B1, p));
352 TopRhombus.add(new Instr(Form.COLR, colours));
353 TopRhombus.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
354 TopRhombus.add(new Instr(Form.FILL, Color.black));
355 p = new Path2D.Double(); p.moveTo(0.0,-29.0); p.lineTo(-15.0,-15.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-15.0); p.closePath();
356 TopRhombus.add(new Instr(Form.PLIN, p));
357 }
358 public static final Symbol TopRhombusCircle = new Symbol();
359 static {
360
361 }
362 public static final Symbol TopSphereRhombus = new Symbol();
363 static {
364 TopSphereRhombus.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
365 TopSphereRhombus.add(new Instr(Form.SYMB, new Symbols.SubSymbol(TopRhombus, 1.0, 0, 0, null, null)));
366 Symbol colours = new Symbol();
367 Path2D.Double p = new Path2D.Double(); p.moveTo(-14.0,-44.0); p.curveTo(-14.0,-62.7,14.0,-62.7,14.0,-44.0); p.curveTo(14.0,-25.3,-14.0,-25.3,-14.0,-44.0); p.closePath();
368 colours.add(new Instr(Form.P1, p));
369 TopSphereRhombus.add(new Instr(Form.COLR, colours));
370 TopSphereRhombus.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
371 TopSphereRhombus.add(new Instr(Form.FILL, Color.black));
372 TopSphereRhombus.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
373 TopSphereRhombus.add(new Instr(Form.ELPS, new Ellipse2D.Double(-14,-58,28,28)));
374 }
375 public static final Symbol TopT = new Symbol();
376 static {
377
378 }
379 public static final Symbol TopTrapeziumU = new Symbol();
380 static {
381 TopTrapeziumU.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
382 Symbol colours = new Symbol();
383 Path2D.Double p = new Path2D.Double(); p.moveTo(-20.0,-1.0); p.lineTo(-13.0,-27.0); p.lineTo(13.0,-27.0); p.lineTo(20.0,-1.0); p.closePath();
384 colours.add(new Instr(Form.P1, p));
385 TopTrapeziumU.add(new Instr(Form.COLR, colours));
386 TopTrapeziumU.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
387 TopTrapeziumU.add(new Instr(Form.FILL, Color.black));
388 p = new Path2D.Double(); p.moveTo(-20.0,-1.0); p.lineTo(-13.0,-27.0); p.lineTo(13.0,-27.0); p.lineTo(20.0,-1.0); p.closePath();
389 TopTrapeziumU.add(new Instr(Form.PLIN, p));
390 }
391 public static final Symbol TopTrapeziumD = new Symbol();
392 static {
393 TopTrapeziumD.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
394 Symbol colours = new Symbol();
395 Path2D.Double p = new Path2D.Double(); p.moveTo(-13.0,-1.0); p.lineTo(-20.0,-27.0); p.lineTo(20.0,-27.0); p.lineTo(13.0,-1.0); p.closePath();
396 colours.add(new Instr(Form.P1, p));
397 TopTrapeziumD.add(new Instr(Form.COLR, colours));
398 TopTrapeziumD.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
399 TopTrapeziumD.add(new Instr(Form.FILL, Color.black));
400 p = new Path2D.Double(); p.moveTo(-13.0,-1.0); p.lineTo(-20.0,-27.0); p.lineTo(20.0,-27.0); p.lineTo(13.0,-1.0); p.closePath();
401 TopTrapeziumD.add(new Instr(Form.PLIN, p));
402 }
403 public static final Symbol TopTriangle = new Symbol();
404 static {
405 TopTriangle.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
406 Symbol colours = new Symbol();
407 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-1.0); p.lineTo(0.0,-29.0); p.lineTo(15.0,-1.0); p.closePath();
408 colours.add(new Instr(Form.P1, p));
409 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
410 p.moveTo(-15.0,-1.0); p.lineTo(0.0,-29.0); p.lineTo(15.0,-1.0); p.closePath();
411 p.moveTo(-10.0,-6.0); p.lineTo(0.0,-24.0); p.lineTo(10.0,-6.0); p.closePath();
412 colours.add(new Instr(Form.B1, p));
413 TopTriangle.add(new Instr(Form.COLR, colours));
414 TopTriangle.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
415 TopTriangle.add(new Instr(Form.FILL, Color.black));
416 p = new Path2D.Double(); p.moveTo(-15.0,-1.0); p.lineTo(0.0,-29.0); p.lineTo(15.0,-1.0); p.closePath();
417 TopTriangle.add(new Instr(Form.PLIN, p));
418 }
419 public static final Symbol TopItriangle = new Symbol();
420 static {
421 TopItriangle.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
422 Symbol colours = new Symbol();
423 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-29.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-29.0); p.closePath();
424 colours.add(new Instr(Form.P1, p));
425 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
426 p.moveTo(-15.0,-29.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-29.0); p.closePath();
427 p.moveTo(-10.0,-24.0); p.lineTo(0.0,-6.0); p.lineTo(10.0,-24.0); p.closePath();
428 colours.add(new Instr(Form.B1, p));
429 TopItriangle.add(new Instr(Form.COLR, colours));
430 TopItriangle.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
431 TopItriangle.add(new Instr(Form.FILL, Color.black));
432 p = new Path2D.Double(); p.moveTo(-15.0,-29.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-29.0); p.closePath();
433 TopItriangle.add(new Instr(Form.PLIN, p));
434 }
435 public static final Symbol TopTriangleCircle = new Symbol();
436 static {
437
438 }
439 public static final Symbol TopWest = new Symbol();
440 static {
441 TopWest.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
442 Symbol colours = new Symbol();
443 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-78.0); p.lineTo(0.0,-45.0); p.lineTo(15.0,-78.0); p.closePath();
444 colours.add(new Instr(Form.P1, p));
445 p = new Path2D.Double(); p.moveTo(-15.0,-10.0); p.lineTo(0.0,-43.0); p.lineTo(15.0,-10.0); p.closePath();
446 colours.add(new Instr(Form.P2, p));
447 TopWest.add(new Instr(Form.COLR, colours));
448 TopWest.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
449 TopWest.add(new Instr(Form.FILL, Color.black));
450 TopWest.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-10)));
451 TopWest.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
452 p = new Path2D.Double(); p.moveTo(-15.0,-10.0); p.lineTo(0.0,-43.0); p.lineTo(15.0,-10.0); p.closePath();
453 p.moveTo(-15.0,-78.0); p.lineTo(0.0,-45.0); p.lineTo(15.0,-78.0); p.closePath();
454 TopWest.add(new Instr(Form.PLIN, p));
455 }
456 public static final Symbol TopX = new Symbol();
457 static {
458 TopX.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
459 Symbol colours = new Symbol();
460 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-27.7); p.lineTo(-12.4,-15.7); p.lineTo(-19.3,-22.6); p.lineTo(-7.3,-35.0); p.lineTo(-19.3,-47.3);
461 p.lineTo(-12.4,-54.2); p.lineTo(0.0,-42.4); p.lineTo(12.4,-54.2); p.lineTo(19.3,-47.3); p.lineTo(7.3,-35.0); p.lineTo(19.3,-22.6); p.lineTo(12.4,-15.7); p.closePath();
462 colours.add(new Instr(Form.P1, p));
463 TopX.add(new Instr(Form.COLR, colours));
464 TopX.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
465 TopX.add(new Instr(Form.FILL, Color.black));
466 TopX.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-27)));
467 TopX.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
468 p = new Path2D.Double(); p.moveTo(0.0,-27.7); p.lineTo(-12.4,-15.7); p.lineTo(-19.3,-22.6); p.lineTo(-7.3,-35.0); p.lineTo(-19.3,-47.3); p.lineTo(-12.4,-54.2); p.lineTo(0.0,-42.4);
469 p.lineTo(12.4,-54.2); p.lineTo(19.3,-47.3); p.lineTo(7.3,-35.0); p.lineTo(19.3,-22.6); p.lineTo(12.4,-15.7); p.closePath();
470 TopX.add(new Instr(Form.PLIN, p));
471 }
472 public static final Symbol TopOther = new Symbol();
473 static {
474
475 }
476
477 public static final EnumMap<TopSHP, Symbol> Shapes = new EnumMap<>(TopSHP.class);
478 static {
479 Shapes.put(TopSHP.TOP_BESM, TopBesom); Shapes.put(TopSHP.TOP_IBESM, TopIBesom); Shapes.put(TopSHP.TOP_BORD, TopBoard); Shapes.put(TopSHP.TOP_CAN, TopCan);
480 Shapes.put(TopSHP.TOP_CONE, TopCone); Shapes.put(TopSHP.TOP_CROS, TopCross); Shapes.put(TopSHP.TOP_EAST, TopEast); Shapes.put(TopSHP.TOP_ICONE, TopIcone);
481 Shapes.put(TopSHP.TOP_ISD, TopIsol); Shapes.put(TopSHP.TOP_NORTH, TopNorth); Shapes.put(TopSHP.TOP_SOUTH, TopSouth); Shapes.put(TopSHP.TOP_SPHR, TopSphere);
482 Shapes.put(TopSHP.TOP_SQUR, TopSquare); Shapes.put(TopSHP.TOP_TRI, TopTriangle); Shapes.put(TopSHP.TOP_ITRI, TopItriangle); Shapes.put(TopSHP.TOP_WEST, TopWest);
483 Shapes.put(TopSHP.TOP_SALT, TopX); Shapes.put(TopSHP.TOP_RHOM, TopRhombus); Shapes.put(TopSHP.TOP_FLAG, TopFlag); Shapes.put(TopSHP.TOP_CUBE, TopCube);
484 Shapes.put(TopSHP.TOP_SPRH, TopSphereRhombus); Shapes.put(TopSHP.TOP_HRECT, TopRectangleH); Shapes.put(TopSHP.TOP_VRECT, TopRectangleV);
485 Shapes.put(TopSHP.TOP_TRAP, TopTrapeziumU); Shapes.put(TopSHP.TOP_ITRAP, TopTrapeziumD); Shapes.put(TopSHP.TOP_COSP, TopConeSphere);
486 Shapes.put(TopSHP.TOP_CIRC, TopCircle); Shapes.put(TopSHP.TOP_CRSS, TopCrosses); Shapes.put(TopSHP.TOP_T, TopT); Shapes.put(TopSHP.TOP_TRCL, TopTriangleCircle);
487 Shapes.put(TopSHP.TOP_CRCL, TopCrossCircle); Shapes.put(TopSHP.TOP_RHCL, TopRhombusCircle); Shapes.put(TopSHP.TOP_CLTR, TopCircleTriangle);
488 Shapes.put(TopSHP.TOP_CYSP, TopCanSphere); Shapes.put(TopSHP.TOP_OTHR, TopOther);
489 }
490
491 public static final EnumMap<BoySHP, Delta> BuoyDeltas = new EnumMap<>(BoySHP.class);
492 static {
493 BuoyDeltas.put(BoySHP.BOY_PILR, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 31.5, -95.0)));
494 BuoyDeltas.put(BoySHP.BOY_SPAR, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 31.5, -95.0)));
495 BuoyDeltas.put(BoySHP.BOY_CAN, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9)));
496 BuoyDeltas.put(BoySHP.BOY_CONE, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9)));
497 BuoyDeltas.put(BoySHP.BOY_SPHR, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9)));
498 BuoyDeltas.put(BoySHP.BOY_BARL, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9)));
499 BuoyDeltas.put(BoySHP.BOY_SUPR, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0.0, -42.0)));
500 BuoyDeltas.put(BoySHP.BOY_ICE, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0.0, -25.0)));
501 }
502 public static final Delta FloatDelta = new Delta(Handle.BC, AffineTransform.getTranslateInstance(0.0, -42.0));
503 public static final Delta BeaconDelta = new Delta(Handle.BC, AffineTransform.getTranslateInstance(0.0, -70.0));
504 public static final Delta LightDelta = new Delta(Handle.BC, AffineTransform.getTranslateInstance(0.0, -20.0));
505
506}
Note: See TracBrowser for help on using the repository browser.