Changeset 32394 in osm for applications/editors/josm/plugins/seachart/src/symbols
- Timestamp:
- 2016-06-24T03:48:12+02:00 (9 years ago)
- Location:
- applications/editors/josm/plugins/seachart/src/symbols
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/seachart/src/symbols/Areas.java
r32101 r32394 10 10 package symbols; 11 11 12 import java.awt.*; 13 import java.awt.geom.*; 14 import java.awt.image.*; 15 16 import symbols.Symbols.*; 12 import java.awt.BasicStroke; 13 import java.awt.Color; 14 import java.awt.Graphics2D; 15 import java.awt.geom.AffineTransform; 16 import java.awt.geom.Ellipse2D; 17 import java.awt.geom.Line2D; 18 import java.awt.geom.Path2D; 19 import java.awt.geom.Rectangle2D; 20 import java.awt.image.BufferedImage; 21 22 import symbols.Symbols.Delta; 23 import symbols.Symbols.Form; 24 import symbols.Symbols.Handle; 25 import symbols.Symbols.Instr; 26 import symbols.Symbols.Symbol; 17 27 18 28 public class Areas { 19 public static final Symbol Plane = new Symbol(); 20 static { 21 Plane.add(new Instr(Form.BBOX, new Rectangle2D.Double(-60,-60,120,120))); 22 Path2D.Double p = new Path2D.Double(); p.moveTo(40,20); p.lineTo(50,10); p.lineTo(27.0,13.3); p.lineTo(23.7,6.8); p.lineTo(40.0,5.0); p.curveTo(55,4,55,-9,40,-10); 23 p.quadTo(31,-11,30,-15); p.lineTo(-30,2); p.quadTo(-35,-12,-45,-15); p.quadTo(-56,-3,-50,15); p.lineTo(18.4,7.3); p.lineTo(21.7,14); p.lineTo(-20,20); p.closePath(); 24 Plane.add(new Instr(Form.PGON, p)); 25 } 26 public static final Symbol Cable = new Symbol(); 27 static { 28 Cable.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-60,60,60))); 29 Cable.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 30 Cable.add(new Instr(Form.FILL, new Color(0xc480ff))); 31 Path2D.Double p = new Path2D.Double(); p.moveTo(0,0); p.curveTo(-13,-13,-13,-17,0,-30); p.curveTo(13,-43,13,-47,0,-60); 32 Cable.add(new Instr(Form.PLIN, p)); 33 } 34 public static final Symbol CableDot = new Symbol(); 35 static { 36 CableDot.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-60,60,60))); 37 CableDot.add(new Instr(Form.RSHP, new Ellipse2D.Double(-10,-40,20,20))); 38 } 39 public static final Symbol CableDash = new Symbol(); 40 static { 41 CableDash.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-60,60,60))); 42 CableDash.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 43 CableDash.add(new Instr(Form.LINE, new Line2D.Double(0,-15,0,-45))); 44 } 45 public static final Symbol CableFlash = new Symbol(); 46 static { 47 CableFlash.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-60,60,60))); 48 Path2D.Double p = new Path2D.Double(); p.moveTo(-30,-25); p.lineTo(-10,-40); p.lineTo(10,-26); p.lineTo(30,-35); p.lineTo(10,-20); p.lineTo(-10,-34); p.closePath(); 49 CableFlash.add(new Instr(Form.PGON, p)); 50 } 51 public static final Symbol LaneArrow = new Symbol(); 52 static { 53 LaneArrow.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-240,40,240))); 54 LaneArrow.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 55 LaneArrow.add(new Instr(Form.FILL, Symbols.Mtss)); 56 Path2D.Double p = new Path2D.Double(); p.moveTo(15,0); p.lineTo(15,-195); p.lineTo(40,-195); 57 p.lineTo(0,-240); p.lineTo(-40,-195); p.lineTo(-15,-195); p.lineTo(-15,0); p.closePath(); 58 LaneArrow.add(new Instr(Form.PLIN, p)); 59 } 60 public static final Symbol LineAnchor = new Symbol(); 61 static { 62 LineAnchor.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-60,60,90))); 63 LineAnchor.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.5, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(-90.0)))))); 64 } 65 public static final Symbol LinePlane = new Symbol(); 66 static { 67 LinePlane.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-60,60,90))); 68 LinePlane.add(new Instr(Form.FILL, new Color(0xc480ff))); 69 LinePlane.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Areas.Plane, 0.5, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(-90.0)))))); 70 } 71 public static final Symbol MarineFarm = new Symbol(); 72 static { 73 MarineFarm.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 74 Path2D.Double p = new Path2D.Double(); p.moveTo(-23,12); p.lineTo(-23,23); p.lineTo(23,23); p.lineTo(23,12); p.moveTo(-8,15); p.lineTo(-8,23); p.moveTo(8,15); p.lineTo(8,23); 75 p.moveTo(-23,-12); p.lineTo(-23,-23); p.lineTo(23,-23); p.lineTo(23,-12); p.moveTo(-8,-15); p.lineTo(-8,-23); p.moveTo(8,-15); p.lineTo(8,-23); 76 p.moveTo(-21,8); p.quadTo(-1,-14,21,0); p.quadTo(-1,14,-21,-8); p.moveTo(7,6); p.quadTo(2,0,7,-6); 77 MarineFarm.add(new Instr(Form.PLIN, p)); 78 MarineFarm.add(new Instr(Form.RSHP, new Ellipse2D.Double(9,-2,4,4))); 79 } 80 public static final Symbol NoWake = new Symbol(); 81 static { 82 NoWake.add(new Instr(Form.STRK, new BasicStroke(12, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 83 NoWake.add(new Instr(Form.FILL, new Color(0xa30075))); 84 Path2D.Double p = new Path2D.Double(); p.moveTo(-60,20); p.curveTo(-28,20,-32,0,0,0); p.curveTo(32,0,28,20,60,20); p.moveTo(-60,0); p.curveTo(-28,0,-32,-20,0,-20); p.curveTo(32,-20,28,0,60,0); 85 NoWake.add(new Instr(Form.PLIN, p)); 86 NoWake.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 87 NoWake.add(new Instr(Form.LINE, new Line2D.Double(-60,60,60,-60))); 88 NoWake.add(new Instr(Form.LINE, new Line2D.Double(-60,-60,60,60))); 89 } 90 public static final Symbol Pipeline = new Symbol(); 91 static { 92 Pipeline.add(new Instr(Form.BBOX, new Rectangle2D.Double(-15,-60,30,60))); 93 Pipeline.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 94 Pipeline.add(new Instr(Form.FILL, new Color(0xc480ff))); 95 Pipeline.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-50))); 96 Pipeline.add(new Instr(Form.RSHP, new Ellipse2D.Double(-10,-60,20,20))); 97 } 98 public static final Symbol Restricted = new Symbol(); 99 static { 100 Restricted.add(new Instr(Form.BBOX, new Rectangle2D.Double(-15,-30,30,30))); 101 Restricted.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 102 Restricted.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-30))); 103 Restricted.add(new Instr(Form.LINE, new Line2D.Double(0,-15,17,-15))); 104 } 105 public static final Symbol Rock = new Symbol(); 106 static { 107 Rock.add(new Instr(Form.FILL, new Color(0x80c0ff))); 108 Rock.add(new Instr(Form.RSHP, new Ellipse2D.Double(-30,-30,60,60))); 109 Rock.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5,5}, 0))); 110 Rock.add(new Instr(Form.FILL, Color.black)); 111 Rock.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30,-30,60,60))); 112 Rock.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 113 Rock.add(new Instr(Form.LINE, new Line2D.Double(-20,0,20,0))); 114 Rock.add(new Instr(Form.LINE, new Line2D.Double(0,-20,0,20))); 115 } 116 public static final Symbol RockA = new Symbol(); 117 static { 118 RockA.add(new Instr(Form.FILL, new Color(0x80c0ff))); 119 RockA.add(new Instr(Form.RSHP, new Ellipse2D.Double(-30,-30,60,60))); 120 RockA.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5,5}, 0))); 121 RockA.add(new Instr(Form.FILL, Color.black)); 122 RockA.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30,-30,60,60))); 123 RockA.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 124 RockA.add(new Instr(Form.LINE, new Line2D.Double(-20,0,20,0))); 125 RockA.add(new Instr(Form.LINE, new Line2D.Double(0,-20,0,20))); 126 RockA.add(new Instr(Form.RSHP, new Ellipse2D.Double(-17,-17,8,8))); 127 RockA.add(new Instr(Form.RSHP, new Ellipse2D.Double(-17,9,8,8))); 128 RockA.add(new Instr(Form.RSHP, new Ellipse2D.Double(9,-17,8,8))); 129 RockA.add(new Instr(Form.RSHP, new Ellipse2D.Double(9,9,8,8))); 130 } 131 public static final Symbol RockC = new Symbol(); 132 static { 133 RockC.add(new Instr(Form.FILL, new Color(0x80c0ff))); 134 RockC.add(new Instr(Form.RSHP, new Ellipse2D.Double(-30,-30,60,60))); 135 RockC.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5,5}, 0))); 136 RockC.add(new Instr(Form.FILL, Color.black)); 137 RockC.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30,-30,60,60))); 138 RockC.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 139 RockC.add(new Instr(Form.LINE, new Line2D.Double(-20,0,20,0))); 140 RockC.add(new Instr(Form.LINE, new Line2D.Double(-10,17.3,10,-17.3))); 141 RockC.add(new Instr(Form.LINE, new Line2D.Double(10,17.3,-10,-17.3))); 142 } 143 public static final Symbol Seaplane = new Symbol(); 144 static { 145 Seaplane.add(new Instr(Form.BBOX, new Rectangle2D.Double(-60,-60,120,120))); 146 Seaplane.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 147 Seaplane.add(new Instr(Form.ELPS, new Ellipse2D.Double(-58,-58,116,116))); 148 Seaplane.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Areas.Plane, 1.0, 0, 0, null, null))); 149 } 150 public static final Symbol WindFarm = new Symbol(); 151 static { 152 WindFarm.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 153 WindFarm.add(new Instr(Form.ELPS, new Ellipse2D.Double(-100,-100,200,200))); 154 WindFarm.add(new Instr(Form.LINE, new Line2D.Double(-35,50,35,50))); 155 WindFarm.add(new Instr(Form.LINE, new Line2D.Double(0,50,0,-27.5))); 156 WindFarm.add(new Instr(Form.LINE, new Line2D.Double(0,-27.5,30,-27.5))); 157 WindFarm.add(new Instr(Form.LINE, new Line2D.Double(0,-27.5,-13.8,-3.8))); 158 WindFarm.add(new Instr(Form.LINE, new Line2D.Double(0,-27.5,-13.8,-53.6))); 159 } 160 public static final Symbol WreckD = new Symbol(); 161 static { 162 WreckD.add(new Instr(Form.FILL, new Color(0x80c0ff))); 163 WreckD.add(new Instr(Form.RSHP, new Ellipse2D.Double(-50,-40,100,80))); 164 WreckD.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5,5}, 0))); 165 WreckD.add(new Instr(Form.FILL, Color.black)); 166 WreckD.add(new Instr(Form.ELPS, new Ellipse2D.Double(-50,-40,100,80))); 167 WreckD.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 168 WreckD.add(new Instr(Form.LINE, new Line2D.Double(-40,0,40,0))); 169 WreckD.add(new Instr(Form.LINE, new Line2D.Double(0,-30,0,30))); 170 WreckD.add(new Instr(Form.LINE, new Line2D.Double(-20,-15,-20,15))); 171 WreckD.add(new Instr(Form.LINE, new Line2D.Double(20,-15,20,15))); 172 } 173 public static final Symbol WreckND = new Symbol(); 174 static { 175 WreckND.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 176 WreckND.add(new Instr(Form.LINE, new Line2D.Double(-40,0,40,0))); 177 WreckND.add(new Instr(Form.LINE, new Line2D.Double(0,-30,0,30))); 178 WreckND.add(new Instr(Form.LINE, new Line2D.Double(-20,-15,-20,15))); 179 WreckND.add(new Instr(Form.LINE, new Line2D.Double(20,-15,20,15))); 180 } 181 public static final Symbol WreckS = new Symbol(); 182 static { 183 WreckS.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 184 WreckS.add(new Instr(Form.ELPS, new Ellipse2D.Double(-6,-6,12,12))); 185 WreckS.add(new Instr(Form.LINE, new Line2D.Double(-40,0,-6,0))); 186 WreckS.add(new Instr(Form.LINE, new Line2D.Double(40,0,6,0))); 187 Path2D.Double p = new Path2D.Double(); p.moveTo(-30,0); p.lineTo(-40,-25); p.lineTo(-0.3,-12.6); p.lineTo(13.7,-37.7); p.lineTo(16.3,-36.3); 188 p.lineTo(2.7,-11.6); p.lineTo(37.5,0); p.lineTo(6,0); p.curveTo(5.6,-8,-5.6,-8,-6,0); p.closePath(); 189 WreckS.add(new Instr(Form.PGON, p)); 190 } 191 public static final BufferedImage Sandwaves = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB); 192 static { 193 Graphics2D g2 = Sandwaves.createGraphics(); 194 g2.setStroke(new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); 195 g2.setBackground(new Color(0, true)); 196 g2.clearRect(0, 0, 100, 100); 197 g2.setPaint(new Color(0xffd400)); 198 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,34.5); p.lineTo(03.3,30.8); p.lineTo(09.9,19.3); p.lineTo(13.2,16.0); p.lineTo(16.5,16.1); p.lineTo(18.2,19.5); 199 p.lineTo(19.9,25.0); p.lineTo(21.6,30.3); p.lineTo(23.3,33.4); p.lineTo(25.0,33.3); p.lineTo(28.3,30.1); p.lineTo(31.6,25.0); p.lineTo(34.9,20.1); p.lineTo(38.2,17.2); 200 p.lineTo(41.5,17.3); p.lineTo(43.2,20.3); p.lineTo(44.9,25); p.lineTo(46.6,29.6); p.lineTo(48.3,32.2); p.lineTo(50.0,32.1); 201 p.moveTo(50.0,84.5); p.lineTo(53.3,80.8); p.lineTo(56.6,75.0); p.lineTo(59.9,69.3); p.lineTo(63.2,66.0); p.lineTo(66.5,66.1); p.lineTo(68.2,69.5); p.lineTo(69.9,75.0); 202 p.lineTo(71.6,80.3); p.lineTo(73.3,83.4); p.lineTo(75.0,83.3); p.lineTo(78.3,80.1); p.lineTo(81.6,75.0); p.lineTo(84.9,70.1); p.lineTo(88.2,67.2); p.lineTo(91.5,67.3); 203 p.lineTo(93.2,70.3); p.lineTo(94.9,75.0); p.lineTo(96.6,79.6); p.lineTo(98.3,82.2); p.lineTo(100.0,82.1); 204 g2.draw(p); 205 } 206 public static final Symbol KelpS = new Symbol(); 207 static { 208 KelpS.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 209 Path2D.Double p = new Path2D.Double(); p.moveTo(-60,0); p.curveTo(-20,-20,-24,40,24,20); p.moveTo(-60,0); p.quadTo(-48,20,-32,12); 210 p.moveTo(-36,-4); p.quadTo(-24,-24,-4,-16); p.quadTo(8,-32,20,-24); p.moveTo(-4,-16); p.quadTo(8,0,20,-8); 211 p.moveTo(-8,20); p.quadTo(12,0,36,8); p.quadTo(48,24,60,16); p.moveTo(36,8); p.quadTo(48,-8,60,0); 212 KelpS.add(new Instr(Form.PLIN, p)); 213 } 214 public static final BufferedImage KelpA = new BufferedImage(240, 240, BufferedImage.TYPE_INT_ARGB); 215 static { 216 Graphics2D g2 = KelpA.createGraphics(); 217 g2.setStroke(new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); 218 g2.setBackground(new Color(0, true)); 219 g2.clearRect(0, 0, 240, 240); 220 g2.setPaint(Color.black); 221 Path2D.Double p = new Path2D.Double(); 222 p.moveTo(0,60); p.curveTo(40,40,44,100,84,80); p.moveTo(0,60); p.quadTo(12,80,28,72); p.moveTo(24,56); p.quadTo(36,36,56,44); p.quadTo(68,28,80,36); 223 p.moveTo(56,44); p.quadTo(68,60,80,52); p.moveTo(52,76); p.quadTo(72,60,96,68); p.quadTo(108,84,120,76); p.moveTo(96,68); p.quadTo(108,52,120,60); 224 p.moveTo(120,180); p.curveTo(160,160,164,220,204,200); p.moveTo(120,180); p.quadTo(132,200,148,192); p.moveTo(144,176); p.quadTo(156,156,176,164); p.quadTo(188,148,200,156); 225 p.moveTo(176,164); p.quadTo(188,180,200,172); p.moveTo(172,196); p.quadTo(192,180,216,188); p.quadTo(228,204,240,196); p.moveTo(216,188); p.quadTo(228,172,240,180); 226 g2.draw(p); 227 } 29 // CHECKSTYLE.OFF: LineLength 30 public static final Symbol Plane = new Symbol(); 31 static { 32 Plane.add(new Instr(Form.BBOX, new Rectangle2D.Double(-60, -60, 120, 120))); 33 Path2D.Double p = new Path2D.Double(); p.moveTo(40, 20); p.lineTo(50, 10); p.lineTo(27.0, 13.3); p.lineTo(23.7, 6.8); p.lineTo(40.0, 5.0); p.curveTo(55, 4, 55, -9, 40, -10); 34 p.quadTo(31, -11, 30, -15); p.lineTo(-30, 2); p.quadTo(-35, -12, -45, -15); p.quadTo(-56, -3, -50, 15); p.lineTo(18.4, 7.3); p.lineTo(21.7, 14); p.lineTo(-20, 20); p.closePath(); 35 Plane.add(new Instr(Form.PGON, p)); 36 } 37 38 public static final Symbol Cable = new Symbol(); 39 static { 40 Cable.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -60, 60, 60))); 41 Cable.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 42 Cable.add(new Instr(Form.FILL, new Color(0xc480ff))); 43 Path2D.Double p = new Path2D.Double(); p.moveTo(0, 0); p.curveTo(-13, -13, -13, -17, 0, -30); p.curveTo(13, -43, 13, -47, 0, -60); 44 Cable.add(new Instr(Form.PLIN, p)); 45 } 46 47 public static final Symbol CableDot = new Symbol(); 48 static { 49 CableDot.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -60, 60, 60))); 50 CableDot.add(new Instr(Form.RSHP, new Ellipse2D.Double(-10, -40, 20, 20))); 51 } 52 53 public static final Symbol CableDash = new Symbol(); 54 static { 55 CableDash.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -60, 60, 60))); 56 CableDash.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 57 CableDash.add(new Instr(Form.LINE, new Line2D.Double(0, -15, 0, -45))); 58 } 59 60 public static final Symbol CableFlash = new Symbol(); 61 static { 62 CableFlash.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -60, 60, 60))); 63 Path2D.Double p = new Path2D.Double(); p.moveTo(-30, -25); p.lineTo(-10, -40); p.lineTo(10, -26); p.lineTo(30, -35); p.lineTo(10, -20); p.lineTo(-10, -34); p.closePath(); 64 CableFlash.add(new Instr(Form.PGON, p)); 65 } 66 67 public static final Symbol LaneArrow = new Symbol(); 68 static { 69 LaneArrow.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -240, 40, 240))); 70 LaneArrow.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 71 LaneArrow.add(new Instr(Form.FILL, Symbols.Mtss)); 72 Path2D.Double p = new Path2D.Double(); p.moveTo(15, 0); p.lineTo(15, -195); p.lineTo(40, -195); 73 p.lineTo(0, -240); p.lineTo(-40, -195); p.lineTo(-15, -195); p.lineTo(-15, 0); p.closePath(); 74 LaneArrow.add(new Instr(Form.PLIN, p)); 75 } 76 77 public static final Symbol LineAnchor = new Symbol(); 78 static { 79 LineAnchor.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -60, 60, 90))); 80 LineAnchor.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.5, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(-90.0)))))); 81 } 82 83 public static final Symbol LinePlane = new Symbol(); 84 static { 85 LinePlane.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -60, 60, 90))); 86 LinePlane.add(new Instr(Form.FILL, new Color(0xc480ff))); 87 LinePlane.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Areas.Plane, 0.5, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(-90.0)))))); 88 } 89 90 public static final Symbol MarineFarm = new Symbol(); 91 static { 92 MarineFarm.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 93 Path2D.Double p = new Path2D.Double(); p.moveTo(-23, 12); p.lineTo(-23, 23); p.lineTo(23, 23); p.lineTo(23, 12); p.moveTo(-8, 15); p.lineTo(-8, 23); p.moveTo(8, 15); p.lineTo(8, 23); 94 p.moveTo(-23, -12); p.lineTo(-23, -23); p.lineTo(23, -23); p.lineTo(23, -12); p.moveTo(-8, -15); p.lineTo(-8, -23); p.moveTo(8, -15); p.lineTo(8, -23); 95 p.moveTo(-21, 8); p.quadTo(-1, -14, 21, 0); p.quadTo(-1, 14, -21, -8); p.moveTo(7, 6); p.quadTo(2, 0, 7, -6); 96 MarineFarm.add(new Instr(Form.PLIN, p)); 97 MarineFarm.add(new Instr(Form.RSHP, new Ellipse2D.Double(9, -2, 4, 4))); 98 } 99 100 public static final Symbol NoWake = new Symbol(); 101 static { 102 NoWake.add(new Instr(Form.STRK, new BasicStroke(12, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 103 NoWake.add(new Instr(Form.FILL, new Color(0xa30075))); 104 Path2D.Double p = new Path2D.Double(); p.moveTo(-60, 20); p.curveTo(-28, 20, -32, 0, 0, 0); p.curveTo(32, 0, 28, 20, 60, 20); p.moveTo(-60, 0); p.curveTo(-28, 0, -32, -20, 0, -20); p.curveTo(32, -20, 28, 0, 60, 0); 105 NoWake.add(new Instr(Form.PLIN, p)); 106 NoWake.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 107 NoWake.add(new Instr(Form.LINE, new Line2D.Double(-60, 60, 60, -60))); 108 NoWake.add(new Instr(Form.LINE, new Line2D.Double(-60, -60, 60, 60))); 109 } 110 111 public static final Symbol Pipeline = new Symbol(); 112 static { 113 Pipeline.add(new Instr(Form.BBOX, new Rectangle2D.Double(-15, -60, 30, 60))); 114 Pipeline.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 115 Pipeline.add(new Instr(Form.FILL, new Color(0xc480ff))); 116 Pipeline.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -50))); 117 Pipeline.add(new Instr(Form.RSHP, new Ellipse2D.Double(-10, -60, 20, 20))); 118 } 119 120 public static final Symbol Restricted = new Symbol(); 121 static { 122 Restricted.add(new Instr(Form.BBOX, new Rectangle2D.Double(-15, -30, 30, 30))); 123 Restricted.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 124 Restricted.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -30))); 125 Restricted.add(new Instr(Form.LINE, new Line2D.Double(0, -15, 17, -15))); 126 } 127 128 public static final Symbol Rock = new Symbol(); 129 static { 130 Rock.add(new Instr(Form.FILL, new Color(0x80c0ff))); 131 Rock.add(new Instr(Form.RSHP, new Ellipse2D.Double(-30, -30, 60, 60))); 132 Rock.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5, 5}, 0))); 133 Rock.add(new Instr(Form.FILL, Color.black)); 134 Rock.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30, -30, 60, 60))); 135 Rock.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 136 Rock.add(new Instr(Form.LINE, new Line2D.Double(-20, 0, 20, 0))); 137 Rock.add(new Instr(Form.LINE, new Line2D.Double(0, -20, 0, 20))); 138 } 139 140 public static final Symbol RockA = new Symbol(); 141 static { 142 RockA.add(new Instr(Form.FILL, new Color(0x80c0ff))); 143 RockA.add(new Instr(Form.RSHP, new Ellipse2D.Double(-30, -30, 60, 60))); 144 RockA.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5, 5}, 0))); 145 RockA.add(new Instr(Form.FILL, Color.black)); 146 RockA.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30, -30, 60, 60))); 147 RockA.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 148 RockA.add(new Instr(Form.LINE, new Line2D.Double(-20, 0, 20, 0))); 149 RockA.add(new Instr(Form.LINE, new Line2D.Double(0, -20, 0, 20))); 150 RockA.add(new Instr(Form.RSHP, new Ellipse2D.Double(-17, -17, 8, 8))); 151 RockA.add(new Instr(Form.RSHP, new Ellipse2D.Double(-17, 9, 8, 8))); 152 RockA.add(new Instr(Form.RSHP, new Ellipse2D.Double(9, -17, 8, 8))); 153 RockA.add(new Instr(Form.RSHP, new Ellipse2D.Double(9, 9, 8, 8))); 154 } 155 156 public static final Symbol RockC = new Symbol(); 157 static { 158 RockC.add(new Instr(Form.FILL, new Color(0x80c0ff))); 159 RockC.add(new Instr(Form.RSHP, new Ellipse2D.Double(-30, -30, 60, 60))); 160 RockC.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5, 5}, 0))); 161 RockC.add(new Instr(Form.FILL, Color.black)); 162 RockC.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30, -30, 60, 60))); 163 RockC.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 164 RockC.add(new Instr(Form.LINE, new Line2D.Double(-20, 0, 20, 0))); 165 RockC.add(new Instr(Form.LINE, new Line2D.Double(-10, 17.3, 10, -17.3))); 166 RockC.add(new Instr(Form.LINE, new Line2D.Double(10, 17.3, -10, -17.3))); 167 } 168 169 public static final Symbol Seaplane = new Symbol(); 170 static { 171 Seaplane.add(new Instr(Form.BBOX, new Rectangle2D.Double(-60, -60, 120, 120))); 172 Seaplane.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 173 Seaplane.add(new Instr(Form.ELPS, new Ellipse2D.Double(-58, -58, 116, 116))); 174 Seaplane.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Areas.Plane, 1.0, 0, 0, null, null))); 175 } 176 177 public static final Symbol WindFarm = new Symbol(); 178 static { 179 WindFarm.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 180 WindFarm.add(new Instr(Form.ELPS, new Ellipse2D.Double(-100, -100, 200, 200))); 181 WindFarm.add(new Instr(Form.LINE, new Line2D.Double(-35, 50, 35, 50))); 182 WindFarm.add(new Instr(Form.LINE, new Line2D.Double(0, 50, 0, -27.5))); 183 WindFarm.add(new Instr(Form.LINE, new Line2D.Double(0, -27.5, 30, -27.5))); 184 WindFarm.add(new Instr(Form.LINE, new Line2D.Double(0, -27.5, -13.8, -3.8))); 185 WindFarm.add(new Instr(Form.LINE, new Line2D.Double(0, -27.5, -13.8, -53.6))); 186 } 187 188 public static final Symbol WreckD = new Symbol(); 189 static { 190 WreckD.add(new Instr(Form.FILL, new Color(0x80c0ff))); 191 WreckD.add(new Instr(Form.RSHP, new Ellipse2D.Double(-50, -40, 100, 80))); 192 WreckD.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5, 5}, 0))); 193 WreckD.add(new Instr(Form.FILL, Color.black)); 194 WreckD.add(new Instr(Form.ELPS, new Ellipse2D.Double(-50, -40, 100, 80))); 195 WreckD.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 196 WreckD.add(new Instr(Form.LINE, new Line2D.Double(-40, 0, 40, 0))); 197 WreckD.add(new Instr(Form.LINE, new Line2D.Double(0, -30, 0, 30))); 198 WreckD.add(new Instr(Form.LINE, new Line2D.Double(-20, -15, -20, 15))); 199 WreckD.add(new Instr(Form.LINE, new Line2D.Double(20, -15, 20, 15))); 200 } 201 202 public static final Symbol WreckND = new Symbol(); 203 static { 204 WreckND.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 205 WreckND.add(new Instr(Form.LINE, new Line2D.Double(-40, 0, 40, 0))); 206 WreckND.add(new Instr(Form.LINE, new Line2D.Double(0, -30, 0, 30))); 207 WreckND.add(new Instr(Form.LINE, new Line2D.Double(-20, -15, -20, 15))); 208 WreckND.add(new Instr(Form.LINE, new Line2D.Double(20, -15, 20, 15))); 209 } 210 211 public static final Symbol WreckS = new Symbol(); 212 static { 213 WreckS.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 214 WreckS.add(new Instr(Form.ELPS, new Ellipse2D.Double(-6, -6, 12, 12))); 215 WreckS.add(new Instr(Form.LINE, new Line2D.Double(-40, 0, -6, 0))); 216 WreckS.add(new Instr(Form.LINE, new Line2D.Double(40, 0, 6, 0))); 217 Path2D.Double p = new Path2D.Double(); p.moveTo(-30, 0); p.lineTo(-40, -25); p.lineTo(-0.3, -12.6); p.lineTo(13.7, -37.7); p.lineTo(16.3, -36.3); 218 p.lineTo(2.7, -11.6); p.lineTo(37.5, 0); p.lineTo(6, 0); p.curveTo(5.6, -8, -5.6, -8, -6, 0); p.closePath(); 219 WreckS.add(new Instr(Form.PGON, p)); 220 } 221 222 public static final BufferedImage Sandwaves = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB); 223 static { 224 Graphics2D g2 = Sandwaves.createGraphics(); 225 g2.setStroke(new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); 226 g2.setBackground(new Color(0, true)); 227 g2.clearRect(0, 0, 100, 100); 228 g2.setPaint(new Color(0xffd400)); 229 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0, 34.5); p.lineTo(03.3, 30.8); p.lineTo(09.9, 19.3); p.lineTo(13.2, 16.0); p.lineTo(16.5, 16.1); p.lineTo(18.2, 19.5); 230 p.lineTo(19.9, 25.0); p.lineTo(21.6, 30.3); p.lineTo(23.3, 33.4); p.lineTo(25.0, 33.3); p.lineTo(28.3, 30.1); p.lineTo(31.6, 25.0); p.lineTo(34.9, 20.1); p.lineTo(38.2, 17.2); 231 p.lineTo(41.5, 17.3); p.lineTo(43.2, 20.3); p.lineTo(44.9, 25); p.lineTo(46.6, 29.6); p.lineTo(48.3, 32.2); p.lineTo(50.0, 32.1); 232 p.moveTo(50.0, 84.5); p.lineTo(53.3, 80.8); p.lineTo(56.6, 75.0); p.lineTo(59.9, 69.3); p.lineTo(63.2, 66.0); p.lineTo(66.5, 66.1); p.lineTo(68.2, 69.5); p.lineTo(69.9, 75.0); 233 p.lineTo(71.6, 80.3); p.lineTo(73.3, 83.4); p.lineTo(75.0, 83.3); p.lineTo(78.3, 80.1); p.lineTo(81.6, 75.0); p.lineTo(84.9, 70.1); p.lineTo(88.2, 67.2); p.lineTo(91.5, 67.3); 234 p.lineTo(93.2, 70.3); p.lineTo(94.9, 75.0); p.lineTo(96.6, 79.6); p.lineTo(98.3, 82.2); p.lineTo(100.0, 82.1); 235 g2.draw(p); 236 } 237 238 public static final Symbol KelpS = new Symbol(); 239 static { 240 KelpS.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 241 Path2D.Double p = new Path2D.Double(); p.moveTo(-60, 0); p.curveTo(-20, -20, -24, 40, 24, 20); p.moveTo(-60, 0); p.quadTo(-48, 20, -32, 12); 242 p.moveTo(-36, -4); p.quadTo(-24, -24, -4, -16); p.quadTo(8, -32, 20, -24); p.moveTo(-4, -16); p.quadTo(8, 0, 20, -8); 243 p.moveTo(-8, 20); p.quadTo(12, 0, 36, 8); p.quadTo(48, 24, 60, 16); p.moveTo(36, 8); p.quadTo(48, -8, 60, 0); 244 KelpS.add(new Instr(Form.PLIN, p)); 245 } 246 247 public static final BufferedImage KelpA = new BufferedImage(240, 240, BufferedImage.TYPE_INT_ARGB); 248 static { 249 Graphics2D g2 = KelpA.createGraphics(); 250 g2.setStroke(new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); 251 g2.setBackground(new Color(0, true)); 252 g2.clearRect(0, 0, 240, 240); 253 g2.setPaint(Color.black); 254 Path2D.Double p = new Path2D.Double(); 255 p.moveTo(0, 60); p.curveTo(40, 40, 44, 100, 84, 80); p.moveTo(0, 60); p.quadTo(12, 80, 28, 72); p.moveTo(24, 56); p.quadTo(36, 36, 56, 44); p.quadTo(68, 28, 80, 36); 256 p.moveTo(56, 44); p.quadTo(68, 60, 80, 52); p.moveTo(52, 76); p.quadTo(72, 60, 96, 68); p.quadTo(108, 84, 120, 76); p.moveTo(96, 68); p.quadTo(108, 52, 120, 60); 257 p.moveTo(120, 180); p.curveTo(160, 160, 164, 220, 204, 200); p.moveTo(120, 180); p.quadTo(132, 200, 148, 192); p.moveTo(144, 176); p.quadTo(156, 156, 176, 164); p.quadTo(188, 148, 200, 156); 258 p.moveTo(176, 164); p.quadTo(188, 180, 200, 172); p.moveTo(172, 196); p.quadTo(192, 180, 216, 188); p.quadTo(228, 204, 240, 196); p.moveTo(216, 188); p.quadTo(228, 172, 240, 180); 259 g2.draw(p); 260 } 228 261 } -
applications/editors/josm/plugins/seachart/src/symbols/Beacons.java
r32393 r32394 12 12 import java.awt.BasicStroke; 13 13 import java.awt.Color; 14 import java.awt.geom.*; 14 import java.awt.geom.Arc2D; 15 import java.awt.geom.Ellipse2D; 16 import java.awt.geom.GeneralPath; 17 import java.awt.geom.Line2D; 18 import java.awt.geom.Path2D; 19 import java.awt.geom.Rectangle2D; 15 20 import java.util.EnumMap; 16 21 17 import symbols.Symbols.*; 18 import s57.S57val.*; 22 import s57.S57val.BcnSHP; 23 import symbols.Symbols.Form; 24 import symbols.Symbols.Instr; 25 import symbols.Symbols.Symbol; 19 26 20 27 public class Beacons { 21 22 public static final Symbol Beacon = new Symbol(); 23 static { 24 Symbol colours = new Symbol(); 25 Path2D.Double p = new Path2D.Double(); p.moveTo(-6.0,-8.5); p.lineTo(-6.0,-70.0); p.lineTo(6.0,-70.0); p.lineTo(6.0,-8.5); p.curveTo(6.0,-10.0,-6.0,-10.0,-6.0,-8.5); p.closePath(); 26 colours.add(new Instr(Form.P1, p)); 27 p = new Path2D.Double(); p.moveTo(-6.0,-8.5); p.lineTo(-6.0,-40.0); p.lineTo(6.0,-40.0); p.lineTo(6.0,-8.5); p.curveTo(6.0,-10.0,-6.0,-10.0,-6.0,-8.5); p.closePath(); 28 colours.add(new Instr(Form.H2, p)); 29 p = new Path2D.Double(); p.moveTo(-6.0,-30.0); p.lineTo(-6.0,-50.0); p.lineTo(6.0,-50.0); p.lineTo(6.0,-30.0); p.closePath(); 30 colours.add(new Instr(Form.H3, p)); 31 p = new Path2D.Double(); p.moveTo(-6.0,-40.0); p.lineTo(-6.0,-55.0); p.lineTo(6.0,-55.0); p.lineTo(6.0,-40.0); p.closePath(); 32 colours.add(new Instr(Form.H4, p)); 33 p = new Path2D.Double(); p.moveTo(-6.0,-25.0); p.lineTo(-6.0,-40.0); p.lineTo(6.0,-40.0); p.lineTo(6.0,-25.0); p.closePath(); 34 colours.add(new Instr(Form.H5, p)); 35 p = new Path2D.Double(); p.moveTo(0.0,-70.0); p.lineTo(6.0,-70.0); p.lineTo(6.0,-8.5); p.quadTo(3.0,-9.3,0.0,-10.0); p.closePath(); 36 colours.add(new Instr(Form.V2, p)); 37 Beacon.add(new Instr(Form.COLR, colours)); 38 Beacon.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 39 Beacon.add(new Instr(Form.FILL, Color.black)); 40 Beacon.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 41 Beacon.add(new Instr(Form.LINE, new Line2D.Double(-20,0,-10,0))); 42 Beacon.add(new Instr(Form.LINE, new Line2D.Double(10,0,20,0))); 43 p = new Path2D.Double(); p.moveTo(-6.0,-8.5); p.lineTo(-6.0,-70.0); p.lineTo(6.0,-70.0); p.lineTo(6.0,-8.5); 44 Beacon.add(new Instr(Form.PLIN, p)); 45 } 46 public static final Symbol Cairn = new Symbol(); 47 static { 48 Cairn.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 49 Cairn.add(new Instr(Form.FILL, Color.black)); 50 Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 51 Cairn.add(new Instr(Form.LINE, new Line2D.Double(-40,0,-10,0))); 52 Cairn.add(new Instr(Form.LINE, new Line2D.Double(10,0,40,0))); 53 Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(3,-40,40,40))); 54 Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(-43,-40,40,40))); 55 Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(-18,-70,36,36))); 56 } 57 public static final Symbol FogSignal = new Symbol(); 58 static { 59 FogSignal.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 60 FogSignal.add(new Instr(Form.FILL, Color.black)); 61 FogSignal.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 62 FogSignal.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 63 FogSignal.add(new Instr(Form.FILL, new Color(0xd400d4))); 64 FogSignal.add(new Instr(Form.EARC, new Arc2D.Double(-120.0,-120.0,240.0,240.0,190.0,50.0,Arc2D.OPEN))); 65 FogSignal.add(new Instr(Form.EARC, new Arc2D.Double(-92.5,-92.5,185.0,185.0,190.0,50.0,Arc2D.OPEN))); 66 FogSignal.add(new Instr(Form.EARC, new Arc2D.Double(-65.0,-65.0,130.0,130.0,190.0,50.0,Arc2D.OPEN))); 67 } 68 public static final Symbol LightFlare = new Symbol(); 69 static { 70 LightFlare.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-100,40,100))); 71 LightFlare.add(new Instr(Form.RSHP, new Ellipse2D.Double(-3,-3,6,6))); 72 Path2D.Double p = new Path2D.Double(); 73 p.moveTo(0.0,-25.0); p.lineTo(15.0,-95.0); p.curveTo(20.0,-123.0,-20.0,-123.0,-15.0,-95.0); 74 p.closePath(); 75 LightFlare.add(new Instr(Form.PGON, p)); 76 } 77 public static final Symbol LightMajor = new Symbol(); 78 static { 79 LightMajor.add(new Instr(Form.FILL, Color.black)); 80 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_NON_ZERO); 81 p.moveTo(0.0,-7.0); p.curveTo(-9.3,-6.5,-9.3,6.5,0.0,7.0); p.curveTo(9.3,6.5,9.3,-6.5,0.0,-7.0); p.closePath(); 82 p.moveTo(0.0,-35.5); p.lineTo(8.0,-11.2); p.lineTo(33.5,-11.2); p.lineTo(12.8,4.0); 83 p.lineTo(20.5,28.5); p.lineTo(0.0,13.0); p.lineTo(-20.5,28.5); p.lineTo(-12.8,4.0); p.lineTo(-33.5,-11.2); p.lineTo(-8.0,-11.2); p.closePath(); 84 LightMajor.add(new Instr(Form.PGON, p)); 85 } 86 public static final Symbol LightMinor = new Symbol(); 87 static { 88 LightMinor.add(new Instr(Form.FILL, Color.black)); 89 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-26.5); p.lineTo(6.0,-8.4); p.lineTo(25.1,-8.4); p.lineTo(9.6,3.0); 90 p.lineTo(15.4,21.4); p.lineTo(0.0,9.8); p.lineTo(-15.4,21.4); p.lineTo(-9.6,3.0); p.lineTo(-25.1,-8.4); p.lineTo(-6.0,-8.4); p.closePath(); 91 LightMinor.add(new Instr(Form.PGON, p)); 92 } 93 public static final Symbol PerchPort = new Symbol(); 94 static { 95 PerchPort.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 96 PerchPort.add(new Instr(Form.FILL, Color.black)); 97 PerchPort.add(new Instr(Form.LINE, new Line2D.Double(-10,0,10,0))); 98 PerchPort.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-40))); 99 PerchPort.add(new Instr(Form.LINE, new Line2D.Double(25,-70,0,-40))); 100 PerchPort.add(new Instr(Form.LINE, new Line2D.Double(-25,-70,0,-40))); 101 } 102 public static final Symbol PerchStarboard = new Symbol(); 103 static { 104 PerchStarboard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 105 PerchStarboard.add(new Instr(Form.FILL, Color.black)); 106 PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(-10,0,10,0))); 107 PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-70))); 108 PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(25,-40,0,-68.7))); 109 PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(-25,-40,0,-68.7))); 110 } 111 public static final Symbol RadarStation = new Symbol(); 112 static { 113 RadarStation.add(new Instr(Form.STRK, new BasicStroke(2.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 114 RadarStation.add(new Instr(Form.FILL, new Color(0xd400d4))); 115 RadarStation.add(new Instr(Form.ELPS, new Ellipse2D.Double(-125,-125,250,250))); 116 } 117 public static final Symbol Stake = new Symbol(); 118 static { 119 Stake.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 120 Stake.add(new Instr(Form.FILL, Color.black)); 121 Stake.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-70))); 122 Symbol colours = new Symbol(); 123 Path2D.Double p = new Path2D.Double(); p.moveTo(-2.0,0.0); p.lineTo(-2.0,-70.0); p.lineTo(2.0,-70.0); p.lineTo(2.0,0.0); p.closePath(); 124 colours.add(new Instr(Form.P1, p)); 125 p = new Path2D.Double(); p.moveTo(-2.0,0.0); p.lineTo(-2.0,-35.0); p.lineTo(2.0,-35.0); p.lineTo(2.0,0.0); p.closePath(); 126 colours.add(new Instr(Form.H2, p)); 127 p = new Path2D.Double(); p.moveTo(-2.0,-23.3); p.lineTo(-2.0,-46.7); p.lineTo(2.0,-46.7); p.lineTo(2.0,-23.3); p.closePath(); 128 colours.add(new Instr(Form.H3, p)); 129 p = new Path2D.Double(); p.moveTo(-2.0,-35.0); p.lineTo(-2.0,-52.5); p.lineTo(2.0,-52.5); p.lineTo(2.0,-35.0); p.closePath(); 130 colours.add(new Instr(Form.H4, p)); 131 p = new Path2D.Double(); p.moveTo(-2.0,-17.5); p.lineTo(-2.0,-35.0); p.lineTo(2.0,-35.0); p.lineTo(2.0,-17.5); p.closePath(); 132 colours.add(new Instr(Form.H5, p)); 133 Stake.add(new Instr(Form.COLR, colours)); 134 Stake.add(new Instr(Form.FILL, Color.black)); 135 Stake.add(new Instr(Form.LINE, new Line2D.Double(-10,0,10,0))); 136 } 137 public static final Symbol Tower = new Symbol(); 138 static { 139 Symbol colours = new Symbol(); 140 Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(-20.0,-70.0); p.lineTo(20.0,-70.0); p.lineTo(25.0,0.0); p.lineTo(10.0,0.0); p.curveTo(10.0,-13.3,-10.0,-13.3,-10.0,0.0); p.closePath(); 141 colours.add(new Instr(Form.P1, p)); 142 p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(-22.5,-35.0); p.lineTo(22.5,-35.0); p.lineTo(25.0,0.0); p.lineTo(10.0,0.0); p.curveTo(10.0,-13.3,-10.0,-13.3,-10.0,0.0); p.closePath(); 143 colours.add(new Instr(Form.H2, p)); 144 p = new Path2D.Double(); p.moveTo(-23.3,-23.3); p.lineTo(-21.7,-46.7); p.lineTo(21.7,-46.7); p.lineTo(23.3,-23.3); p.closePath(); 145 colours.add(new Instr(Form.H3, p)); 146 p = new Path2D.Double(); p.moveTo(-22.5,-35.0); p.lineTo(-21.0,-52.5); p.lineTo(21.0,-52.5); p.lineTo(22.5,-35.0); p.closePath(); 147 colours.add(new Instr(Form.H4, p)); 148 p = new Path2D.Double(); p.moveTo(-23.6,-17.5); p.lineTo(-22.5,-35.0); p.lineTo(22.5,-35.0); p.lineTo(23.6,-17.5); p.closePath(); 149 colours.add(new Instr(Form.H5, p)); 150 p = new Path2D.Double(); p.moveTo(0.0,-70.0); p.lineTo(20.0,-70.0); p.lineTo(25.0,0.0); p.lineTo(10.0,0.0); p.quadTo(10.0,-10.0,0.0,-10.0); p.closePath(); 151 colours.add(new Instr(Form.V2, p)); 152 Tower.add(new Instr(Form.COLR, colours)); 153 Tower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 154 Tower.add(new Instr(Form.FILL, Color.black)); 155 Tower.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 156 Tower.add(new Instr(Form.LINE, new Line2D.Double(-35,0,-10,0))); 157 Tower.add(new Instr(Form.LINE, new Line2D.Double(10,0,35,0))); 158 p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(-20.0,-70.0); p.lineTo(20.0,-70.0); p.lineTo(25.0,0.0); 159 Tower.add(new Instr(Form.PLIN, p)); 160 } 161 public static final Symbol WithyPort = new Symbol(); 162 static { 163 WithyPort.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 164 WithyPort.add(new Instr(Form.FILL, Color.black)); 165 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(-10,0,10,0))); 166 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-70))); 167 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(20,-60,0,-50))); 168 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(-20,-60,0,-50))); 169 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(30,-35,0,-21))); 170 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(-30,-35,0,-21))); 171 } 172 public static final Symbol WithyStarboard = new Symbol(); 173 static { 174 WithyStarboard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 175 WithyStarboard.add(new Instr(Form.FILL, Color.black)); 176 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(-10,0,10,0))); 177 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-70))); 178 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(20,-50,0,-60))); 179 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(-20,-50,0,-60))); 180 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(30,-21,0,-35))); 181 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(-30,-21,0,-35))); 182 } 183 184 public static final EnumMap<BcnSHP, Symbol> Shapes = new EnumMap<>(BcnSHP.class); 185 static { 186 Shapes.put(BcnSHP.BCN_UNKN, Beacons.Beacon); Shapes.put(BcnSHP.BCN_STAK, Beacons.Stake); Shapes.put(BcnSHP.BCN_TOWR, Beacons.Tower); 187 Shapes.put(BcnSHP.BCN_LATT, Beacons.Beacon); Shapes.put(BcnSHP.BCN_PILE, Beacons.Beacon); Shapes.put(BcnSHP.BCN_POLE, Beacons.Stake); 188 Shapes.put(BcnSHP.BCN_CARN, Beacons.Cairn); Shapes.put(BcnSHP.BCN_BUOY, Beacons.Beacon); Shapes.put(BcnSHP.BCN_POST, Beacons.Stake); 189 Shapes.put(BcnSHP.BCN_PRCH, Beacons.Stake); 190 } 28 // CHECKSTYLE.OFF: LineLength 29 public static final Symbol Beacon = new Symbol(); 30 static { 31 Symbol colours = new Symbol(); 32 Path2D.Double p = new Path2D.Double(); p.moveTo(-6.0, -8.5); p.lineTo(-6.0, -70.0); p.lineTo(6.0, -70.0); p.lineTo(6.0, -8.5); p.curveTo(6.0, -10.0, -6.0, -10.0, -6.0, -8.5); p.closePath(); 33 colours.add(new Instr(Form.P1, p)); 34 p = new Path2D.Double(); p.moveTo(-6.0, -8.5); p.lineTo(-6.0, -40.0); p.lineTo(6.0, -40.0); p.lineTo(6.0, -8.5); p.curveTo(6.0, -10.0, -6.0, -10.0, -6.0, -8.5); p.closePath(); 35 colours.add(new Instr(Form.H2, p)); 36 p = new Path2D.Double(); p.moveTo(-6.0, -30.0); p.lineTo(-6.0, -50.0); p.lineTo(6.0, -50.0); p.lineTo(6.0, -30.0); p.closePath(); 37 colours.add(new Instr(Form.H3, p)); 38 p = new Path2D.Double(); p.moveTo(-6.0, -40.0); p.lineTo(-6.0, -55.0); p.lineTo(6.0, -55.0); p.lineTo(6.0, -40.0); p.closePath(); 39 colours.add(new Instr(Form.H4, p)); 40 p = new Path2D.Double(); p.moveTo(-6.0, -25.0); p.lineTo(-6.0, -40.0); p.lineTo(6.0, -40.0); p.lineTo(6.0, -25.0); p.closePath(); 41 colours.add(new Instr(Form.H5, p)); 42 p = new Path2D.Double(); p.moveTo(0.0, -70.0); p.lineTo(6.0, -70.0); p.lineTo(6.0, -8.5); p.quadTo(3.0, -9.3, 0.0, -10.0); p.closePath(); 43 colours.add(new Instr(Form.V2, p)); 44 Beacon.add(new Instr(Form.COLR, colours)); 45 Beacon.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 46 Beacon.add(new Instr(Form.FILL, Color.black)); 47 Beacon.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 48 Beacon.add(new Instr(Form.LINE, new Line2D.Double(-20, 0, -10, 0))); 49 Beacon.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 20, 0))); 50 p = new Path2D.Double(); p.moveTo(-6.0, -8.5); p.lineTo(-6.0, -70.0); p.lineTo(6.0, -70.0); p.lineTo(6.0, -8.5); 51 Beacon.add(new Instr(Form.PLIN, p)); 52 } 53 54 public static final Symbol Cairn = new Symbol(); 55 static { 56 Cairn.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 57 Cairn.add(new Instr(Form.FILL, Color.black)); 58 Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 59 Cairn.add(new Instr(Form.LINE, new Line2D.Double(-40, 0, -10, 0))); 60 Cairn.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 40, 0))); 61 Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(3, -40, 40, 40))); 62 Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(-43, -40, 40, 40))); 63 Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(-18, -70, 36, 36))); 64 } 65 66 public static final Symbol FogSignal = new Symbol(); 67 static { 68 FogSignal.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 69 FogSignal.add(new Instr(Form.FILL, Color.black)); 70 FogSignal.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 71 FogSignal.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 72 FogSignal.add(new Instr(Form.FILL, new Color(0xd400d4))); 73 FogSignal.add(new Instr(Form.EARC, new Arc2D.Double(-120.0, -120.0, 240.0, 240.0, 190.0, 50.0, Arc2D.OPEN))); 74 FogSignal.add(new Instr(Form.EARC, new Arc2D.Double(-92.5, -92.5, 185.0, 185.0, 190.0, 50.0, Arc2D.OPEN))); 75 FogSignal.add(new Instr(Form.EARC, new Arc2D.Double(-65.0, -65.0, 130.0, 130.0, 190.0, 50.0, Arc2D.OPEN))); 76 } 77 78 public static final Symbol LightFlare = new Symbol(); 79 static { 80 LightFlare.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -100, 40, 100))); 81 LightFlare.add(new Instr(Form.RSHP, new Ellipse2D.Double(-3, -3, 6, 6))); 82 Path2D.Double p = new Path2D.Double(); 83 p.moveTo(0.0, -25.0); p.lineTo(15.0, -95.0); p.curveTo(20.0, -123.0, -20.0, -123.0, -15.0, -95.0); 84 p.closePath(); 85 LightFlare.add(new Instr(Form.PGON, p)); 86 } 87 88 public static final Symbol LightMajor = new Symbol(); 89 static { 90 LightMajor.add(new Instr(Form.FILL, Color.black)); 91 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_NON_ZERO); 92 p.moveTo(0.0, -7.0); p.curveTo(-9.3, -6.5, -9.3, 6.5, 0.0, 7.0); p.curveTo(9.3, 6.5, 9.3, -6.5, 0.0, -7.0); p.closePath(); 93 p.moveTo(0.0, -35.5); p.lineTo(8.0, -11.2); p.lineTo(33.5, -11.2); p.lineTo(12.8, 4.0); 94 p.lineTo(20.5, 28.5); p.lineTo(0.0, 13.0); p.lineTo(-20.5, 28.5); p.lineTo(-12.8, 4.0); p.lineTo(-33.5, -11.2); p.lineTo(-8.0, -11.2); p.closePath(); 95 LightMajor.add(new Instr(Form.PGON, p)); 96 } 97 98 public static final Symbol LightMinor = new Symbol(); 99 static { 100 LightMinor.add(new Instr(Form.FILL, Color.black)); 101 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0, -26.5); p.lineTo(6.0, -8.4); p.lineTo(25.1, -8.4); p.lineTo(9.6, 3.0); 102 p.lineTo(15.4, 21.4); p.lineTo(0.0, 9.8); p.lineTo(-15.4, 21.4); p.lineTo(-9.6, 3.0); p.lineTo(-25.1, -8.4); p.lineTo(-6.0, -8.4); p.closePath(); 103 LightMinor.add(new Instr(Form.PGON, p)); 104 } 105 106 public static final Symbol PerchPort = new Symbol(); 107 static { 108 PerchPort.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 109 PerchPort.add(new Instr(Form.FILL, Color.black)); 110 PerchPort.add(new Instr(Form.LINE, new Line2D.Double(-10, 0, 10, 0))); 111 PerchPort.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -40))); 112 PerchPort.add(new Instr(Form.LINE, new Line2D.Double(25, -70, 0, -40))); 113 PerchPort.add(new Instr(Form.LINE, new Line2D.Double(-25, -70, 0, -40))); 114 } 115 116 public static final Symbol PerchStarboard = new Symbol(); 117 static { 118 PerchStarboard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 119 PerchStarboard.add(new Instr(Form.FILL, Color.black)); 120 PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(-10, 0, 10, 0))); 121 PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -70))); 122 PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(25, -40, 0, -68.7))); 123 PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(-25, -40, 0, -68.7))); 124 } 125 126 public static final Symbol RadarStation = new Symbol(); 127 static { 128 RadarStation.add(new Instr(Form.STRK, new BasicStroke(2.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 129 RadarStation.add(new Instr(Form.FILL, new Color(0xd400d4))); 130 RadarStation.add(new Instr(Form.ELPS, new Ellipse2D.Double(-125, -125, 250, 250))); 131 } 132 133 public static final Symbol Stake = new Symbol(); 134 static { 135 Stake.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 136 Stake.add(new Instr(Form.FILL, Color.black)); 137 Stake.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -70))); 138 Symbol colours = new Symbol(); 139 Path2D.Double p = new Path2D.Double(); p.moveTo(-2.0, 0.0); p.lineTo(-2.0, -70.0); p.lineTo(2.0, -70.0); p.lineTo(2.0, 0.0); p.closePath(); 140 colours.add(new Instr(Form.P1, p)); 141 p = new Path2D.Double(); p.moveTo(-2.0, 0.0); p.lineTo(-2.0, -35.0); p.lineTo(2.0, -35.0); p.lineTo(2.0, 0.0); p.closePath(); 142 colours.add(new Instr(Form.H2, p)); 143 p = new Path2D.Double(); p.moveTo(-2.0, -23.3); p.lineTo(-2.0, -46.7); p.lineTo(2.0, -46.7); p.lineTo(2.0, -23.3); p.closePath(); 144 colours.add(new Instr(Form.H3, p)); 145 p = new Path2D.Double(); p.moveTo(-2.0, -35.0); p.lineTo(-2.0, -52.5); p.lineTo(2.0, -52.5); p.lineTo(2.0, -35.0); p.closePath(); 146 colours.add(new Instr(Form.H4, p)); 147 p = new Path2D.Double(); p.moveTo(-2.0, -17.5); p.lineTo(-2.0, -35.0); p.lineTo(2.0, -35.0); p.lineTo(2.0, -17.5); p.closePath(); 148 colours.add(new Instr(Form.H5, p)); 149 Stake.add(new Instr(Form.COLR, colours)); 150 Stake.add(new Instr(Form.FILL, Color.black)); 151 Stake.add(new Instr(Form.LINE, new Line2D.Double(-10, 0, 10, 0))); 152 } 153 154 public static final Symbol Tower = new Symbol(); 155 static { 156 Symbol colours = new Symbol(); 157 Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0, 0.0); p.lineTo(-20.0, -70.0); p.lineTo(20.0, -70.0); p.lineTo(25.0, 0.0); p.lineTo(10.0, 0.0); p.curveTo(10.0, -13.3, -10.0, -13.3, -10.0, 0.0); p.closePath(); 158 colours.add(new Instr(Form.P1, p)); 159 p = new Path2D.Double(); p.moveTo(-25.0, 0.0); p.lineTo(-22.5, -35.0); p.lineTo(22.5, -35.0); p.lineTo(25.0, 0.0); p.lineTo(10.0, 0.0); p.curveTo(10.0, -13.3, -10.0, -13.3, -10.0, 0.0); p.closePath(); 160 colours.add(new Instr(Form.H2, p)); 161 p = new Path2D.Double(); p.moveTo(-23.3, -23.3); p.lineTo(-21.7, -46.7); p.lineTo(21.7, -46.7); p.lineTo(23.3, -23.3); p.closePath(); 162 colours.add(new Instr(Form.H3, p)); 163 p = new Path2D.Double(); p.moveTo(-22.5, -35.0); p.lineTo(-21.0, -52.5); p.lineTo(21.0, -52.5); p.lineTo(22.5, -35.0); p.closePath(); 164 colours.add(new Instr(Form.H4, p)); 165 p = new Path2D.Double(); p.moveTo(-23.6, -17.5); p.lineTo(-22.5, -35.0); p.lineTo(22.5, -35.0); p.lineTo(23.6, -17.5); p.closePath(); 166 colours.add(new Instr(Form.H5, p)); 167 p = new Path2D.Double(); p.moveTo(0.0, -70.0); p.lineTo(20.0, -70.0); p.lineTo(25.0, 0.0); p.lineTo(10.0, 0.0); p.quadTo(10.0, -10.0, 0.0, -10.0); p.closePath(); 168 colours.add(new Instr(Form.V2, p)); 169 Tower.add(new Instr(Form.COLR, colours)); 170 Tower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 171 Tower.add(new Instr(Form.FILL, Color.black)); 172 Tower.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 173 Tower.add(new Instr(Form.LINE, new Line2D.Double(-35, 0, -10, 0))); 174 Tower.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 35, 0))); 175 p = new Path2D.Double(); p.moveTo(-25.0, 0.0); p.lineTo(-20.0, -70.0); p.lineTo(20.0, -70.0); p.lineTo(25.0, 0.0); 176 Tower.add(new Instr(Form.PLIN, p)); 177 } 178 179 public static final Symbol WithyPort = new Symbol(); 180 static { 181 WithyPort.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 182 WithyPort.add(new Instr(Form.FILL, Color.black)); 183 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(-10, 0, 10, 0))); 184 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -70))); 185 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(20, -60, 0, -50))); 186 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(-20, -60, 0, -50))); 187 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(30, -35, 0, -21))); 188 WithyPort.add(new Instr(Form.LINE, new Line2D.Double(-30, -35, 0, -21))); 189 } 190 191 public static final Symbol WithyStarboard = new Symbol(); 192 static { 193 WithyStarboard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 194 WithyStarboard.add(new Instr(Form.FILL, Color.black)); 195 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(-10, 0, 10, 0))); 196 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -70))); 197 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(20, -50, 0, -60))); 198 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(-20, -50, 0, -60))); 199 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(30, -21, 0, -35))); 200 WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(-30, -21, 0, -35))); 201 } 202 203 public static final EnumMap<BcnSHP, Symbol> Shapes = new EnumMap<>(BcnSHP.class); 204 static { 205 Shapes.put(BcnSHP.BCN_UNKN, Beacons.Beacon); Shapes.put(BcnSHP.BCN_STAK, Beacons.Stake); Shapes.put(BcnSHP.BCN_TOWR, Beacons.Tower); 206 Shapes.put(BcnSHP.BCN_LATT, Beacons.Beacon); Shapes.put(BcnSHP.BCN_PILE, Beacons.Beacon); Shapes.put(BcnSHP.BCN_POLE, Beacons.Stake); 207 Shapes.put(BcnSHP.BCN_CARN, Beacons.Cairn); Shapes.put(BcnSHP.BCN_BUOY, Beacons.Beacon); Shapes.put(BcnSHP.BCN_POST, Beacons.Stake); 208 Shapes.put(BcnSHP.BCN_PRCH, Beacons.Stake); 209 } 191 210 } -
applications/editors/josm/plugins/seachart/src/symbols/Buoys.java
r32393 r32394 12 12 import java.awt.BasicStroke; 13 13 import java.awt.Color; 14 import java.awt.geom.*; 14 import java.awt.geom.Arc2D; 15 import java.awt.geom.Ellipse2D; 16 import java.awt.geom.Line2D; 17 import java.awt.geom.Path2D; 15 18 import java.util.EnumMap; 16 19 17 20 import s57.S57val.BoySHP; 18 import symbols.Symbols.*; 21 import symbols.Symbols.Form; 22 import symbols.Symbols.Instr; 23 import symbols.Symbols.Symbol; 19 24 20 25 public class Buoys { 21 22 public static final Symbol Barrel = new Symbol(); 23 static { 24 Symbol colours = new Symbol(); 25 Path2D.Double p = new Path2D.Double(); p.moveTo(-50.0,0); p.curveTo(-50.0,-11.0,-45.0,-32.0,-32.0,-36.0); 26 p.curveTo(-18.0,-40.0,12.0,-40.0,25.0,-36.0); p.curveTo(38.0,-32.0,43.0,-11.0,43.0,0); 27 p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 28 colours.add(new Instr(Form.P1, p)); 29 Barrel.add(new Instr(Form.COLR, colours)); 30 Barrel.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 31 Barrel.add(new Instr(Form.FILL, Color.black)); 32 Barrel.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 33 Barrel.add(new Instr(Form.LINE, new Line2D.Double(-57,0,-10,0))); 34 Barrel.add(new Instr(Form.LINE, new Line2D.Double(10,0,50,0))); 35 p = new Path2D.Double(); p.moveTo(-50.0,0); p.curveTo(-50.0,-11.0,-45.0,-32.0,-32.0,-36.0); p.curveTo(-18.0,-40.0,12.0,-40.0,25.0,-36.0); 36 p.curveTo(38.0,-32.0,43.0,-11.0,43.0,0); p.moveTo(-32.0,-36.0); p.curveTo(-23.0,-25.0,-21.0,-12.0,-21.0,0.0); 37 Barrel.add(new Instr(Form.PLIN, p)); 38 } 39 public static final Symbol Can = new Symbol(); 40 static { 41 Symbol colours = new Symbol(); 42 Path2D.Double p = new Path2D.Double(); p.moveTo(-31.6, 0); p.lineTo(-15.7,-47.4); p.lineTo(41.1,-28.4); p.lineTo(31.6,0); 43 p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 44 colours.add(new Instr(Form.P1, p)); 45 p = new Path2D.Double(); p.moveTo(-31.6,0); p.lineTo(-22.0,-28.4); p.lineTo(34.8,-9.4); p.lineTo(31.6,0); 46 p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 47 colours.add(new Instr(Form.H2, p)); 48 p = new Path2D.Double(); p.moveTo(-24.2,-22.1); p.lineTo(-19.9,-34.8); p.lineTo(36.9,-15.8); p.lineTo(32.6,-3.1); p.closePath(); 49 colours.add(new Instr(Form.H3, p)); 50 p = new Path2D.Double(); p.moveTo(-22.0,-28.4); p.lineTo(-18.9,-37.9); p.lineTo(37.9,-18.9); p.lineTo(34.8,-9.4); p.closePath(); 51 colours.add(new Instr(Form.H4, p)); 52 p = new Path2D.Double(); p.moveTo(-25.2,-19.0); p.lineTo(-22.0,-28.4); p.lineTo(34.8,-9.4); p.lineTo(31.6,0.0); p.closePath(); 53 colours.add(new Instr(Form.H5, p)); 54 p = new Path2D.Double(); p.moveTo(12.7,-37.9); p.lineTo(41.1,-28.4); p.lineTo(31.6,0); p.lineTo(8.0,0.0); p.quadTo(8.0,-6.0,2.5,-7.6); p.closePath(); 55 colours.add(new Instr(Form.V2, p)); 56 Can.add(new Instr(Form.COLR, colours)); 57 Can.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 58 Can.add(new Instr(Form.FILL, Color.black)); 59 Can.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 60 Can.add(new Instr(Form.LINE, new Line2D.Double(-40,0,-10,0))); 61 Can.add(new Instr(Form.LINE, new Line2D.Double(10,0,40,0))); 62 p = new Path2D.Double(); p.moveTo(-31.6, 0); p.lineTo(-15.7,-47.4); p.lineTo(41.1,-28.4); p.lineTo(31.6,0); 63 Can.add(new Instr(Form.PLIN, p)); 64 } 65 public static final Symbol Cone = new Symbol(); 66 static { 67 Symbol colours = new Symbol(); 68 Path2D.Double p = new Path2D.Double(); p.moveTo(-31.6,0); p.curveTo(-24.9,-32.2, 1.4,-38.7,12.7,-37.9); p.curveTo(21.9,-30.5,32.8,-18.4,32.1,0.0); 69 p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 70 colours.add(new Instr(Form.P1, p)); 71 p = new Path2D.Double(); p.moveTo(-31.6,0); p.quadTo(-29.0,-15.5,-17.3,-26.9); p.lineTo(31.5,-10.5); p.quadTo(33.0,-5.0,32.1,0.0); 72 p.lineTo(8.0,0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 73 colours.add(new Instr(Form.H2, p)); 74 p = new Path2D.Double(); p.moveTo(-22.3,-21.4); p.quadTo(-15.2,-29.8,-10.8,-31.8); p.lineTo(28.8,-18.5); p.quadTo(31.8,-12.5,32.6,-3.1); p.closePath(); 75 colours.add(new Instr(Form.H3, p)); 76 p = new Path2D.Double(); p.moveTo(-17.3,-27.0); p.quadTo(-13.0,-31.4,-6.9,-33.8); p.lineTo(26.4,-22.7); p.quadTo(30.0,-17.0,31.7,-10.3); p.closePath(); 77 colours.add(new Instr(Form.H4, p)); 78 p = new Path2D.Double(); p.moveTo(-24.4,-18.7); p.quadTo(-20.3,-25.0,-17.3,-27.0); p.lineTo(31.7,-10.3); p.quadTo(32.7,-4.5,32.1,0.0); p.closePath(); 79 colours.add(new Instr(Form.H5, p)); 80 p = new Path2D.Double(); p.moveTo(12.7,-37.9); p.curveTo(21.9,-30.5,32.8,-18.4,32.1,0.0); p.lineTo(8.0,0.0); p.quadTo(8.0,-6.0,2.5,-7.6); p.closePath(); 81 colours.add(new Instr(Form.V2, p)); 82 Cone.add(new Instr(Form.COLR, colours)); 83 Cone.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 84 Cone.add(new Instr(Form.FILL, Color.black)); 85 Cone.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 86 Cone.add(new Instr(Form.LINE, new Line2D.Double(-40,0,-10,0))); 87 Cone.add(new Instr(Form.LINE, new Line2D.Double(10,0,40,0))); 88 p = new Path2D.Double(); p.moveTo(-31.6, 0); p.curveTo(-24.9,-32.2,1.4,-38.7,12.7,-37.9); p.curveTo(21.9,-30.5,32.8,-18.4,32.1,0.0); 89 Cone.add(new Instr(Form.PLIN, p)); 90 } 91 public static final Symbol Float = new Symbol(); 92 static { 93 Symbol colours = new Symbol(); 94 Path2D.Double p = new Path2D.Double(); p.moveTo(-36.0,0); p.lineTo(-47.0,-33.0); p.quadTo(-30.0, -25.0, -19.0,-23.0); 95 p.lineTo(-12.0,-42.0); p.lineTo(12.0,-42.0); p.lineTo(19.0,-23.0); p.quadTo(30.0,-25.0,47.0,-33.0); p.lineTo(36.0,0); 96 p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 97 colours.add(new Instr(Form.P1, p)); 98 p = new Path2D.Double(); p.moveTo(-36.0,0); p.lineTo(-43.0,-21.0); p.lineTo(43.0,-21.0); p.lineTo(36.0,0); 99 p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 100 colours.add(new Instr(Form.H2, p)); 101 p = new Path2D.Double(); p.moveTo(-40.8,-14.0); p.lineTo(-45.4,-28.0); p.lineTo(-35.5,-28.0); p.quadTo(-28.0,-25.0,-19.0,-23.0); p.lineTo(-17.2,-28.0); 102 p.lineTo(17.2,-28.0); p.lineTo(19.0,-23.0); p.quadTo(28.0,-25.0,35.5,-28.0); p.lineTo(45.4,-28.0); p.lineTo(40.8,-14.0); p.closePath(); 103 colours.add(new Instr(Form.H3, p)); 104 p = new Path2D.Double(); p.moveTo(-43.0,-21.0); p.lineTo(-47.0,-33.0); p.quadTo(-29.7,-24.8,-19.0,-23.0); p.lineTo(-15.8,-31.5); p.lineTo(15.8,-31.5); 105 p.lineTo(19.0,-23.0); p.quadTo(28.4,-24.3,47.0,-33.0); p.lineTo(43.0,-21.0); p.closePath(); 106 colours.add(new Instr(Form.H4, p)); 107 p = new Path2D.Double(); p.moveTo(-39.8,-11.5); p.lineTo(-43.0,-21.0); p.lineTo(43.0,-21.0); p.lineTo(39.8,-11.5); p.closePath(); 108 colours.add(new Instr(Form.H5, p)); 109 p = new Path2D.Double(); p.moveTo(0.0,-42.0); p.lineTo(12.0,-42.0); p.lineTo(19.0,-23.0); p.quadTo(28.4,-24.3,47.0,-33.0); p.lineTo(36.0,0.0); 110 p.lineTo(8.0,0.0); p.quadTo(7.7,-7.7,0.0,-8.0); p.closePath(); 111 colours.add(new Instr(Form.V2, p)); 112 Float.add(new Instr(Form.COLR, colours)); 113 Float.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 114 Float.add(new Instr(Form.FILL, Color.black)); 115 Float.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 116 Float.add(new Instr(Form.LINE, new Line2D.Double(-54,0,-10,0))); 117 Float.add(new Instr(Form.LINE, new Line2D.Double(10,0,54,0))); 118 p = new Path2D.Double(); p.moveTo(-36.0,0); p.lineTo(-47.0,-33.0); p.curveTo(-15.0, -17.0, 15.0, -17.0, 47.0,-33.0); p.lineTo(36.0,0); 119 p.moveTo(-19.0, -23.0); p.lineTo(-12.0,-42.0); p.lineTo(12.0,-42.0); p.lineTo(19.0,-23.0); 120 Float.add(new Instr(Form.PLIN, p)); 121 } 122 public static final Symbol Ice = new Symbol(); 123 static { 124 Symbol colours = new Symbol(); 125 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,0); p.quadTo(-30.0,0.0,-30.0,-15.0); p.lineTo(-30.0,-25.0); p.lineTo(30.0,-25.0); p.lineTo(30.0,-15); p.quadTo(30.0,0.0,15.0,0.0); 126 p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 127 colours.add(new Instr(Form.P1, p)); 128 Ice.add(new Instr(Form.COLR, colours)); 129 Ice.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 130 Ice.add(new Instr(Form.FILL, Color.black)); 131 Ice.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 132 Ice.add(new Instr(Form.LINE, new Line2D.Double(-35,0,-10,0))); 133 Ice.add(new Instr(Form.LINE, new Line2D.Double(10,0,35,0))); 134 p = new Path2D.Double(); p.moveTo(-15.0,0); p.quadTo(-30.0,0.0,-30.0,-15.0); p.lineTo(-30.0,-25.0); p.lineTo(30.0,-25.0); p.lineTo(30.0,-15); p.quadTo(30.0,0.0,15.0,0.0); 135 Ice.add(new Instr(Form.PLIN, p)); 136 p = new Path2D.Double(); p.moveTo(-6.0,8.0); p.lineTo(-6.0,40.0); p.lineTo(6.0,40.0); p.lineTo(6.0,8.0); 137 Ice.add(new Instr(Form.PLIN, p)); 138 } 139 public static final Symbol Pillar = new Symbol(); 140 static { 141 Symbol colours = new Symbol(); 142 Path2D.Double p = new Path2D.Double(); p.moveTo(-32.0,0.0); p.lineTo(-2.8,-32.5); p.lineTo(25.6,-96.7); p.lineTo(37.0,-92.9); p.lineTo(21.8,-24.3); 143 p.lineTo(25.0,0.0); p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 144 colours.add(new Instr(Form.P1, p)); 145 p = new Path2D.Double(); p.moveTo(-32.0,0); p.lineTo(-2.8,-32.5); p.lineTo(5.3,-51.0); p.lineTo(26.3,-43.9); p.lineTo(21.8,-24.3); p.lineTo(25.0,0.0); 146 p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 147 colours.add(new Instr(Form.H2, p)); 148 p = new Path2D.Double(); p.moveTo(-0.9,-37.1); p.lineTo(11.3,-64.6); p.lineTo(29.6,-58.7); p.lineTo(23.1,-29.3); p.closePath(); 149 colours.add(new Instr(Form.H3, p)); 150 p = new Path2D.Double(); p.moveTo(5.3,-51.0); p.lineTo(14.5,-71.5); p.lineTo(31.2,-65.9); p.lineTo(26.3,-43.9); p.closePath(); 151 colours.add(new Instr(Form.H4, p)); 152 p = new Path2D.Double(); p.moveTo(-5.2,-29.7); p.lineTo(-2.8,-32.5); p.lineTo(5.3,-51.0); p.lineTo(26.3,-43.9); p.lineTo(21.8,-24.3); p.lineTo(22.2,-21.5); p.closePath(); 153 colours.add(new Instr(Form.H5, p)); 154 p = new Path2D.Double(); p.moveTo(12.7,-37.9); p.lineTo(31.3,-94.8); p.lineTo(37.0,-92.9); p.lineTo(21.8,-24.3); 155 p.lineTo(25.0,0.0); p.lineTo(8.0,0.0); p.quadTo(8.0,-6.0,2.5,-7.6); p.closePath(); 156 colours.add(new Instr(Form.V2, p)); 157 Pillar.add(new Instr(Form.COLR, colours)); 158 Pillar.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 159 Pillar.add(new Instr(Form.FILL, Color.black)); 160 Pillar.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 161 Pillar.add(new Instr(Form.LINE, new Line2D.Double(-42,0,-10,0))); 162 Pillar.add(new Instr(Form.LINE, new Line2D.Double(10,0,36,0))); 163 p = new Path2D.Double(); p.moveTo(-32.0,0.0); p.lineTo(-2.8,-32.5); p.lineTo(25.6,-96.7); p.lineTo(37.0,-92.9); p.lineTo(21.8,-24.3); p.lineTo(25.0,0.0); 164 Pillar.add(new Instr(Form.PLIN, p)); 165 } 166 public static final Symbol Spar = new Symbol(); 167 static { 168 Symbol colours = new Symbol(); 169 Path2D.Double p = new Path2D.Double(); p.moveTo(-3.2,-9.5); p.lineTo(25.6,-96.7); p.lineTo(37.0,-92.9); p.lineTo(8.2,-5.7); p.closePath(); 170 colours.add(new Instr(Form.P1, p)); 171 p = new Path2D.Double(); p.moveTo(-3.2,-9.5); p.lineTo(11.2,-53.1); p.lineTo(22.6,-49.3); p.lineTo(8.2,-5.7); p.closePath(); 172 colours.add(new Instr(Form.H2, p)); 173 p = new Path2D.Double(); p.moveTo(6.4,-38.6); p.lineTo(16.0,-67.6); p.lineTo(27.4,-63.8); p.lineTo(17.8,-34.8); p.closePath(); 174 colours.add(new Instr(Form.H3, p)); 175 p = new Path2D.Double(); p.moveTo(11.2,-53.1); p.lineTo(18.4,-74.9); p.lineTo(29.8,-71.1); p.lineTo(22.6,-49.3); p.closePath(); 176 colours.add(new Instr(Form.H4, p)); 177 p = new Path2D.Double(); p.moveTo(4.0,-31.3); p.lineTo(11.2,-53.1); p.lineTo(22.6,-49.3); p.lineTo(15.4,-27.5); p.closePath(); 178 colours.add(new Instr(Form.H5, p)); 179 p = new Path2D.Double(); p.moveTo(2.5,-7.6); p.lineTo(31.3,-94.8); p.lineTo(37.0,-92.9); p.lineTo(8.2,-5.7); p.closePath(); 180 colours.add(new Instr(Form.V2, p)); 181 Spar.add(new Instr(Form.COLR, colours)); 182 Spar.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 183 Spar.add(new Instr(Form.FILL, Color.black)); 184 Spar.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 185 Spar.add(new Instr(Form.LINE, new Line2D.Double(-20,0,-10,0))); 186 Spar.add(new Instr(Form.LINE, new Line2D.Double(10,0,20,0))); 187 p = new Path2D.Double(); p.moveTo(-3.2,-9.5); p.lineTo(25.6,-96.7); p.lineTo(37.0,-92.9); p.lineTo(8.2,-5.7); 188 Spar.add(new Instr(Form.PLIN, p)); 189 } 190 public static final Symbol Sphere = new Symbol(); 191 static { 192 Symbol colours = new Symbol(); 193 Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0,0); p.curveTo(-32.0,-21.0,-14.0,-45.5,12.7,-37.9); p.curveTo(27.5,-33.8,37.8,-15.5,32.0,0.0); 194 p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 195 colours.add(new Instr(Form.P1, p)); 196 p = new Path2D.Double(); p.moveTo(-25.0,0); p.quadTo(-30.0,-15.0,-20.5,-28.0); p.lineTo(33.8,-10.0); p.quadTo(33.7,-4.0,32.0,0.0); 197 p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 198 colours.add(new Instr(Form.H2, p)); 199 p = new Path2D.Double(); p.moveTo(-24.2,-22.1); p.quadTo(-21.0,-28.5,-15.2,-33.3); p.lineTo(32.8,-17.2); p.quadTo(34.6,-10.0,33.0,-2.9); p.closePath(); 200 colours.add(new Instr(Form.H3, p)); 201 p = new Path2D.Double(); p.moveTo(-20.5,-28.0); p.quadTo(-16.5,-33.0,-12.0,-35.5); p.lineTo(31.5,-21.0); p.quadTo(33.5,-17.0,34.0,-9.5); p.closePath(); 202 colours.add(new Instr(Form.H4, p)); 203 p = new Path2D.Double(); p.moveTo(-25.2,-19.0); p.quadTo(-23.5,-24.0,-20.5,-28.0); p.lineTo(34.0,-9.5); p.quadTo(34.0,-3.0,32.0,0.0); p.closePath(); 204 colours.add(new Instr(Form.H5, p)); 205 p = new Path2D.Double(); p.moveTo(12.7,-37.9); p.curveTo(27.5,-33.8,37.8,-15.5,32.0,0.0); p.lineTo(8.0,0.0); p.quadTo(8.0,-6.0,2.5,-7.6); p.closePath(); 206 colours.add(new Instr(Form.V2, p)); 207 Sphere.add(new Instr(Form.COLR, colours)); 208 Sphere.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 209 Sphere.add(new Instr(Form.FILL, Color.black)); 210 Sphere.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 211 Sphere.add(new Instr(Form.LINE, new Line2D.Double(-33,0,-10,0))); 212 Sphere.add(new Instr(Form.LINE, new Line2D.Double(10,0,40,0))); 213 Sphere.add(new Instr(Form.EARC, new Arc2D.Double(-26.5,-39.4,60.0,60.0,-18.0,216.0,Arc2D.OPEN))); 214 } 215 public static final Symbol Storage = new Symbol(); 216 static { 217 Storage.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 218 Storage.add(new Instr(Form.FILL, Color.black)); 219 Storage.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 220 Path2D.Double p = new Path2D.Double(); p.moveTo(-50.0,0.0); p.lineTo(-40.0,-20.0); p.lineTo(40.0,-20.0); p.lineTo(40.0,-20.0); 221 p.lineTo(50.0,0.0); p.lineTo(40.0,20.0); p.lineTo(-40.0,20.0); p.closePath(); 222 Storage.add(new Instr(Form.PLIN, p)); 223 } 224 public static final Symbol Super = new Symbol(); 225 static { 226 Symbol colours = new Symbol(); 227 Path2D.Double p = new Path2D.Double(); p.moveTo(-48.0,0); p.lineTo(-28.0,-42.0); p.lineTo(28.0,-42.0); p.lineTo(48.0,0); 228 p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 229 colours.add(new Instr(Form.P1, p)); 230 p = new Path2D.Double(); p.moveTo(-48.0,0); p.lineTo(-38.0,-21.0); p.lineTo(38.0,-21.0); p.lineTo(48.0,0); 231 p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 232 colours.add(new Instr(Form.H2, p)); 233 p = new Path2D.Double(); p.moveTo(-41.3,-14.0); p.lineTo(-34.7,-28.0); p.lineTo(34.7,-28.0); p.lineTo(41.3,-14.0); p.closePath(); 234 colours.add(new Instr(Form.H3, p)); 235 p = new Path2D.Double(); p.moveTo(-38.0,-21.0); p.lineTo(-33.0,-31.5); p.lineTo(33.0,-31.5); p.lineTo(38.0,-21.0); p.closePath(); 236 colours.add(new Instr(Form.H4, p)); 237 p = new Path2D.Double(); p.moveTo(-43.0,-11.5); p.lineTo(-38.0,-21.0); p.lineTo(38.0,-21.0); p.lineTo(43.0,-11.5); p.closePath(); 238 colours.add(new Instr(Form.H5, p)); 239 p = new Path2D.Double(); p.moveTo(0.0,-42.0); p.lineTo(28.0,-42.0); p.lineTo(48.0,0.0); p.lineTo(8.0,0.0); p.quadTo(7.7,-7.7,0.0,-8.0); p.closePath(); 240 colours.add(new Instr(Form.V2, p)); 241 Super.add(new Instr(Form.COLR, colours)); 242 Super.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 243 Super.add(new Instr(Form.FILL, Color.black)); 244 Super.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 245 Super.add(new Instr(Form.LINE, new Line2D.Double(-54,0,-10,0))); 246 Super.add(new Instr(Form.LINE, new Line2D.Double(10,0,54,0))); 247 p = new Path2D.Double(); p.moveTo(-48.0,0); p.lineTo(-28.0,-42.0); p.lineTo(28.0,-42.0); p.lineTo(48.0,0); 248 Super.add(new Instr(Form.PLIN, p)); 249 } 250 251 public static final EnumMap<BoySHP, Symbol> Shapes = new EnumMap<>(BoySHP.class); 252 static { 253 Shapes.put(BoySHP.BOY_UNKN, Buoys.Pillar); Shapes.put(BoySHP.BOY_CONE, Buoys.Cone); Shapes.put(BoySHP.BOY_CAN, Buoys.Can); 254 Shapes.put(BoySHP.BOY_SPHR, Buoys.Sphere); Shapes.put(BoySHP.BOY_PILR, Buoys.Pillar); Shapes.put(BoySHP.BOY_SPAR, Buoys.Spar); 255 Shapes.put(BoySHP.BOY_BARL, Buoys.Barrel); Shapes.put(BoySHP.BOY_SUPR, Buoys.Super); Shapes.put(BoySHP.BOY_ICE, Buoys.Ice); 256 } 26 // CHECKSTYLE.OFF: LineLength 27 public static final Symbol Barrel = new Symbol(); 28 static { 29 Symbol colours = new Symbol(); 30 Path2D.Double p = new Path2D.Double(); p.moveTo(-50.0, 0); p.curveTo(-50.0, -11.0, -45.0, -32.0, -32.0, -36.0); 31 p.curveTo(-18.0, -40.0, 12.0, -40.0, 25.0, -36.0); p.curveTo(38.0, -32.0, 43.0, -11.0, 43.0, 0); 32 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 33 colours.add(new Instr(Form.P1, p)); 34 Barrel.add(new Instr(Form.COLR, colours)); 35 Barrel.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 36 Barrel.add(new Instr(Form.FILL, Color.black)); 37 Barrel.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 38 Barrel.add(new Instr(Form.LINE, new Line2D.Double(-57, 0, -10, 0))); 39 Barrel.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 50, 0))); 40 p = new Path2D.Double(); p.moveTo(-50.0, 0); p.curveTo(-50.0, -11.0, -45.0, -32.0, -32.0, -36.0); p.curveTo(-18.0, -40.0, 12.0, -40.0, 25.0, -36.0); 41 p.curveTo(38.0, -32.0, 43.0, -11.0, 43.0, 0); p.moveTo(-32.0, -36.0); p.curveTo(-23.0, -25.0, -21.0, -12.0, -21.0, 0.0); 42 Barrel.add(new Instr(Form.PLIN, p)); 43 } 44 45 public static final Symbol Can = new Symbol(); 46 static { 47 Symbol colours = new Symbol(); 48 Path2D.Double p = new Path2D.Double(); p.moveTo(-31.6, 0); p.lineTo(-15.7, -47.4); p.lineTo(41.1, -28.4); p.lineTo(31.6, 0); 49 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 50 colours.add(new Instr(Form.P1, p)); 51 p = new Path2D.Double(); p.moveTo(-31.6, 0); p.lineTo(-22.0, -28.4); p.lineTo(34.8, -9.4); p.lineTo(31.6, 0); 52 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 53 colours.add(new Instr(Form.H2, p)); 54 p = new Path2D.Double(); p.moveTo(-24.2, -22.1); p.lineTo(-19.9, -34.8); p.lineTo(36.9, -15.8); p.lineTo(32.6, -3.1); p.closePath(); 55 colours.add(new Instr(Form.H3, p)); 56 p = new Path2D.Double(); p.moveTo(-22.0, -28.4); p.lineTo(-18.9, -37.9); p.lineTo(37.9, -18.9); p.lineTo(34.8, -9.4); p.closePath(); 57 colours.add(new Instr(Form.H4, p)); 58 p = new Path2D.Double(); p.moveTo(-25.2, -19.0); p.lineTo(-22.0, -28.4); p.lineTo(34.8, -9.4); p.lineTo(31.6, 0.0); p.closePath(); 59 colours.add(new Instr(Form.H5, p)); 60 p = new Path2D.Double(); p.moveTo(12.7, -37.9); p.lineTo(41.1, -28.4); p.lineTo(31.6, 0); p.lineTo(8.0, 0.0); p.quadTo(8.0, -6.0, 2.5, -7.6); p.closePath(); 61 colours.add(new Instr(Form.V2, p)); 62 Can.add(new Instr(Form.COLR, colours)); 63 Can.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 64 Can.add(new Instr(Form.FILL, Color.black)); 65 Can.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 66 Can.add(new Instr(Form.LINE, new Line2D.Double(-40, 0, -10, 0))); 67 Can.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 40, 0))); 68 p = new Path2D.Double(); p.moveTo(-31.6, 0); p.lineTo(-15.7, -47.4); p.lineTo(41.1, -28.4); p.lineTo(31.6, 0); 69 Can.add(new Instr(Form.PLIN, p)); 70 } 71 72 public static final Symbol Cone = new Symbol(); 73 static { 74 Symbol colours = new Symbol(); 75 Path2D.Double p = new Path2D.Double(); p.moveTo(-31.6, 0); p.curveTo(-24.9, -32.2, 1.4, -38.7, 12.7, -37.9); p.curveTo(21.9, -30.5, 32.8, -18.4, 32.1, 0.0); 76 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 77 colours.add(new Instr(Form.P1, p)); 78 p = new Path2D.Double(); p.moveTo(-31.6, 0); p.quadTo(-29.0, -15.5, -17.3, -26.9); p.lineTo(31.5, -10.5); p.quadTo(33.0, -5.0, 32.1, 0.0); 79 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 80 colours.add(new Instr(Form.H2, p)); 81 p = new Path2D.Double(); p.moveTo(-22.3, -21.4); p.quadTo(-15.2, -29.8, -10.8, -31.8); p.lineTo(28.8, -18.5); p.quadTo(31.8, -12.5, 32.6, -3.1); p.closePath(); 82 colours.add(new Instr(Form.H3, p)); 83 p = new Path2D.Double(); p.moveTo(-17.3, -27.0); p.quadTo(-13.0, -31.4, -6.9, -33.8); p.lineTo(26.4, -22.7); p.quadTo(30.0, -17.0, 31.7, -10.3); p.closePath(); 84 colours.add(new Instr(Form.H4, p)); 85 p = new Path2D.Double(); p.moveTo(-24.4, -18.7); p.quadTo(-20.3, -25.0, -17.3, -27.0); p.lineTo(31.7, -10.3); p.quadTo(32.7, -4.5, 32.1, 0.0); p.closePath(); 86 colours.add(new Instr(Form.H5, p)); 87 p = new Path2D.Double(); p.moveTo(12.7, -37.9); p.curveTo(21.9, -30.5, 32.8, -18.4, 32.1, 0.0); p.lineTo(8.0, 0.0); p.quadTo(8.0, -6.0, 2.5, -7.6); p.closePath(); 88 colours.add(new Instr(Form.V2, p)); 89 Cone.add(new Instr(Form.COLR, colours)); 90 Cone.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 91 Cone.add(new Instr(Form.FILL, Color.black)); 92 Cone.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 93 Cone.add(new Instr(Form.LINE, new Line2D.Double(-40, 0, -10, 0))); 94 Cone.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 40, 0))); 95 p = new Path2D.Double(); p.moveTo(-31.6, 0); p.curveTo(-24.9, -32.2, 1.4, -38.7, 12.7, -37.9); p.curveTo(21.9, -30.5, 32.8, -18.4, 32.1, 0.0); 96 Cone.add(new Instr(Form.PLIN, p)); 97 } 98 99 public static final Symbol Float = new Symbol(); 100 static { 101 Symbol colours = new Symbol(); 102 Path2D.Double p = new Path2D.Double(); p.moveTo(-36.0, 0); p.lineTo(-47.0, -33.0); p.quadTo(-30.0, -25.0, -19.0, -23.0); 103 p.lineTo(-12.0, -42.0); p.lineTo(12.0, -42.0); p.lineTo(19.0, -23.0); p.quadTo(30.0, -25.0, 47.0, -33.0); p.lineTo(36.0, 0); 104 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 105 colours.add(new Instr(Form.P1, p)); 106 p = new Path2D.Double(); p.moveTo(-36.0, 0); p.lineTo(-43.0, -21.0); p.lineTo(43.0, -21.0); p.lineTo(36.0, 0); 107 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 108 colours.add(new Instr(Form.H2, p)); 109 p = new Path2D.Double(); p.moveTo(-40.8, -14.0); p.lineTo(-45.4, -28.0); p.lineTo(-35.5, -28.0); p.quadTo(-28.0, -25.0, -19.0, -23.0); p.lineTo(-17.2, -28.0); 110 p.lineTo(17.2, -28.0); p.lineTo(19.0, -23.0); p.quadTo(28.0, -25.0, 35.5, -28.0); p.lineTo(45.4, -28.0); p.lineTo(40.8, -14.0); p.closePath(); 111 colours.add(new Instr(Form.H3, p)); 112 p = new Path2D.Double(); p.moveTo(-43.0, -21.0); p.lineTo(-47.0, -33.0); p.quadTo(-29.7, -24.8, -19.0, -23.0); p.lineTo(-15.8, -31.5); p.lineTo(15.8, -31.5); 113 p.lineTo(19.0, -23.0); p.quadTo(28.4, -24.3, 47.0, -33.0); p.lineTo(43.0, -21.0); p.closePath(); 114 colours.add(new Instr(Form.H4, p)); 115 p = new Path2D.Double(); p.moveTo(-39.8, -11.5); p.lineTo(-43.0, -21.0); p.lineTo(43.0, -21.0); p.lineTo(39.8, -11.5); p.closePath(); 116 colours.add(new Instr(Form.H5, p)); 117 p = new Path2D.Double(); p.moveTo(0.0, -42.0); p.lineTo(12.0, -42.0); p.lineTo(19.0, -23.0); p.quadTo(28.4, -24.3, 47.0, -33.0); p.lineTo(36.0, 0.0); 118 p.lineTo(8.0, 0.0); p.quadTo(7.7, -7.7, 0.0, -8.0); p.closePath(); 119 colours.add(new Instr(Form.V2, p)); 120 Float.add(new Instr(Form.COLR, colours)); 121 Float.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 122 Float.add(new Instr(Form.FILL, Color.black)); 123 Float.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 124 Float.add(new Instr(Form.LINE, new Line2D.Double(-54, 0, -10, 0))); 125 Float.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 54, 0))); 126 p = new Path2D.Double(); p.moveTo(-36.0, 0); p.lineTo(-47.0, -33.0); p.curveTo(-15.0, -17.0, 15.0, -17.0, 47.0, -33.0); p.lineTo(36.0, 0); 127 p.moveTo(-19.0, -23.0); p.lineTo(-12.0, -42.0); p.lineTo(12.0, -42.0); p.lineTo(19.0, -23.0); 128 Float.add(new Instr(Form.PLIN, p)); 129 } 130 131 public static final Symbol Ice = new Symbol(); 132 static { 133 Symbol colours = new Symbol(); 134 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0, 0); p.quadTo(-30.0, 0.0, -30.0, -15.0); p.lineTo(-30.0, -25.0); p.lineTo(30.0, -25.0); p.lineTo(30.0, -15); p.quadTo(30.0, 0.0, 15.0, 0.0); 135 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 136 colours.add(new Instr(Form.P1, p)); 137 Ice.add(new Instr(Form.COLR, colours)); 138 Ice.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 139 Ice.add(new Instr(Form.FILL, Color.black)); 140 Ice.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 141 Ice.add(new Instr(Form.LINE, new Line2D.Double(-35, 0, -10, 0))); 142 Ice.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 35, 0))); 143 p = new Path2D.Double(); p.moveTo(-15.0, 0); p.quadTo(-30.0, 0.0, -30.0, -15.0); p.lineTo(-30.0, -25.0); p.lineTo(30.0, -25.0); p.lineTo(30.0, -15); p.quadTo(30.0, 0.0, 15.0, 0.0); 144 Ice.add(new Instr(Form.PLIN, p)); 145 p = new Path2D.Double(); p.moveTo(-6.0, 8.0); p.lineTo(-6.0, 40.0); p.lineTo(6.0, 40.0); p.lineTo(6.0, 8.0); 146 Ice.add(new Instr(Form.PLIN, p)); 147 } 148 149 public static final Symbol Pillar = new Symbol(); 150 static { 151 Symbol colours = new Symbol(); 152 Path2D.Double p = new Path2D.Double(); p.moveTo(-32.0, 0.0); p.lineTo(-2.8, -32.5); p.lineTo(25.6, -96.7); p.lineTo(37.0, -92.9); p.lineTo(21.8, -24.3); 153 p.lineTo(25.0, 0.0); p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 154 colours.add(new Instr(Form.P1, p)); 155 p = new Path2D.Double(); p.moveTo(-32.0, 0); p.lineTo(-2.8, -32.5); p.lineTo(5.3, -51.0); p.lineTo(26.3, -43.9); p.lineTo(21.8, -24.3); p.lineTo(25.0, 0.0); 156 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 157 colours.add(new Instr(Form.H2, p)); 158 p = new Path2D.Double(); p.moveTo(-0.9, -37.1); p.lineTo(11.3, -64.6); p.lineTo(29.6, -58.7); p.lineTo(23.1, -29.3); p.closePath(); 159 colours.add(new Instr(Form.H3, p)); 160 p = new Path2D.Double(); p.moveTo(5.3, -51.0); p.lineTo(14.5, -71.5); p.lineTo(31.2, -65.9); p.lineTo(26.3, -43.9); p.closePath(); 161 colours.add(new Instr(Form.H4, p)); 162 p = new Path2D.Double(); p.moveTo(-5.2, -29.7); p.lineTo(-2.8, -32.5); p.lineTo(5.3, -51.0); p.lineTo(26.3, -43.9); p.lineTo(21.8, -24.3); p.lineTo(22.2, -21.5); p.closePath(); 163 colours.add(new Instr(Form.H5, p)); 164 p = new Path2D.Double(); p.moveTo(12.7, -37.9); p.lineTo(31.3, -94.8); p.lineTo(37.0, -92.9); p.lineTo(21.8, -24.3); 165 p.lineTo(25.0, 0.0); p.lineTo(8.0, 0.0); p.quadTo(8.0, -6.0, 2.5, -7.6); p.closePath(); 166 colours.add(new Instr(Form.V2, p)); 167 Pillar.add(new Instr(Form.COLR, colours)); 168 Pillar.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 169 Pillar.add(new Instr(Form.FILL, Color.black)); 170 Pillar.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 171 Pillar.add(new Instr(Form.LINE, new Line2D.Double(-42, 0, -10, 0))); 172 Pillar.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 36, 0))); 173 p = new Path2D.Double(); p.moveTo(-32.0, 0.0); p.lineTo(-2.8, -32.5); p.lineTo(25.6, -96.7); p.lineTo(37.0, -92.9); p.lineTo(21.8, -24.3); p.lineTo(25.0, 0.0); 174 Pillar.add(new Instr(Form.PLIN, p)); 175 } 176 177 public static final Symbol Spar = new Symbol(); 178 static { 179 Symbol colours = new Symbol(); 180 Path2D.Double p = new Path2D.Double(); p.moveTo(-3.2, -9.5); p.lineTo(25.6, -96.7); p.lineTo(37.0, -92.9); p.lineTo(8.2, -5.7); p.closePath(); 181 colours.add(new Instr(Form.P1, p)); 182 p = new Path2D.Double(); p.moveTo(-3.2, -9.5); p.lineTo(11.2, -53.1); p.lineTo(22.6, -49.3); p.lineTo(8.2, -5.7); p.closePath(); 183 colours.add(new Instr(Form.H2, p)); 184 p = new Path2D.Double(); p.moveTo(6.4, -38.6); p.lineTo(16.0, -67.6); p.lineTo(27.4, -63.8); p.lineTo(17.8, -34.8); p.closePath(); 185 colours.add(new Instr(Form.H3, p)); 186 p = new Path2D.Double(); p.moveTo(11.2, -53.1); p.lineTo(18.4, -74.9); p.lineTo(29.8, -71.1); p.lineTo(22.6, -49.3); p.closePath(); 187 colours.add(new Instr(Form.H4, p)); 188 p = new Path2D.Double(); p.moveTo(4.0, -31.3); p.lineTo(11.2, -53.1); p.lineTo(22.6, -49.3); p.lineTo(15.4, -27.5); p.closePath(); 189 colours.add(new Instr(Form.H5, p)); 190 p = new Path2D.Double(); p.moveTo(2.5, -7.6); p.lineTo(31.3, -94.8); p.lineTo(37.0, -92.9); p.lineTo(8.2, -5.7); p.closePath(); 191 colours.add(new Instr(Form.V2, p)); 192 Spar.add(new Instr(Form.COLR, colours)); 193 Spar.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 194 Spar.add(new Instr(Form.FILL, Color.black)); 195 Spar.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 196 Spar.add(new Instr(Form.LINE, new Line2D.Double(-20, 0, -10, 0))); 197 Spar.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 20, 0))); 198 p = new Path2D.Double(); p.moveTo(-3.2, -9.5); p.lineTo(25.6, -96.7); p.lineTo(37.0, -92.9); p.lineTo(8.2, -5.7); 199 Spar.add(new Instr(Form.PLIN, p)); 200 } 201 202 public static final Symbol Sphere = new Symbol(); 203 static { 204 Symbol colours = new Symbol(); 205 Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0, 0); p.curveTo(-32.0, -21.0, -14.0, -45.5, 12.7, -37.9); p.curveTo(27.5, -33.8, 37.8, -15.5, 32.0, 0.0); 206 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 207 colours.add(new Instr(Form.P1, p)); 208 p = new Path2D.Double(); p.moveTo(-25.0, 0); p.quadTo(-30.0, -15.0, -20.5, -28.0); p.lineTo(33.8, -10.0); p.quadTo(33.7, -4.0, 32.0, 0.0); 209 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 210 colours.add(new Instr(Form.H2, p)); 211 p = new Path2D.Double(); p.moveTo(-24.2, -22.1); p.quadTo(-21.0, -28.5, -15.2, -33.3); p.lineTo(32.8, -17.2); p.quadTo(34.6, -10.0, 33.0, -2.9); p.closePath(); 212 colours.add(new Instr(Form.H3, p)); 213 p = new Path2D.Double(); p.moveTo(-20.5, -28.0); p.quadTo(-16.5, -33.0, -12.0, -35.5); p.lineTo(31.5, -21.0); p.quadTo(33.5, -17.0, 34.0, -9.5); p.closePath(); 214 colours.add(new Instr(Form.H4, p)); 215 p = new Path2D.Double(); p.moveTo(-25.2, -19.0); p.quadTo(-23.5, -24.0, -20.5, -28.0); p.lineTo(34.0, -9.5); p.quadTo(34.0, -3.0, 32.0, 0.0); p.closePath(); 216 colours.add(new Instr(Form.H5, p)); 217 p = new Path2D.Double(); p.moveTo(12.7, -37.9); p.curveTo(27.5, -33.8, 37.8, -15.5, 32.0, 0.0); p.lineTo(8.0, 0.0); p.quadTo(8.0, -6.0, 2.5, -7.6); p.closePath(); 218 colours.add(new Instr(Form.V2, p)); 219 Sphere.add(new Instr(Form.COLR, colours)); 220 Sphere.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 221 Sphere.add(new Instr(Form.FILL, Color.black)); 222 Sphere.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 223 Sphere.add(new Instr(Form.LINE, new Line2D.Double(-33, 0, -10, 0))); 224 Sphere.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 40, 0))); 225 Sphere.add(new Instr(Form.EARC, new Arc2D.Double(-26.5, -39.4, 60.0, 60.0, -18.0, 216.0, Arc2D.OPEN))); 226 } 227 228 public static final Symbol Storage = new Symbol(); 229 static { 230 Storage.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 231 Storage.add(new Instr(Form.FILL, Color.black)); 232 Storage.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 233 Path2D.Double p = new Path2D.Double(); p.moveTo(-50.0, 0.0); p.lineTo(-40.0, -20.0); p.lineTo(40.0, -20.0); p.lineTo(40.0, -20.0); 234 p.lineTo(50.0, 0.0); p.lineTo(40.0, 20.0); p.lineTo(-40.0, 20.0); p.closePath(); 235 Storage.add(new Instr(Form.PLIN, p)); 236 } 237 238 public static final Symbol Super = new Symbol(); 239 static { 240 Symbol colours = new Symbol(); 241 Path2D.Double p = new Path2D.Double(); p.moveTo(-48.0, 0); p.lineTo(-28.0, -42.0); p.lineTo(28.0, -42.0); p.lineTo(48.0, 0); 242 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 243 colours.add(new Instr(Form.P1, p)); 244 p = new Path2D.Double(); p.moveTo(-48.0, 0); p.lineTo(-38.0, -21.0); p.lineTo(38.0, -21.0); p.lineTo(48.0, 0); 245 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 246 colours.add(new Instr(Form.H2, p)); 247 p = new Path2D.Double(); p.moveTo(-41.3, -14.0); p.lineTo(-34.7, -28.0); p.lineTo(34.7, -28.0); p.lineTo(41.3, -14.0); p.closePath(); 248 colours.add(new Instr(Form.H3, p)); 249 p = new Path2D.Double(); p.moveTo(-38.0, -21.0); p.lineTo(-33.0, -31.5); p.lineTo(33.0, -31.5); p.lineTo(38.0, -21.0); p.closePath(); 250 colours.add(new Instr(Form.H4, p)); 251 p = new Path2D.Double(); p.moveTo(-43.0, -11.5); p.lineTo(-38.0, -21.0); p.lineTo(38.0, -21.0); p.lineTo(43.0, -11.5); p.closePath(); 252 colours.add(new Instr(Form.H5, p)); 253 p = new Path2D.Double(); p.moveTo(0.0, -42.0); p.lineTo(28.0, -42.0); p.lineTo(48.0, 0.0); p.lineTo(8.0, 0.0); p.quadTo(7.7, -7.7, 0.0, -8.0); p.closePath(); 254 colours.add(new Instr(Form.V2, p)); 255 Super.add(new Instr(Form.COLR, colours)); 256 Super.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 257 Super.add(new Instr(Form.FILL, Color.black)); 258 Super.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 259 Super.add(new Instr(Form.LINE, new Line2D.Double(-54, 0, -10, 0))); 260 Super.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 54, 0))); 261 p = new Path2D.Double(); p.moveTo(-48.0, 0); p.lineTo(-28.0, -42.0); p.lineTo(28.0, -42.0); p.lineTo(48.0, 0); 262 Super.add(new Instr(Form.PLIN, p)); 263 } 264 265 public static final EnumMap<BoySHP, Symbol> Shapes = new EnumMap<>(BoySHP.class); 266 static { 267 Shapes.put(BoySHP.BOY_UNKN, Buoys.Pillar); Shapes.put(BoySHP.BOY_CONE, Buoys.Cone); Shapes.put(BoySHP.BOY_CAN, Buoys.Can); 268 Shapes.put(BoySHP.BOY_SPHR, Buoys.Sphere); Shapes.put(BoySHP.BOY_PILR, Buoys.Pillar); Shapes.put(BoySHP.BOY_SPAR, Buoys.Spar); 269 Shapes.put(BoySHP.BOY_BARL, Buoys.Barrel); Shapes.put(BoySHP.BOY_SUPR, Buoys.Super); Shapes.put(BoySHP.BOY_ICE, Buoys.Ice); 270 } 257 271 } -
applications/editors/josm/plugins/seachart/src/symbols/Facilities.java
r32393 r32394 12 12 import java.awt.BasicStroke; 13 13 import java.awt.Color; 14 import java.awt.geom.*; 14 import java.awt.geom.Arc2D; 15 import java.awt.geom.Ellipse2D; 16 import java.awt.geom.GeneralPath; 17 import java.awt.geom.Line2D; 18 import java.awt.geom.Path2D; 19 import java.awt.geom.Rectangle2D; 20 import java.awt.geom.RoundRectangle2D; 15 21 import java.util.EnumMap; 16 22 17 import s57.S57val.*; 18 import symbols.Symbols.*; 23 import s57.S57val.CatSCF; 24 import symbols.Symbols.Form; 25 import symbols.Symbols.Instr; 26 import symbols.Symbols.Symbol; 19 27 20 28 public class Facilities { 21 private static final Symbol Facility = new Symbol(); 22 static { 23 Facility.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 24 Facility.add(new Instr(Form.FILL, new Color(0x80ffffff, true))); 25 RoundRectangle2D.Double s = new RoundRectangle2D.Double(-29,-29,58,58,15,15); 26 Facility.add(new Instr(Form.RSHP, s)); 27 Facility.add(new Instr(Form.FILL, new Color(0xa30075))); 28 Facility.add(new Instr(Form.RRCT, s)); 29 } 30 public static final Symbol Boatlift = new Symbol();//was Crane 31 static { 32 Boatlift.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 33 Boatlift.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 34 Boatlift.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 35 Boatlift.add(new Instr(Form.ELPS, new Ellipse2D.Double(-3.7,-19.7,12,12))); 36 Boatlift.add(new Instr(Form.LINE, new Line2D.Double(2.3,-7.7,2.3,-2.0))); 37 Boatlift.add(new Instr(Form.EARC, new Arc2D.Double(-10.0,-1.5,20,20,75.0,-260.0,Arc2D.OPEN))); 38 } 39 public static final Symbol Boatyard = new Symbol(); 40 static { 41 Boatyard.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 42 Boatyard.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 43 Boatyard.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 44 Boatyard.add(new Instr(Form.LINE, new Line2D.Double(19,19,-8,-8))); 45 Path2D.Double p = new Path2D.Double(); p.moveTo(-11.3,-11.3); p.lineTo(-10.5,-17.5); p.lineTo(-14.8,-21.9); p.lineTo(-11.3,-25.4); p.lineTo(-7.4,-21.5); 46 p.curveTo(1.0,-11.5,-11.5,1.0,-21.5,-7.4); p.lineTo(-25.4,-11.3); p.lineTo(-21.9,-14.8); p.lineTo(-17.5,-10.5); p.closePath(); 47 Boatyard.add(new Instr(Form.PGON, p)); 48 } 49 public static final Symbol Chandler = new Symbol(); 50 static { 51 Chandler.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 52 Chandler.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 53 Chandler.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 54 Chandler.add(new Instr(Form.ELPS, new Ellipse2D.Double(14,7,10,10))); 55 Chandler.add(new Instr(Form.LINE, new Line2D.Double(-23.0,12.0,14.0,12.0))); 56 Chandler.add(new Instr(Form.LINE, new Line2D.Double(8.0,21.0,8.0,-8.6))); 57 Chandler.add(new Instr(Form.LINE, new Line2D.Double(-16.0,21.0,-16.0,-8.6))); 58 Chandler.add(new Instr(Form.EARC, new Arc2D.Double(-16.0,-20.5,24,24,0.0,180.0,Arc2D.OPEN))); 59 } 60 public static final Symbol Fuel = new Symbol(); 61 static { 62 Fuel.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 63 Fuel.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 64 Fuel.add(new Instr(Form.STRK, new BasicStroke(2.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 65 Fuel.add(new Instr(Form.FILL, new Color(0xa30075))); 66 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 67 p.moveTo(-15.6,22.1); p.lineTo(-15.6,-19.4); p.quadTo(-15.5,-22.7,-12.2,-22.8); p.lineTo(0.2,-22.8); p.quadTo(3.3,-22.7,3.4,-19.4); p.lineTo(3.4,22.1); p.closePath(); 68 p.moveTo(-12.8,-19.0); p.quadTo(-12.7,-19.9,-11.8,-20.0); p.lineTo(-0.4,-20.0); p.quadTo(0.5,-19.9,0.6,-19.0); p.lineTo(0.6,-9.4); 69 p.quadTo(0.5,-8.5,-0.4,-8.4); p.lineTo(-11.8,-8.4); p.quadTo(-12.7,-8.3,-12.8,-9.4); p.closePath(); 70 Fuel.add(new Instr(Form.PGON, p)); 71 p = new Path2D.Double(); p.moveTo(3.0,-3.0); p.lineTo(7.0,-3.0); p.quadTo(9.4,-2.8,9.6,-0.4); p.lineTo(9.6,18.0); p.curveTo(10.1,23.2,18.4,21.5,17.4,17.2); 72 p.lineTo(14.9,3.5); p.lineTo(15.1,-10.3); p.quadTo(14.9,-11.9,13.9,-13.1); p.lineTo(7.4,-19.6); p.moveTo(15.1,-7.4); p.lineTo(12.6,-7.4); p.quadTo(11.1,-7.4,11.1,-8.9); p.lineTo(11.1,-16.0); 73 Fuel.add(new Instr(Form.PLIN, p)); 74 } 75 public static final Symbol Laundrette = new Symbol(); 76 static { 77 Laundrette.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 78 Laundrette.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 79 Laundrette.add(new Instr(Form.STRK, new BasicStroke(1.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 80 Laundrette.add(new Instr(Form.FILL, new Color(0xa30075))); 81 Laundrette.add(new Instr(Form.RECT, new Rectangle2D.Double(-15,-15,30,30))); 82 Laundrette.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 83 Path2D.Double p = new Path2D.Double(); p.moveTo(-15,-15); p.lineTo(-15,-20); p.lineTo(15,-20); p.lineTo(15,-15); 84 p.moveTo(-10,15); p.lineTo(-10,20); p.lineTo(10,20); p.lineTo(10,15); 85 Laundrette.add(new Instr(Form.PLIN, p)); 86 } 87 public static final Symbol PumpOut = new Symbol(); 88 static { 89 PumpOut.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 90 PumpOut.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 91 PumpOut.add(new Instr(Form.STRK, new BasicStroke(2.5f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 92 PumpOut.add(new Instr(Form.FILL, new Color(0xa30075))); 93 Path2D.Double p = new Path2D.Double(); p.moveTo(3.9,-3.7); p.lineTo(-7.4,-3.7); p.lineTo(-12.0,2.0); p.lineTo(-22.7,2.0); 94 p.lineTo(-11.8,14.9); p.lineTo(15.1,14.9); p.lineTo(21.9,10.2); p.lineTo(21.9,3.1); p.lineTo(13.5,3.1); 95 PumpOut.add(new Instr(Form.PLIN, p)); 96 PumpOut.add(new Instr(Form.STRK, new BasicStroke(3.5f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 97 p = new Path2D.Double(); p.moveTo(-2.5,3.0); p.lineTo(-2.5,-13.8); p.lineTo(6.9,-13.8); p.lineTo(6.9,-6.7); p.lineTo(14.5,-6.7); 98 PumpOut.add(new Instr(Form.PLIN, p)); 99 p = new Path2D.Double(); p.moveTo(9.7,2.3); p.lineTo(9.7,10.3); p.lineTo(-4.1,10.3); p.lineTo(-4.1,2.3); p.closePath(); 100 PumpOut.add(new Instr(Form.PGON, p)); 101 p = new Path2D.Double(); p.moveTo(14.1,-10.6); p.lineTo(23.1,-6.7); p.lineTo(14.1,-2.8); p.closePath(); 102 PumpOut.add(new Instr(Form.PGON, p)); 103 } 104 public static final Symbol SailingClub = new Symbol(); 105 static { 106 SailingClub.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 107 SailingClub.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 108 SailingClub.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 109 SailingClub.add(new Instr(Form.FILL, new Color(0xa30075))); 110 SailingClub.add(new Instr(Form.LINE, new Line2D.Double(-5,20,-5,-20))); 111 Path2D.Double p = new Path2D.Double(); p.moveTo(-5,0); p.lineTo(20,-10); p.lineTo(-5,-20); p.closePath(); 112 SailingClub.add(new Instr(Form.PGON, p)); 113 } 114 public static final Symbol Shower = new Symbol(); 115 static { 116 Shower.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 117 Shower.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 118 Shower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 119 Shower.add(new Instr(Form.FILL, new Color(0xa30075))); 120 Shower.add(new Instr(Form.LINE, new Line2D.Double(-4.8,-24.5,6.2,-13.5))); 121 Shower.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 122 Shower.add(new Instr(Form.LINE, new Line2D.Double(-18.1,-17.9,-6.1,-21.3))); 123 Shower.add(new Instr(Form.LINE, new Line2D.Double(-13.9,-10.2,-3.9,-17.7))); 124 Shower.add(new Instr(Form.LINE, new Line2D.Double(-7.8,-4.4,-0.5,-14.3))); 125 Shower.add(new Instr(Form.LINE, new Line2D.Double(-0.2,-0.2,3.1,-12.1))); 126 Path2D.Double p = new Path2D.Double(); p.moveTo(11.1,24.6); p.lineTo(11.1,-16.0); p.curveTo(11.1,-22.7,3.4,-23.6,0.8,-19.3); 127 Shower.add(new Instr(Form.PLIN, p)); 128 } 129 public static final Symbol Slipway = new Symbol(); 130 static { 131 Slipway.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 132 Slipway.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 133 Slipway.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 134 Slipway.add(new Instr(Form.FILL, new Color(0xa30075))); 135 Path2D.Double p = new Path2D.Double(); p.moveTo(-24.8,0.1); p.lineTo(-24.8,18.0); p.curveTo(-21.2,18.0,-22.2,16.7,-18.6,16.7); p.curveTo(-15.0,16.7,-16.0,18.0,-12.4,18.0); 136 p.curveTo(-8.8,18.0,-9.8,16.7,-6.2,16.7); p.curveTo(-2.6,16.7,-3.6,18.0,0.0,18.0); p.curveTo(3.6,18.0,2.6,16.7,6.2,16.7); p.curveTo(9.8,16.7,8.8,18.0,12.4,18.0); 137 p.curveTo(16.0,18.0,15.0,16.7,18.6,16.7); p.curveTo(22.2,16.7,21.2,18.0,24.8,18.0); p.lineTo(24.8,13.6); p.closePath(); 138 Slipway.add(new Instr(Form.PGON, p)); 139 Slipway.add(new Instr(Form.ELPS, new Ellipse2D.Double(-1.65,-1.9,8,8))); 140 Slipway.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 141 Slipway.add(new Instr(Form.LINE, new Line2D.Double(-24.5,-8.3,-3.1,-2.4))); 142 Slipway.add(new Instr(Form.LINE, new Line2D.Double(9.3,1.1,22.2,4.6))); 143 p = new Path2D.Double(); p.moveTo(22.9,0.6); p.lineTo(25.0,-7.4); p.lineTo(-5.1,-15.8); p.lineTo(0.3,-19.6); p.lineTo(-1.6,-20.1); p.lineTo(-7.2,-16.2); 144 p.lineTo(-17.1,-18.9); p.quadTo(-16.8,-11.4,-7.7,-7.7); p.closePath(); 145 Slipway.add(new Instr(Form.PGON, p)); 146 } 147 public static final Symbol Toilet = new Symbol(); 148 static { 149 Toilet.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 150 Toilet.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 151 Toilet.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 152 Toilet.add(new Instr(Form.FILL, new Color(0xa30075))); 153 Toilet.add(new Instr(Form.LINE, new Line2D.Double(0,20,0,-20))); 154 Toilet.add(new Instr(Form.RSHP, new Ellipse2D.Double(-18.5,-22.5,7.4,7.4))); 155 Toilet.add(new Instr(Form.RSHP, new Ellipse2D.Double(11,-22.5,7.4,7.4))); 156 Path2D.Double p = new Path2D.Double(); p.moveTo(-9.8,-12.2); p.lineTo(-4.8,2.7); p.lineTo(-7.3,3.9); p.lineTo(-10.6,-7.0); p.lineTo(-11.7,-6.4); p.lineTo(-7.6,9.0); 157 p.lineTo(-11.3,9.0); p.lineTo(-11.6,22.1); p.lineTo(-13.9,22.1); p.lineTo(-14.2,9.0); p.lineTo(-15.8,9.0); p.lineTo(-16.2,22.1); p.lineTo(-18.4,22.1); 158 p.lineTo(-18.8,9.0); p.lineTo(-22.3,9.0); p.lineTo(-18.2,-6.4); p.lineTo(-19.1,-7.0); p.lineTo(-22.9,3.9); p.lineTo(-25.1,2.7); p.lineTo(-19.9,-12.2); p.closePath(); 159 Toilet.add(new Instr(Form.PGON, p)); 160 p = new Path2D.Double(); p.moveTo(19.2,-12.2); p.lineTo(22.3,-10.1); p.lineTo(22.3,4.4); p.lineTo(20.2,4.4); p.lineTo(20.2,-7.3); p.lineTo(18.3,-7.3); p.lineTo(18.3,22.1); 161 p.lineTo(15.8,22.1); p.lineTo(15.8,4.6); p.lineTo(13.8,4.6); p.lineTo(13.4,22.1); p.lineTo(11.0,22.1); p.lineTo(11.0,-7.3); p.lineTo(9.5,-7.3); p.lineTo(9.5,4.4); p.lineTo(6.8,4.4); 162 p.lineTo(6.8,-10.1); p.lineTo(9.4,-12.2); p.closePath(); 163 Toilet.add(new Instr(Form.PGON, p)); 164 } 165 public static final Symbol VisitorBerth = new Symbol(); 166 static { 167 VisitorBerth.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 168 VisitorBerth.add(new Instr(Form.FILL, new Color(0xa30075))); 169 VisitorBerth.add(new Instr(Form.RSHP, new Ellipse2D.Double(-25,-25,50,50))); 170 VisitorBerth.add(new Instr(Form.FILL, Color.white)); 171 Path2D.Double p = new Path2D.Double(); p.moveTo(7.9,-13.6); p.lineTo(14.0,-13.6); p.lineTo(3.4,13.6); p.lineTo(-3.4,13.6); 172 p.lineTo(-14.0,-13.6); p.lineTo(-7.9,-13.6); p.lineTo(0.0,8.7); p.closePath(); 173 VisitorBerth.add(new Instr(Form.PGON, p)); 174 } 175 public static final Symbol VisitorMooring = new Symbol(); 176 static { 177 VisitorMooring.add(new Instr(Form.FILL, new Color(0xa30075))); 178 Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0,0); p.curveTo(-32.0,-21.0,-14.0,-45.5,12.7,-37.9); p.curveTo(27.5,-33.8,37.8,-15.5,32.0,0.0); 179 p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath(); 180 VisitorMooring.add(new Instr(Form.PGON, p)); 181 VisitorMooring.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 182 VisitorMooring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 183 VisitorMooring.add(new Instr(Form.LINE, new Line2D.Double(-33,0,-10,0))); 184 VisitorMooring.add(new Instr(Form.LINE, new Line2D.Double(10,0,40,0))); 185 VisitorMooring.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 186 VisitorMooring.add(new Instr(Form.ELPS, new Ellipse2D.Double(6.5,-49.5,12,12))); 187 VisitorMooring.add(new Instr(Form.FILL, Color.white)); 188 p = new Path2D.Double(); p.moveTo(8.3,-32.8); p.lineTo(12.5,-32.8); p.lineTo(5.4,-12.9); p.lineTo(1.0,-12.9); p.lineTo(-6.1,-32.8); 189 p.lineTo(-1.9,-32.8); p.lineTo(3.2,-18.1); p.closePath(); 190 VisitorMooring.add(new Instr(Form.PGON, p)); 191 } 192 193 public static final EnumMap<CatSCF, Symbol> Cats = new EnumMap<>(CatSCF.class); 194 static { 195 Cats.put(CatSCF.SCF_BHST, Boatlift); Cats.put(CatSCF.SCF_BTYD, Boatyard); Cats.put(CatSCF.SCF_CHDR, Chandler); Cats.put(CatSCF.SCF_FUEL, Fuel); Cats.put(CatSCF.SCF_LAUN, Laundrette); 196 Cats.put(CatSCF.SCF_PMPO, PumpOut); Cats.put(CatSCF.SCF_CLUB, SailingClub); Cats.put(CatSCF.SCF_SHWR, Shower); Cats.put(CatSCF.SCF_SLPW, Slipway); Cats.put(CatSCF.SCF_WC, Toilet); 197 Cats.put(CatSCF.SCF_VBTH, VisitorBerth); Cats.put(CatSCF.SCF_VMOR, VisitorMooring); 198 } 29 // CHECKSTYLE.OFF: LineLength 30 private static final Symbol Facility = new Symbol(); 31 static { 32 Facility.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 33 Facility.add(new Instr(Form.FILL, new Color(0x80ffffff, true))); 34 RoundRectangle2D.Double s = new RoundRectangle2D.Double(-29, -29, 58, 58, 15, 15); 35 Facility.add(new Instr(Form.RSHP, s)); 36 Facility.add(new Instr(Form.FILL, new Color(0xa30075))); 37 Facility.add(new Instr(Form.RRCT, s)); 38 } 39 40 public static final Symbol Boatlift = new Symbol(); //was Crane 41 static { 42 Boatlift.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 43 Boatlift.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 44 Boatlift.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 45 Boatlift.add(new Instr(Form.ELPS, new Ellipse2D.Double(-3.7, -19.7, 12, 12))); 46 Boatlift.add(new Instr(Form.LINE, new Line2D.Double(2.3, -7.7, 2.3, -2.0))); 47 Boatlift.add(new Instr(Form.EARC, new Arc2D.Double(-10.0, -1.5, 20, 20, 75.0, -260.0, Arc2D.OPEN))); 48 } 49 50 public static final Symbol Boatyard = new Symbol(); 51 static { 52 Boatyard.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 53 Boatyard.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 54 Boatyard.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 55 Boatyard.add(new Instr(Form.LINE, new Line2D.Double(19, 19, -8, -8))); 56 Path2D.Double p = new Path2D.Double(); p.moveTo(-11.3, -11.3); p.lineTo(-10.5, -17.5); p.lineTo(-14.8, -21.9); p.lineTo(-11.3, -25.4); p.lineTo(-7.4, -21.5); 57 p.curveTo(1.0, -11.5, -11.5, 1.0, -21.5, -7.4); p.lineTo(-25.4, -11.3); p.lineTo(-21.9, -14.8); p.lineTo(-17.5, -10.5); p.closePath(); 58 Boatyard.add(new Instr(Form.PGON, p)); 59 } 60 61 public static final Symbol Chandler = new Symbol(); 62 static { 63 Chandler.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 64 Chandler.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 65 Chandler.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 66 Chandler.add(new Instr(Form.ELPS, new Ellipse2D.Double(14, 7, 10, 10))); 67 Chandler.add(new Instr(Form.LINE, new Line2D.Double(-23.0, 12.0, 14.0, 12.0))); 68 Chandler.add(new Instr(Form.LINE, new Line2D.Double(8.0, 21.0, 8.0, -8.6))); 69 Chandler.add(new Instr(Form.LINE, new Line2D.Double(-16.0, 21.0, -16.0, -8.6))); 70 Chandler.add(new Instr(Form.EARC, new Arc2D.Double(-16.0, -20.5, 24, 24, 0.0, 180.0, Arc2D.OPEN))); 71 } 72 73 public static final Symbol Fuel = new Symbol(); 74 static { 75 Fuel.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 76 Fuel.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 77 Fuel.add(new Instr(Form.STRK, new BasicStroke(2.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 78 Fuel.add(new Instr(Form.FILL, new Color(0xa30075))); 79 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 80 p.moveTo(-15.6, 22.1); p.lineTo(-15.6, -19.4); p.quadTo(-15.5, -22.7, -12.2, -22.8); p.lineTo(0.2, -22.8); p.quadTo(3.3, -22.7, 3.4, -19.4); p.lineTo(3.4, 22.1); p.closePath(); 81 p.moveTo(-12.8, -19.0); p.quadTo(-12.7, -19.9, -11.8, -20.0); p.lineTo(-0.4, -20.0); p.quadTo(0.5, -19.9, 0.6, -19.0); p.lineTo(0.6, -9.4); 82 p.quadTo(0.5, -8.5, -0.4, -8.4); p.lineTo(-11.8, -8.4); p.quadTo(-12.7, -8.3, -12.8, -9.4); p.closePath(); 83 Fuel.add(new Instr(Form.PGON, p)); 84 p = new Path2D.Double(); p.moveTo(3.0, -3.0); p.lineTo(7.0, -3.0); p.quadTo(9.4, -2.8, 9.6, -0.4); p.lineTo(9.6, 18.0); p.curveTo(10.1, 23.2, 18.4, 21.5, 17.4, 17.2); 85 p.lineTo(14.9, 3.5); p.lineTo(15.1, -10.3); p.quadTo(14.9, -11.9, 13.9, -13.1); p.lineTo(7.4, -19.6); p.moveTo(15.1, -7.4); p.lineTo(12.6, -7.4); p.quadTo(11.1, -7.4, 11.1, -8.9); p.lineTo(11.1, -16.0); 86 Fuel.add(new Instr(Form.PLIN, p)); 87 } 88 89 public static final Symbol Laundrette = new Symbol(); 90 static { 91 Laundrette.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 92 Laundrette.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 93 Laundrette.add(new Instr(Form.STRK, new BasicStroke(1.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 94 Laundrette.add(new Instr(Form.FILL, new Color(0xa30075))); 95 Laundrette.add(new Instr(Form.RECT, new Rectangle2D.Double(-15, -15, 30, 30))); 96 Laundrette.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 97 Path2D.Double p = new Path2D.Double(); p.moveTo(-15, -15); p.lineTo(-15, -20); p.lineTo(15, -20); p.lineTo(15, -15); 98 p.moveTo(-10, 15); p.lineTo(-10, 20); p.lineTo(10, 20); p.lineTo(10, 15); 99 Laundrette.add(new Instr(Form.PLIN, p)); 100 } 101 102 public static final Symbol PumpOut = new Symbol(); 103 static { 104 PumpOut.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 105 PumpOut.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 106 PumpOut.add(new Instr(Form.STRK, new BasicStroke(2.5f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 107 PumpOut.add(new Instr(Form.FILL, new Color(0xa30075))); 108 Path2D.Double p = new Path2D.Double(); p.moveTo(3.9, -3.7); p.lineTo(-7.4, -3.7); p.lineTo(-12.0, 2.0); p.lineTo(-22.7, 2.0); 109 p.lineTo(-11.8, 14.9); p.lineTo(15.1, 14.9); p.lineTo(21.9, 10.2); p.lineTo(21.9, 3.1); p.lineTo(13.5, 3.1); 110 PumpOut.add(new Instr(Form.PLIN, p)); 111 PumpOut.add(new Instr(Form.STRK, new BasicStroke(3.5f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 112 p = new Path2D.Double(); p.moveTo(-2.5, 3.0); p.lineTo(-2.5, -13.8); p.lineTo(6.9, -13.8); p.lineTo(6.9, -6.7); p.lineTo(14.5, -6.7); 113 PumpOut.add(new Instr(Form.PLIN, p)); 114 p = new Path2D.Double(); p.moveTo(9.7, 2.3); p.lineTo(9.7, 10.3); p.lineTo(-4.1, 10.3); p.lineTo(-4.1, 2.3); p.closePath(); 115 PumpOut.add(new Instr(Form.PGON, p)); 116 p = new Path2D.Double(); p.moveTo(14.1, -10.6); p.lineTo(23.1, -6.7); p.lineTo(14.1, -2.8); p.closePath(); 117 PumpOut.add(new Instr(Form.PGON, p)); 118 } 119 120 public static final Symbol SailingClub = new Symbol(); 121 static { 122 SailingClub.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 123 SailingClub.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 124 SailingClub.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 125 SailingClub.add(new Instr(Form.FILL, new Color(0xa30075))); 126 SailingClub.add(new Instr(Form.LINE, new Line2D.Double(-5, 20, -5, -20))); 127 Path2D.Double p = new Path2D.Double(); p.moveTo(-5, 0); p.lineTo(20, -10); p.lineTo(-5, -20); p.closePath(); 128 SailingClub.add(new Instr(Form.PGON, p)); 129 } 130 131 public static final Symbol Shower = new Symbol(); 132 static { 133 Shower.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 134 Shower.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 135 Shower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 136 Shower.add(new Instr(Form.FILL, new Color(0xa30075))); 137 Shower.add(new Instr(Form.LINE, new Line2D.Double(-4.8, -24.5, 6.2, -13.5))); 138 Shower.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 139 Shower.add(new Instr(Form.LINE, new Line2D.Double(-18.1, -17.9, -6.1, -21.3))); 140 Shower.add(new Instr(Form.LINE, new Line2D.Double(-13.9, -10.2, -3.9, -17.7))); 141 Shower.add(new Instr(Form.LINE, new Line2D.Double(-7.8, -4.4, -0.5, -14.3))); 142 Shower.add(new Instr(Form.LINE, new Line2D.Double(-0.2, -0.2, 3.1, -12.1))); 143 Path2D.Double p = new Path2D.Double(); p.moveTo(11.1, 24.6); p.lineTo(11.1, -16.0); p.curveTo(11.1, -22.7, 3.4, -23.6, 0.8, -19.3); 144 Shower.add(new Instr(Form.PLIN, p)); 145 } 146 147 public static final Symbol Slipway = new Symbol(); 148 static { 149 Slipway.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 150 Slipway.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 151 Slipway.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 152 Slipway.add(new Instr(Form.FILL, new Color(0xa30075))); 153 Path2D.Double p = new Path2D.Double(); p.moveTo(-24.8, 0.1); p.lineTo(-24.8, 18.0); p.curveTo(-21.2, 18.0, -22.2, 16.7, -18.6, 16.7); p.curveTo(-15.0, 16.7, -16.0, 18.0, -12.4, 18.0); 154 p.curveTo(-8.8, 18.0, -9.8, 16.7, -6.2, 16.7); p.curveTo(-2.6, 16.7, -3.6, 18.0, 0.0, 18.0); p.curveTo(3.6, 18.0, 2.6, 16.7, 6.2, 16.7); p.curveTo(9.8, 16.7, 8.8, 18.0, 12.4, 18.0); 155 p.curveTo(16.0, 18.0, 15.0, 16.7, 18.6, 16.7); p.curveTo(22.2, 16.7, 21.2, 18.0, 24.8, 18.0); p.lineTo(24.8, 13.6); p.closePath(); 156 Slipway.add(new Instr(Form.PGON, p)); 157 Slipway.add(new Instr(Form.ELPS, new Ellipse2D.Double(-1.65, -1.9, 8, 8))); 158 Slipway.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 159 Slipway.add(new Instr(Form.LINE, new Line2D.Double(-24.5, -8.3, -3.1, -2.4))); 160 Slipway.add(new Instr(Form.LINE, new Line2D.Double(9.3, 1.1, 22.2, 4.6))); 161 p = new Path2D.Double(); p.moveTo(22.9, 0.6); p.lineTo(25.0, -7.4); p.lineTo(-5.1, -15.8); p.lineTo(0.3, -19.6); p.lineTo(-1.6, -20.1); p.lineTo(-7.2, -16.2); 162 p.lineTo(-17.1, -18.9); p.quadTo(-16.8, -11.4, -7.7, -7.7); p.closePath(); 163 Slipway.add(new Instr(Form.PGON, p)); 164 } 165 166 public static final Symbol Toilet = new Symbol(); 167 static { 168 Toilet.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 169 Toilet.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null))); 170 Toilet.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 171 Toilet.add(new Instr(Form.FILL, new Color(0xa30075))); 172 Toilet.add(new Instr(Form.LINE, new Line2D.Double(0, 20, 0, -20))); 173 Toilet.add(new Instr(Form.RSHP, new Ellipse2D.Double(-18.5, -22.5, 7.4, 7.4))); 174 Toilet.add(new Instr(Form.RSHP, new Ellipse2D.Double(11, -22.5, 7.4, 7.4))); 175 Path2D.Double p = new Path2D.Double(); p.moveTo(-9.8, -12.2); p.lineTo(-4.8, 2.7); p.lineTo(-7.3, 3.9); p.lineTo(-10.6, -7.0); p.lineTo(-11.7, -6.4); p.lineTo(-7.6, 9.0); 176 p.lineTo(-11.3, 9.0); p.lineTo(-11.6, 22.1); p.lineTo(-13.9, 22.1); p.lineTo(-14.2, 9.0); p.lineTo(-15.8, 9.0); p.lineTo(-16.2, 22.1); p.lineTo(-18.4, 22.1); 177 p.lineTo(-18.8, 9.0); p.lineTo(-22.3, 9.0); p.lineTo(-18.2, -6.4); p.lineTo(-19.1, -7.0); p.lineTo(-22.9, 3.9); p.lineTo(-25.1, 2.7); p.lineTo(-19.9, -12.2); p.closePath(); 178 Toilet.add(new Instr(Form.PGON, p)); 179 p = new Path2D.Double(); p.moveTo(19.2, -12.2); p.lineTo(22.3, -10.1); p.lineTo(22.3, 4.4); p.lineTo(20.2, 4.4); p.lineTo(20.2, -7.3); p.lineTo(18.3, -7.3); p.lineTo(18.3, 22.1); 180 p.lineTo(15.8, 22.1); p.lineTo(15.8, 4.6); p.lineTo(13.8, 4.6); p.lineTo(13.4, 22.1); p.lineTo(11.0, 22.1); p.lineTo(11.0, -7.3); p.lineTo(9.5, -7.3); p.lineTo(9.5, 4.4); p.lineTo(6.8, 4.4); 181 p.lineTo(6.8, -10.1); p.lineTo(9.4, -12.2); p.closePath(); 182 Toilet.add(new Instr(Form.PGON, p)); 183 } 184 185 public static final Symbol VisitorBerth = new Symbol(); 186 static { 187 VisitorBerth.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 188 VisitorBerth.add(new Instr(Form.FILL, new Color(0xa30075))); 189 VisitorBerth.add(new Instr(Form.RSHP, new Ellipse2D.Double(-25, -25, 50, 50))); 190 VisitorBerth.add(new Instr(Form.FILL, Color.white)); 191 Path2D.Double p = new Path2D.Double(); p.moveTo(7.9, -13.6); p.lineTo(14.0, -13.6); p.lineTo(3.4, 13.6); p.lineTo(-3.4, 13.6); 192 p.lineTo(-14.0, -13.6); p.lineTo(-7.9, -13.6); p.lineTo(0.0, 8.7); p.closePath(); 193 VisitorBerth.add(new Instr(Form.PGON, p)); 194 } 195 196 public static final Symbol VisitorMooring = new Symbol(); 197 static { 198 VisitorMooring.add(new Instr(Form.FILL, new Color(0xa30075))); 199 Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0, 0); p.curveTo(-32.0, -21.0, -14.0, -45.5, 12.7, -37.9); p.curveTo(27.5, -33.8, 37.8, -15.5, 32.0, 0.0); 200 p.lineTo(8.0, 0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath(); 201 VisitorMooring.add(new Instr(Form.PGON, p)); 202 VisitorMooring.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 203 VisitorMooring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 204 VisitorMooring.add(new Instr(Form.LINE, new Line2D.Double(-33, 0, -10, 0))); 205 VisitorMooring.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 40, 0))); 206 VisitorMooring.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 207 VisitorMooring.add(new Instr(Form.ELPS, new Ellipse2D.Double(6.5, -49.5, 12, 12))); 208 VisitorMooring.add(new Instr(Form.FILL, Color.white)); 209 p = new Path2D.Double(); p.moveTo(8.3, -32.8); p.lineTo(12.5, -32.8); p.lineTo(5.4, -12.9); p.lineTo(1.0, -12.9); p.lineTo(-6.1, -32.8); 210 p.lineTo(-1.9, -32.8); p.lineTo(3.2, -18.1); p.closePath(); 211 VisitorMooring.add(new Instr(Form.PGON, p)); 212 } 213 214 public static final EnumMap<CatSCF, Symbol> Cats = new EnumMap<>(CatSCF.class); 215 static { 216 Cats.put(CatSCF.SCF_BHST, Boatlift); Cats.put(CatSCF.SCF_BTYD, Boatyard); Cats.put(CatSCF.SCF_CHDR, Chandler); Cats.put(CatSCF.SCF_FUEL, Fuel); Cats.put(CatSCF.SCF_LAUN, Laundrette); 217 Cats.put(CatSCF.SCF_PMPO, PumpOut); Cats.put(CatSCF.SCF_CLUB, SailingClub); Cats.put(CatSCF.SCF_SHWR, Shower); Cats.put(CatSCF.SCF_SLPW, Slipway); Cats.put(CatSCF.SCF_WC, Toilet); 218 Cats.put(CatSCF.SCF_VBTH, VisitorBerth); Cats.put(CatSCF.SCF_VMOR, VisitorMooring); 219 } 199 220 } -
applications/editors/josm/plugins/seachart/src/symbols/Harbours.java
r32101 r32394 12 12 import java.awt.BasicStroke; 13 13 import java.awt.Color; 14 import java.awt.geom.*; 15 16 import symbols.Symbols.*; 14 import java.awt.geom.Arc2D; 15 import java.awt.geom.Ellipse2D; 16 import java.awt.geom.GeneralPath; 17 import java.awt.geom.Line2D; 18 import java.awt.geom.Path2D; 19 import java.awt.geom.Rectangle2D; 20 21 import symbols.Symbols.Form; 22 import symbols.Symbols.Instr; 23 import symbols.Symbols.Scheme; 24 import symbols.Symbols.Symbol; 17 25 18 26 public class Harbours { 19 public static final Symbol Anchor = new Symbol(); 20 static { 21 Anchor.add(new Instr(Form.BBOX, new Rectangle2D.Double(-60,-60,120,120))); 22 Anchor.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 23 Anchor.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-59,20,20))); 24 Path2D.Double p = new Path2D.Double(); p.moveTo(23.0,-40.0); p.lineTo(23.0,-30.0); p.lineTo(6.0,-30.0); p.lineTo(7.0,31.0); p.quadTo(21.0,29.0,31.0,22.0); 25 p.lineTo(27.0,18.0); p.lineTo(52.0,0.0); p.lineTo(45.0,35.0); p.lineTo(37.0,28.0); p.quadTo(25.0,39.0,7.0,43.0); p.lineTo(6.0,51.0); 26 p.lineTo(-6.0,51.0); p.lineTo(-7.0,43.0); p.quadTo(-25.0,39.0,-37.0,28.0); p.lineTo(-45.0,35.0); p.lineTo(-52.0,0.0); p.lineTo(-27.0,18.0); 27 p.lineTo(-31.0,22.0); p.quadTo(-21.0,29.0,-7.0,31.0); p.lineTo(-6.0,-30.0); p.lineTo(-23.0,-30.0); p.lineTo(-23.0,-40.0); p.closePath(); 28 Anchor.add(new Instr(Form.PGON, p)); 29 } 30 public static final Symbol Yacht = new Symbol(); 31 static { 32 Yacht.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 33 Path2D.Double p = new Path2D.Double(); p.moveTo(-65.0,50.0); p.curveTo(-36.0,97.0,36.0,97.0,65.0,50.0); p.lineTo(3.0,50.0); p.lineTo(3.0,40.0); p.lineTo(55.0,30.0); 34 p.curveTo(32.0,4.0,25.0,-15.0,26.0,-52.0); p.lineTo(1.5,-40.0); p.lineTo(1.0,-64.0); p.lineTo(-2.0,-64.0); p.lineTo(-4.0,50.0); p.closePath(); 35 p.moveTo(-50.0,45.0); p.curveTo(-55.0,3.0,-37.0,-28.5,-7.0,-46.0); p.curveTo(-28.0,-15.0,-26.0,11.0,-20.5,30.0); p.closePath(); 36 Yacht.add(new Instr(Form.PGON, p)); 37 } 38 public static final Symbol Anchorage = new Symbol(); 39 static { 40 Anchorage.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.67, 0, 0, new Scheme(Symbols.Msymb), null))); 41 } 42 public static final Symbol Bollard = new Symbol(); 43 static { 44 Bollard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 45 Bollard.add(new Instr(Form.FILL, Color.white)); 46 Ellipse2D.Double s = new Ellipse2D.Double(-10,-10,20,20); 47 Bollard.add(new Instr(Form.RSHP, s)); 48 Bollard.add(new Instr(Form.FILL, Color.black)); 49 Bollard.add(new Instr(Form.ELPS, s)); 50 } 51 public static final Symbol CallPoint1 = new Symbol(); 52 static { 53 CallPoint1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-50,-50,100,100))); 54 CallPoint1.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 55 CallPoint1.add(new Instr(Form.FILL, Symbols.Msymb)); 56 CallPoint1.add(new Instr(Form.ELPS, new Ellipse2D.Double(-25,-25,50,50))); 57 Path2D.Double p = new Path2D.Double(); p.moveTo(-16.0,-20.0); p.lineTo(0.0,-50.0); p.lineTo(16.0,-20.0); 58 CallPoint1.add(new Instr(Form.PLIN, p)); 59 } 60 public static final Symbol CallPoint2 = new Symbol(); 61 static { 62 CallPoint2.add(new Instr(Form.BBOX, new Rectangle2D.Double(-50,-50,100,100))); 63 CallPoint2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(CallPoint1, 1.0, 0, 0, null, null))); 64 Path2D.Double p = new Path2D.Double(); p.moveTo(-16.0,20.0); p.lineTo(0.0,50.0); p.lineTo(16.0,20.0); 65 CallPoint2.add(new Instr(Form.PLIN, p)); 66 } 67 public static final Symbol ContainerCrane = new Symbol(); 68 static { 69 ContainerCrane.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 70 ContainerCrane.add(new Instr(Form.RSHP, new Rectangle2D.Double(-15,-65,30,100))); 71 ContainerCrane.add(new Instr(Form.RECT, new Rectangle2D.Double(-40,-12.5,80,25))); 72 } 73 public static final Symbol Customs = new Symbol(); 74 static { 75 Customs.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 76 Customs.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 77 Customs.add(new Instr(Form.ELPS, new Ellipse2D.Double(-28,-28,56,56))); 78 Customs.add(new Instr(Form.LINE, new Line2D.Double(-25,5,25,5))); 79 Customs.add(new Instr(Form.LINE, new Line2D.Double(-25,-5,25,-5))); 80 } 81 public static final Symbol DeviationDolphin = new Symbol(); 82 static { 83 DeviationDolphin.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 84 Path2D.Double p = new Path2D.Double(); p.moveTo(-30.0,0.0); p.lineTo(30.0,0.0); p.moveTo(0.0,0.0); p.lineTo(0.0,-40.0); 85 p.moveTo(-20.0,0.0); p.lineTo(-15.0,-32.0); p.lineTo(15.0,-32.0); p.lineTo(20.0,0.0); 86 DeviationDolphin.add(new Instr(Form.PLIN, p)); 87 } 88 public static final Symbol DistanceI = new Symbol(); 89 static { 90 DistanceI.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 91 DistanceI.add(new Instr(Form.ELPS, new Ellipse2D.Double(-11,-11,22,22))); 92 } 93 public static final Symbol DistanceU = new Symbol(); 94 static { 95 DistanceU.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 96 DistanceU.add(new Instr(Form.FILL, Symbols.Msymb)); 97 DistanceU.add(new Instr(Form.ELPS, new Ellipse2D.Double(-11,-11,22,22))); 98 } 99 public static final Symbol Dolphin = new Symbol(); 100 static { 101 Dolphin.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 102 Dolphin.add(new Instr(Form.FILL, new Color(0xffd400))); 103 Path2D.Double p = new Path2D.Double(); p.moveTo(3.8,-9.2); p.lineTo(9.2,-3.8); p.lineTo(9.2,3.8); p.lineTo(3.8,9.2); 104 p.lineTo(-3.8,9.2); p.lineTo(-9.2,3.8); p.lineTo(-9.2,-3.8); p.lineTo(-3.8,-9.2); p.closePath(); 105 Dolphin.add(new Instr(Form.PGON, p)); 106 Dolphin.add(new Instr(Form.FILL, Color.black)); 107 Dolphin.add(new Instr(Form.PLIN, p)); 108 } 109 public static final Symbol Explosives = new Symbol(); 110 static { 111 Explosives.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 112 Explosives.add(new Instr(Form.RSHP, new Ellipse2D.Double(-5,25,10,10))); 113 Explosives.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 114 Path2D.Double p = new Path2D.Double(); p.moveTo(-10,20); p.lineTo(-13,17); p.lineTo(-13,8); 115 p.moveTo(0,10); p.lineTo(0,0); p.lineTo(-8,-10); 116 p.moveTo(10,17); p.lineTo(18,-10); p.lineTo(10,-20); 117 Explosives.add(new Instr(Form.PLIN, p)); 118 } 119 public static final Symbol Fishing = new Symbol(); 120 static { 121 Fishing.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 122 Fishing.add(new Instr(Form.FILL, Symbols.Msymb)); 123 Fishing.add(new Instr(Form.EARC, new Arc2D.Double(-50,-50,100,100,15,140,Arc2D.OPEN))); 124 Fishing.add(new Instr(Form.EARC, new Arc2D.Double(-50,-50,100,100,-15,-140,Arc2D.OPEN))); 125 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 126 p.moveTo(-24,3); p.curveTo(12,24,30,15,48,0); p.curveTo(30,-15,12,-24,-24,-3); 127 p.lineTo(-45,-15); p.quadTo(-48, 0, -45, 15); p.closePath(); 128 p.moveTo(25, 0); p.curveTo(25, 6, 34, 6, 34, 0); p.curveTo(34, -6, 25, -6, 25, 0); p.closePath(); 129 Fishing.add(new Instr(Form.PGON, p)); 130 } 131 public static final Symbol Harbour = new Symbol(); 132 static { 133 Harbour.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 134 Harbour.add(new Instr(Form.FILL, Symbols.Msymb)); 135 Harbour.add(new Instr(Form.ELPS, new Ellipse2D.Double(-50,-50,100,100))); 136 Harbour.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.6, 0, 0, new Scheme(Symbols.Msymb), null))); 137 } 138 public static final Symbol HarbourMaster = new Symbol(); 139 static { 140 HarbourMaster.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 141 HarbourMaster.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 142 HarbourMaster.add(new Instr(Form.ELPS, new Ellipse2D.Double(-24,-28,48,56))); 143 HarbourMaster.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, null, null))); 144 } 145 public static final Symbol Hospital = new Symbol(); 146 static { 147 Hospital.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 148 Hospital.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 149 Hospital.add(new Instr(Form.ELPS, new Ellipse2D.Double(-28,-28,56,56))); 150 Path2D.Double p = new Path2D.Double(); p.moveTo(-26,-5); p.lineTo(-5,-5); p.lineTo(-5,-25); p.moveTo(5,-25); p.lineTo(5,-5); p.lineTo(25,-5); 151 p.moveTo(-25,5); p.lineTo(-5,5); p.lineTo(-5,25); p.moveTo(5,25); p.lineTo(5,5); p.lineTo(25,5); 152 Hospital.add(new Instr(Form.PLIN, p)); 153 } 154 public static final Symbol LandingSteps = new Symbol(); 155 static { 156 LandingSteps.add(new Instr(Form.FILL, Symbols.Msymb)); 157 Path2D.Double p = new Path2D.Double(); p.moveTo(-20,-10); p.lineTo(10,20); p.lineTo(20,20); p.lineTo(20,10); 158 p.lineTo(10,10); p.lineTo(10,0); p.lineTo(0,0); p.lineTo(0,-10); p.lineTo(-10,-10); p.lineTo(-10,-20); p.lineTo(-20,-20); p.closePath(); 159 LandingSteps.add(new Instr(Form.PGON, p)); 160 } 161 public static final Symbol Marina = new Symbol(); 162 static { 163 Marina.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 164 Marina.add(new Instr(Form.FILL, Symbols.Msymb)); 165 Marina.add(new Instr(Form.EARC, new Arc2D.Double(-50.0,-50.0,100.0,100.0,215.0,-250.0,Arc2D.OPEN))); 166 Marina.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 0.6, 0, 0, new Scheme(Symbols.Msymb), null))); 167 } 168 public static final Symbol MarinaNF = new Symbol(); 169 static { 170 MarinaNF.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 0.6, 0, 0, new Scheme(Symbols.Msymb), null))); 171 } 172 public static final Symbol Pilot = new Symbol(); 173 static{ 174 Pilot.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 175 Pilot.add(new Instr(Form.FILL, new Color(0xd400d4))); 176 Path2D.Double p = new Path2D.Double(); p.moveTo(-15,0); p.lineTo(0,-56); p.lineTo(15,0); p.lineTo(0,56); p.closePath(); 177 Pilot.add(new Instr(Form.PGON, p)); 178 Pilot.add(new Instr(Form.ELPS, new Ellipse2D.Double(-58,-58,116,116))); 179 } 180 public static final Symbol PortCrane = new Symbol(); 181 static { 182 PortCrane.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 183 PortCrane.add(new Instr(Form.EARC, new Arc2D.Double(-36.0,-36.0,72.0,72.0,70.0,-320.0,Arc2D.OPEN))); 184 PortCrane.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-60))); 185 } 186 public static final Symbol Post = new Symbol(); 187 static { 188 Post.add(new Instr(Form.RSHP, new Ellipse2D.Double(-10,-10,20,20))); 189 } 190 public static final Symbol Rescue = new Symbol(); 191 static{ 192 Rescue.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-50,40,100))); 193 Rescue.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 194 Path2D.Double p = new Path2D.Double(); p.moveTo(-11,0); p.lineTo(0,-43); p.lineTo(11,0); p.lineTo(0,43); p.closePath(); 195 Rescue.add(new Instr(Form.PGON, p)); 196 Rescue.add(new Instr(Form.LINE, new Line2D.Double(-15,0,15,0))); 197 } 198 public static final Symbol SignalStation = new Symbol(); 199 static { 200 SignalStation.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 201 SignalStation.add(new Instr(Form.ELPS, new Ellipse2D.Double(-25,-25,50,50))); 202 SignalStation.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4,-4,8,8))); 203 } 204 public static final Symbol TideGauge = new Symbol(); 205 static { 206 TideGauge.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 207 TideGauge.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 208 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-10,0,-30,0))); 209 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(10,0,30,0))); 210 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(0,-10,0,-80))); 211 TideGauge.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 212 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-15,-25,15,-25))); 213 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-25,-45,25,-45))); 214 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-15,-65,15,-65))); 215 } 27 // CHECKSTYLE.OFF: LineLength 28 public static final Symbol Anchor = new Symbol(); 29 static { 30 Anchor.add(new Instr(Form.BBOX, new Rectangle2D.Double(-60, -60, 120, 120))); 31 Anchor.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 32 Anchor.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -59, 20, 20))); 33 Path2D.Double p = new Path2D.Double(); p.moveTo(23.0, -40.0); p.lineTo(23.0, -30.0); p.lineTo(6.0, -30.0); p.lineTo(7.0, 31.0); p.quadTo(21.0, 29.0, 31.0, 22.0); 34 p.lineTo(27.0, 18.0); p.lineTo(52.0, 0.0); p.lineTo(45.0, 35.0); p.lineTo(37.0, 28.0); p.quadTo(25.0, 39.0, 7.0, 43.0); p.lineTo(6.0, 51.0); 35 p.lineTo(-6.0, 51.0); p.lineTo(-7.0, 43.0); p.quadTo(-25.0, 39.0, -37.0, 28.0); p.lineTo(-45.0, 35.0); p.lineTo(-52.0, 0.0); p.lineTo(-27.0, 18.0); 36 p.lineTo(-31.0, 22.0); p.quadTo(-21.0, 29.0, -7.0, 31.0); p.lineTo(-6.0, -30.0); p.lineTo(-23.0, -30.0); p.lineTo(-23.0, -40.0); p.closePath(); 37 Anchor.add(new Instr(Form.PGON, p)); 38 } 39 40 public static final Symbol Yacht = new Symbol(); 41 static { 42 Yacht.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 43 Path2D.Double p = new Path2D.Double(); p.moveTo(-65.0, 50.0); p.curveTo(-36.0, 97.0, 36.0, 97.0, 65.0, 50.0); p.lineTo(3.0, 50.0); p.lineTo(3.0, 40.0); p.lineTo(55.0, 30.0); 44 p.curveTo(32.0, 4.0, 25.0, -15.0, 26.0, -52.0); p.lineTo(1.5, -40.0); p.lineTo(1.0, -64.0); p.lineTo(-2.0, -64.0); p.lineTo(-4.0, 50.0); p.closePath(); 45 p.moveTo(-50.0, 45.0); p.curveTo(-55.0, 3.0, -37.0, -28.5, -7.0, -46.0); p.curveTo(-28.0, -15.0, -26.0, 11.0, -20.5, 30.0); p.closePath(); 46 Yacht.add(new Instr(Form.PGON, p)); 47 } 48 49 public static final Symbol Anchorage = new Symbol(); 50 static { 51 Anchorage.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.67, 0, 0, new Scheme(Symbols.Msymb), null))); 52 } 53 54 public static final Symbol Bollard = new Symbol(); 55 static { 56 Bollard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 57 Bollard.add(new Instr(Form.FILL, Color.white)); 58 Ellipse2D.Double s = new Ellipse2D.Double(-10, -10, 20, 20); 59 Bollard.add(new Instr(Form.RSHP, s)); 60 Bollard.add(new Instr(Form.FILL, Color.black)); 61 Bollard.add(new Instr(Form.ELPS, s)); 62 } 63 64 public static final Symbol CallPoint1 = new Symbol(); 65 static { 66 CallPoint1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-50, -50, 100, 100))); 67 CallPoint1.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 68 CallPoint1.add(new Instr(Form.FILL, Symbols.Msymb)); 69 CallPoint1.add(new Instr(Form.ELPS, new Ellipse2D.Double(-25, -25, 50, 50))); 70 Path2D.Double p = new Path2D.Double(); p.moveTo(-16.0, -20.0); p.lineTo(0.0, -50.0); p.lineTo(16.0, -20.0); 71 CallPoint1.add(new Instr(Form.PLIN, p)); 72 } 73 74 public static final Symbol CallPoint2 = new Symbol(); 75 static { 76 CallPoint2.add(new Instr(Form.BBOX, new Rectangle2D.Double(-50, -50, 100, 100))); 77 CallPoint2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(CallPoint1, 1.0, 0, 0, null, null))); 78 Path2D.Double p = new Path2D.Double(); p.moveTo(-16.0, 20.0); p.lineTo(0.0, 50.0); p.lineTo(16.0, 20.0); 79 CallPoint2.add(new Instr(Form.PLIN, p)); 80 } 81 82 public static final Symbol ContainerCrane = new Symbol(); 83 static { 84 ContainerCrane.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 85 ContainerCrane.add(new Instr(Form.RSHP, new Rectangle2D.Double(-15, -65, 30, 100))); 86 ContainerCrane.add(new Instr(Form.RECT, new Rectangle2D.Double(-40, -12.5, 80, 25))); 87 } 88 89 public static final Symbol Customs = new Symbol(); 90 static { 91 Customs.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 92 Customs.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 93 Customs.add(new Instr(Form.ELPS, new Ellipse2D.Double(-28, -28, 56, 56))); 94 Customs.add(new Instr(Form.LINE, new Line2D.Double(-25, 5, 25, 5))); 95 Customs.add(new Instr(Form.LINE, new Line2D.Double(-25, -5, 25, -5))); 96 } 97 98 public static final Symbol DeviationDolphin = new Symbol(); 99 static { 100 DeviationDolphin.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 101 Path2D.Double p = new Path2D.Double(); p.moveTo(-30.0, 0.0); p.lineTo(30.0, 0.0); p.moveTo(0.0, 0.0); p.lineTo(0.0, -40.0); 102 p.moveTo(-20.0, 0.0); p.lineTo(-15.0, -32.0); p.lineTo(15.0, -32.0); p.lineTo(20.0, 0.0); 103 DeviationDolphin.add(new Instr(Form.PLIN, p)); 104 } 105 106 public static final Symbol DistanceI = new Symbol(); 107 static { 108 DistanceI.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 109 DistanceI.add(new Instr(Form.ELPS, new Ellipse2D.Double(-11, -11, 22, 22))); 110 } 111 112 public static final Symbol DistanceU = new Symbol(); 113 static { 114 DistanceU.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 115 DistanceU.add(new Instr(Form.FILL, Symbols.Msymb)); 116 DistanceU.add(new Instr(Form.ELPS, new Ellipse2D.Double(-11, -11, 22, 22))); 117 } 118 119 public static final Symbol Dolphin = new Symbol(); 120 static { 121 Dolphin.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 122 Dolphin.add(new Instr(Form.FILL, new Color(0xffd400))); 123 Path2D.Double p = new Path2D.Double(); p.moveTo(3.8, -9.2); p.lineTo(9.2, -3.8); p.lineTo(9.2, 3.8); p.lineTo(3.8, 9.2); 124 p.lineTo(-3.8, 9.2); p.lineTo(-9.2, 3.8); p.lineTo(-9.2, -3.8); p.lineTo(-3.8, -9.2); p.closePath(); 125 Dolphin.add(new Instr(Form.PGON, p)); 126 Dolphin.add(new Instr(Form.FILL, Color.black)); 127 Dolphin.add(new Instr(Form.PLIN, p)); 128 } 129 130 public static final Symbol Explosives = new Symbol(); 131 static { 132 Explosives.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 133 Explosives.add(new Instr(Form.RSHP, new Ellipse2D.Double(-5, 25, 10, 10))); 134 Explosives.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 135 Path2D.Double p = new Path2D.Double(); p.moveTo(-10, 20); p.lineTo(-13, 17); p.lineTo(-13, 8); 136 p.moveTo(0, 10); p.lineTo(0, 0); p.lineTo(-8, -10); 137 p.moveTo(10, 17); p.lineTo(18, -10); p.lineTo(10, -20); 138 Explosives.add(new Instr(Form.PLIN, p)); 139 } 140 141 public static final Symbol Fishing = new Symbol(); 142 static { 143 Fishing.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 144 Fishing.add(new Instr(Form.FILL, Symbols.Msymb)); 145 Fishing.add(new Instr(Form.EARC, new Arc2D.Double(-50, -50, 100, 100, 15, 140, Arc2D.OPEN))); 146 Fishing.add(new Instr(Form.EARC, new Arc2D.Double(-50, -50, 100, 100, -15, -140, Arc2D.OPEN))); 147 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 148 p.moveTo(-24, 3); p.curveTo(12, 24, 30, 15, 48, 0); p.curveTo(30, -15, 12, -24, -24, -3); 149 p.lineTo(-45, -15); p.quadTo(-48, 0, -45, 15); p.closePath(); 150 p.moveTo(25, 0); p.curveTo(25, 6, 34, 6, 34, 0); p.curveTo(34, -6, 25, -6, 25, 0); p.closePath(); 151 Fishing.add(new Instr(Form.PGON, p)); 152 } 153 154 public static final Symbol Harbour = new Symbol(); 155 static { 156 Harbour.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 157 Harbour.add(new Instr(Form.FILL, Symbols.Msymb)); 158 Harbour.add(new Instr(Form.ELPS, new Ellipse2D.Double(-50, -50, 100, 100))); 159 Harbour.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.6, 0, 0, new Scheme(Symbols.Msymb), null))); 160 } 161 162 public static final Symbol HarbourMaster = new Symbol(); 163 static { 164 HarbourMaster.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 165 HarbourMaster.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 166 HarbourMaster.add(new Instr(Form.ELPS, new Ellipse2D.Double(-24, -28, 48, 56))); 167 HarbourMaster.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, null, null))); 168 } 169 170 public static final Symbol Hospital = new Symbol(); 171 static { 172 Hospital.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 173 Hospital.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 174 Hospital.add(new Instr(Form.ELPS, new Ellipse2D.Double(-28, -28, 56, 56))); 175 Path2D.Double p = new Path2D.Double(); p.moveTo(-26, -5); p.lineTo(-5, -5); p.lineTo(-5, -25); p.moveTo(5, -25); p.lineTo(5, -5); p.lineTo(25, -5); 176 p.moveTo(-25, 5); p.lineTo(-5, 5); p.lineTo(-5, 25); p.moveTo(5, 25); p.lineTo(5, 5); p.lineTo(25, 5); 177 Hospital.add(new Instr(Form.PLIN, p)); 178 } 179 180 public static final Symbol LandingSteps = new Symbol(); 181 static { 182 LandingSteps.add(new Instr(Form.FILL, Symbols.Msymb)); 183 Path2D.Double p = new Path2D.Double(); p.moveTo(-20, -10); p.lineTo(10, 20); p.lineTo(20, 20); p.lineTo(20, 10); 184 p.lineTo(10, 10); p.lineTo(10, 0); p.lineTo(0, 0); p.lineTo(0, -10); p.lineTo(-10, -10); p.lineTo(-10, -20); p.lineTo(-20, -20); p.closePath(); 185 LandingSteps.add(new Instr(Form.PGON, p)); 186 } 187 188 public static final Symbol Marina = new Symbol(); 189 static { 190 Marina.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 191 Marina.add(new Instr(Form.FILL, Symbols.Msymb)); 192 Marina.add(new Instr(Form.EARC, new Arc2D.Double(-50.0, -50.0, 100.0, 100.0, 215.0, -250.0, Arc2D.OPEN))); 193 Marina.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 0.6, 0, 0, new Scheme(Symbols.Msymb), null))); 194 } 195 196 public static final Symbol MarinaNF = new Symbol(); 197 static { 198 MarinaNF.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 0.6, 0, 0, new Scheme(Symbols.Msymb), null))); 199 } 200 201 public static final Symbol Pilot = new Symbol(); 202 static { 203 Pilot.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 204 Pilot.add(new Instr(Form.FILL, new Color(0xd400d4))); 205 Path2D.Double p = new Path2D.Double(); p.moveTo(-15, 0); p.lineTo(0, -56); p.lineTo(15, 0); p.lineTo(0, 56); p.closePath(); 206 Pilot.add(new Instr(Form.PGON, p)); 207 Pilot.add(new Instr(Form.ELPS, new Ellipse2D.Double(-58, -58, 116, 116))); 208 } 209 210 public static final Symbol PortCrane = new Symbol(); 211 static { 212 PortCrane.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 213 PortCrane.add(new Instr(Form.EARC, new Arc2D.Double(-36.0, -36.0, 72.0, 72.0, 70.0, -320.0, Arc2D.OPEN))); 214 PortCrane.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -60))); 215 } 216 217 public static final Symbol Post = new Symbol(); 218 static { 219 Post.add(new Instr(Form.RSHP, new Ellipse2D.Double(-10, -10, 20, 20))); 220 } 221 222 public static final Symbol Rescue = new Symbol(); 223 static { 224 Rescue.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -50, 40, 100))); 225 Rescue.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 226 Path2D.Double p = new Path2D.Double(); p.moveTo(-11, 0); p.lineTo(0, -43); p.lineTo(11, 0); p.lineTo(0, 43); p.closePath(); 227 Rescue.add(new Instr(Form.PGON, p)); 228 Rescue.add(new Instr(Form.LINE, new Line2D.Double(-15, 0, 15, 0))); 229 } 230 231 public static final Symbol SignalStation = new Symbol(); 232 static { 233 SignalStation.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 234 SignalStation.add(new Instr(Form.ELPS, new Ellipse2D.Double(-25, -25, 50, 50))); 235 SignalStation.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4, -4, 8, 8))); 236 } 237 238 public static final Symbol TideGauge = new Symbol(); 239 static { 240 TideGauge.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 241 TideGauge.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 242 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-10, 0, -30, 0))); 243 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 30, 0))); 244 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(0, -10, 0, -80))); 245 TideGauge.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 246 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-15, -25, 15, -25))); 247 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-25, -45, 25, -45))); 248 TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-15, -65, 15, -65))); 249 } 216 250 } -
applications/editors/josm/plugins/seachart/src/symbols/Landmarks.java
r32393 r32394 11 11 12 12 import java.awt.BasicStroke; 13 import java.awt.geom.*; 13 import java.awt.geom.Arc2D; 14 import java.awt.geom.Ellipse2D; 15 import java.awt.geom.Line2D; 16 import java.awt.geom.Path2D; 17 import java.awt.geom.Rectangle2D; 14 18 import java.util.EnumMap; 15 19 16 import s57.S57val.*; 17 import symbols.Symbols.*; 18 20 import s57.S57val.CatLMK; 21 import s57.S57val.FncFNC; 22 import symbols.Symbols.Form; 23 import symbols.Symbols.Instr; 24 import symbols.Symbols.Symbol; 19 25 20 26 public class Landmarks { 21 private static final Symbol Base = new Symbol(); 22 static { 23 Base.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 24 Base.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20))); 25 Base.add(new Instr(Form.LINE, new Line2D.Double(-35,0,-10,0))); 26 Base.add(new Instr(Form.LINE, new Line2D.Double(10,0,35,0))); 27 } 28 29 public static final Symbol Chimney = new Symbol(); 30 static { 31 Chimney.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 32 Chimney.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 33 Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(-10.0,-120.0); p.lineTo(10.0,-120.0); p.lineTo(25.0,0.0); 34 p.moveTo(-10.0,-128.0); p.curveTo(-13.0,-147.0,15.0,-159.0,20.0,-148.0); 35 p.moveTo(16.0,-152.3); p.curveTo(58.0,-194.0,98.0,-87.0,16.0,-132.0); 36 p.moveTo(11.0,-128.0); p.curveTo(13.4,-132.0,20.0,-132.0,20.0,-136.0); 37 Chimney.add(new Instr(Form.PLIN, p)); 38 } 39 public static final Symbol Church = new Symbol(); 40 static { 41 Path2D.Double p = new Path2D.Double(); p.moveTo(10.0,-10.0); p.lineTo(37.0,-10.0); p.quadTo(48.0,-10.0,48.0,-21.0); p.lineTo(50.0,-21.0); p.lineTo(50.0,21.0); 42 p.lineTo(48.0,21.0); p.quadTo(48.0,10.0,37.0,10.0); p.lineTo(10.0,10.0); p.lineTo(10.0,37.0); p.quadTo(10.0,48.0,21.0,48.0); p.lineTo(21.0,50.0); 43 p.lineTo(-21.0,50.0); p.lineTo(-21.0,48.0); p.quadTo(-10.0,48.0,-10.0,37.0); p.lineTo(-10.0,10.0); p.lineTo(-37.0,10.0); p.quadTo(-48.0,10.0,-48.0,21.0); 44 p.lineTo(-50.0,21.0); p.lineTo(-50.0,-21.0); p.lineTo(-48.0,-21.0); p.quadTo(-48.0,-10.0,-37.0,-10.0); p.lineTo(-10.0,-10.0); p.lineTo(-10.0,-37.0); 45 p.quadTo(-10.0,-48.0,-21.0,-48.0); p.lineTo(-21.0,-50.0); p.lineTo(21.0,-50.0); p.lineTo(21.0,-48.0); p.quadTo(10.0,-48.0,10.0,-37.0); p.closePath(); 46 Church.add(new Instr(Form.PGON, p)); 47 } 48 public static final Symbol ChurchTower = new Symbol(); 49 static { 50 ChurchTower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 51 ChurchTower.add(new Instr(Form.RECT, new Rectangle2D.Double(-36,-36,72,72))); 52 ChurchTower.add(new Instr(Form.ELPS, new Ellipse2D.Double(-2,-2,4,4))); 53 } 54 public static final Symbol Cross = new Symbol(); 55 static { 56 Cross.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 57 Cross.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 58 Cross.add(new Instr(Form.LINE, new Line2D.Double(0,-10,0,-150))); 59 Cross.add(new Instr(Form.LINE, new Line2D.Double(-30,-115,30,-115))); 60 } 61 public static final Symbol DishAerial = new Symbol(); 62 static { 63 DishAerial.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 64 DishAerial.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL))); 65 Path2D.Double p = new Path2D.Double(); p.moveTo(-7.8,-6.0); p.lineTo(0.0,-62.0); p.lineTo(7.8,-6.0); p.moveTo(18.0,-109.0); p.lineTo(25.0,-113.0); 66 p.moveTo(-9.5,-157.0); p.curveTo(-60.7,-125.5,-16.5,-33.9,44.9,-61.7); p.closePath(); 67 DishAerial.add(new Instr(Form.PLIN, p)); 68 } 69 public static final Symbol Dome = new Symbol(); 70 static { 71 Dome.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 72 Dome.add(new Instr(Form.ELPS, new Ellipse2D.Double(-36,-36,72,72))); 73 Dome.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4,-4,8,8))); 74 } 75 public static final Symbol Flagstaff = new Symbol(); 76 static { 77 Flagstaff.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 78 Flagstaff.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 79 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(0.0,-150.0); p.moveTo(0.0,-140.0); p.lineTo(40.0,-140.0); p.lineTo(40.0,-100.0); p.lineTo(0.0,-100.0); 80 Flagstaff.add(new Instr(Form.PLIN, p)); 81 } 82 public static final Symbol FlareStack = new Symbol(); 83 static { 84 FlareStack.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 85 FlareStack.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 86 Path2D.Double p = new Path2D.Double(); p.moveTo(-7.8,-6.0); p.lineTo(-7.8,-100.0); p.lineTo(7.8,-100.0); p.lineTo(7.8,-6.0); 87 FlareStack.add(new Instr(Form.PLIN, p)); 88 FlareStack.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 89 p = new Path2D.Double(); p.moveTo(21.6,-169.6); p.curveTo(-22.0,-132.4,-27.4,-103.5,3.0,-100.0); p.curveTo(39.0,-118.0,-4.0,-141.0,21.6,-169.6); 90 FlareStack.add(new Instr(Form.PLIN, p)); 91 } 92 public static final Symbol LandTower = new Symbol(); 93 static { 94 LandTower.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 95 LandTower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 96 LandTower.add(new Instr(Form.LINE, new Line2D.Double(-25,0,-15,-120))); 97 LandTower.add(new Instr(Form.LINE, new Line2D.Double(25,0,15,-120))); 98 LandTower.add(new Instr(Form.RECT, new Rectangle2D.Double(-15,-150,30,30))); 99 } 100 public static final Symbol Mast = new Symbol(); 101 static { 102 Mast.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 103 Mast.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL))); 104 Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(0.0,-150.0); p.lineTo(25.0,0.0); 105 Mast.add(new Instr(Form.PLIN, p)); 106 } 107 public static final Symbol Monument = new Symbol(); 108 static { 109 Monument.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 110 Monument.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 111 Monument.add(new Instr(Form.LINE, new Line2D.Double(-25,0,-15,-105))); 112 Monument.add(new Instr(Form.LINE, new Line2D.Double(25,0,15,-105))); 113 Monument.add(new Instr(Form.EARC, new Arc2D.Double(-25.0,-150.0,50.0,50.0,233.0,-285.0,Arc2D.OPEN))); 114 } 115 public static final Symbol Platform = new Symbol(); 116 static { 117 Platform.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 118 Platform.add(new Instr(Form.RECT, new Rectangle2D.Double(-48,-48,96,96))); 119 Platform.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4,-4,8,8))); 120 } 121 public static final Symbol RadioTV = new Symbol(); 122 static { 123 RadioTV.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL))); 124 RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-30.0,-180.0,60.0,60.0,45.0,-90.0,Arc2D.OPEN))); 125 RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-45.0,-195.0,90.0,90.0,45.0,-90.0,Arc2D.OPEN))); 126 RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-30.0,-180.0,60.0,60.0,225.0,-90.0,Arc2D.OPEN))); 127 RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-45.0,-195.0,90.0,90.0,225.0,-90.0,Arc2D.OPEN))); 128 } 129 public static final Symbol Spire = new Symbol(); 130 static { 131 Spire.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 132 Spire.add(new Instr(Form.ELPS, new Ellipse2D.Double(-25,-25,50,50))); 133 Spire.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4,-4,8,8))); 134 } 135 public static final Symbol Minaret = new Symbol(); 136 static { 137 Minaret.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Spire, 1.0, 0, 0, null, null))); 138 Minaret.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 139 Minaret.add(new Instr(Form.LINE, new Line2D.Double(0,-25,0,-50))); 140 Minaret.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 141 Minaret.add(new Instr(Form.EARC, new Arc2D.Double(-40.0,-110.0,80.0,60.0,180.0,180.0,Arc2D.OPEN))); 142 } 143 public static final Symbol Temple = new Symbol(); 144 static { 145 Temple.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 146 Temple.add(new Instr(Form.RECT, new Rectangle2D.Double(-25,-15,50,30))); 147 Temple.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 148 Temple.add(new Instr(Form.LINE, new Line2D.Double(-35,-21,35,21))); 149 Temple.add(new Instr(Form.LINE, new Line2D.Double(-35,21,35,-21))); 150 } 151 public static final Symbol WaterTower = new Symbol(); 152 static { 153 WaterTower.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 154 WaterTower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 155 WaterTower.add(new Instr(Form.LINE, new Line2D.Double(-25,0,-15,-120))); 156 WaterTower.add(new Instr(Form.LINE, new Line2D.Double(25,0,15,-120))); 157 WaterTower.add(new Instr(Form.RECT, new Rectangle2D.Double(-25,-150,50,30))); 158 } 159 public static final Symbol WindMotor = new Symbol(); 160 static { 161 WindMotor.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 162 WindMotor.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 163 WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0,-10,0,-90))); 164 WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0,-90,30,-90))); 165 WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0,-90,-14,-116.6))); 166 WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0,-90,-14.3,-66.7))); 167 } 168 public static final Symbol Windmill = new Symbol(); 169 static { 170 Windmill.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 171 Windmill.add(new Instr(Form.ELPS, new Ellipse2D.Double(-12,-12,24,24))); 172 Windmill.add(new Instr(Form.LINE, new Line2D.Double(-30,-42,30,10))); 173 Windmill.add(new Instr(Form.LINE, new Line2D.Double(-30,10,30,-42))); 174 } 175 public static final Symbol Windsock = new Symbol(); 176 static { 177 Windsock.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 178 Windsock.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 179 Windsock.add(new Instr(Form.LINE, new Line2D.Double(0,-10,0,-100))); 180 Windsock.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 181 Windsock.add(new Instr(Form.LINE, new Line2D.Double(0,-100,0,-150))); 182 Windsock.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 183 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-100.0); p.lineTo(10.0,-100.0); p.lineTo(10.0,-150.0); p.lineTo(0.0,-150.0); 184 p.moveTo(10.0,-150.0); p.lineTo(50.0,-145.0); p.lineTo(120.0,-70.0); p.quadTo(120.0,-55.0,105.0,-55.0); 185 p.lineTo(55,-95); p.lineTo(40,-102); p.lineTo(10,-100); p.moveTo(40,-102); p.lineTo(50,-120); p.moveTo(55,-95); p.lineTo(75,-97); 186 Windsock.add(new Instr(Form.PLIN, p)); 187 } 188 189 public static final EnumMap<CatLMK, Symbol> Shapes = new EnumMap<>(CatLMK.class); 190 static { 191 Shapes.put(CatLMK.LMK_CARN, Beacons.Cairn); Shapes.put(CatLMK.LMK_CHMY, Landmarks.Chimney); 192 Shapes.put(CatLMK.LMK_DISH, Landmarks.DishAerial); Shapes.put(CatLMK.LMK_FLAG, Landmarks.Flagstaff); Shapes.put(CatLMK.LMK_FLAR, Landmarks.FlareStack); 193 Shapes.put(CatLMK.LMK_MAST, Landmarks.Mast); Shapes.put(CatLMK.LMK_WNDS, Landmarks.Windsock); Shapes.put(CatLMK.LMK_MNMT, Landmarks.Monument); 194 Shapes.put(CatLMK.LMK_CLMN, Landmarks.Monument); Shapes.put(CatLMK.LMK_MEML, Landmarks.Monument); Shapes.put(CatLMK.LMK_OBLK, Landmarks.Monument); 195 Shapes.put(CatLMK.LMK_STAT, Landmarks.Monument); Shapes.put(CatLMK.LMK_CROS, Landmarks.Cross); Shapes.put(CatLMK.LMK_DOME, Landmarks.Dome); 196 Shapes.put(CatLMK.LMK_RADR, Landmarks.Mast); Shapes.put(CatLMK.LMK_TOWR, Landmarks.LandTower); Shapes.put(CatLMK.LMK_WNDM, Landmarks.Windmill); 197 Shapes.put(CatLMK.LMK_WNDG, Landmarks.WindMotor); Shapes.put(CatLMK.LMK_SPIR, Landmarks.Spire); Shapes.put(CatLMK.LMK_BLDR, Beacons.Cairn); 198 } 199 200 public static final EnumMap<FncFNC, Symbol> Funcs = new EnumMap<>(FncFNC.class); 201 static { 202 Funcs.put(FncFNC.FNC_CHCH, Landmarks.Church); Funcs.put(FncFNC.FNC_CHPL, Landmarks.Church); Funcs.put(FncFNC.FNC_TMPL, Landmarks.Temple); 203 Funcs.put(FncFNC.FNC_PGDA, Landmarks.Temple); Funcs.put(FncFNC.FNC_SHSH, Landmarks.Temple); Funcs.put(FncFNC.FNC_BTMP, Landmarks.Temple); 204 Funcs.put(FncFNC.FNC_MOSQ, Landmarks.Minaret); Funcs.put(FncFNC.FNC_MRBT, Landmarks.Spire); Funcs.put(FncFNC.FNC_COMM, Landmarks.RadioTV); 205 Funcs.put(FncFNC.FNC_TV, Landmarks.RadioTV); Funcs.put(FncFNC.FNC_RADO, Landmarks.RadioTV); Funcs.put(FncFNC.FNC_RADR, Landmarks.RadioTV); 206 Funcs.put(FncFNC.FNC_LGHT, Beacons.LightMajor); Funcs.put(FncFNC.FNC_MCWV, Landmarks.RadioTV); Funcs.put(FncFNC.FNC_HBRM, Harbours.HarbourMaster); 207 Funcs.put(FncFNC.FNC_CSTM, Harbours.Customs); Funcs.put(FncFNC.FNC_HLTH, Harbours.Hospital); Funcs.put(FncFNC.FNC_HOSP, Harbours.Hospital); 208 } 27 // CHECKSTYLE.OFF: LineLength 28 private static final Symbol Base = new Symbol(); 29 static { 30 Base.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 31 Base.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10, -10, 20, 20))); 32 Base.add(new Instr(Form.LINE, new Line2D.Double(-35, 0, -10, 0))); 33 Base.add(new Instr(Form.LINE, new Line2D.Double(10, 0, 35, 0))); 34 } 35 36 public static final Symbol Chimney = new Symbol(); 37 static { 38 Chimney.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 39 Chimney.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 40 Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0, 0.0); p.lineTo(-10.0, -120.0); p.lineTo(10.0, -120.0); p.lineTo(25.0, 0.0); 41 p.moveTo(-10.0, -128.0); p.curveTo(-13.0, -147.0, 15.0, -159.0, 20.0, -148.0); 42 p.moveTo(16.0, -152.3); p.curveTo(58.0, -194.0, 98.0, -87.0, 16.0, -132.0); 43 p.moveTo(11.0, -128.0); p.curveTo(13.4, -132.0, 20.0, -132.0, 20.0, -136.0); 44 Chimney.add(new Instr(Form.PLIN, p)); 45 } 46 47 public static final Symbol Church = new Symbol(); 48 static { 49 Path2D.Double p = new Path2D.Double(); p.moveTo(10.0, -10.0); p.lineTo(37.0, -10.0); p.quadTo(48.0, -10.0, 48.0, -21.0); p.lineTo(50.0, -21.0); p.lineTo(50.0, 21.0); 50 p.lineTo(48.0, 21.0); p.quadTo(48.0, 10.0, 37.0, 10.0); p.lineTo(10.0, 10.0); p.lineTo(10.0, 37.0); p.quadTo(10.0, 48.0, 21.0, 48.0); p.lineTo(21.0, 50.0); 51 p.lineTo(-21.0, 50.0); p.lineTo(-21.0, 48.0); p.quadTo(-10.0, 48.0, -10.0, 37.0); p.lineTo(-10.0, 10.0); p.lineTo(-37.0, 10.0); p.quadTo(-48.0, 10.0, -48.0, 21.0); 52 p.lineTo(-50.0, 21.0); p.lineTo(-50.0, -21.0); p.lineTo(-48.0, -21.0); p.quadTo(-48.0, -10.0, -37.0, -10.0); p.lineTo(-10.0, -10.0); p.lineTo(-10.0, -37.0); 53 p.quadTo(-10.0, -48.0, -21.0, -48.0); p.lineTo(-21.0, -50.0); p.lineTo(21.0, -50.0); p.lineTo(21.0, -48.0); p.quadTo(10.0, -48.0, 10.0, -37.0); p.closePath(); 54 Church.add(new Instr(Form.PGON, p)); 55 } 56 57 public static final Symbol ChurchTower = new Symbol(); 58 static { 59 ChurchTower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 60 ChurchTower.add(new Instr(Form.RECT, new Rectangle2D.Double(-36, -36, 72, 72))); 61 ChurchTower.add(new Instr(Form.ELPS, new Ellipse2D.Double(-2, -2, 4, 4))); 62 } 63 64 public static final Symbol Cross = new Symbol(); 65 static { 66 Cross.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 67 Cross.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 68 Cross.add(new Instr(Form.LINE, new Line2D.Double(0, -10, 0, -150))); 69 Cross.add(new Instr(Form.LINE, new Line2D.Double(-30, -115, 30, -115))); 70 } 71 72 public static final Symbol DishAerial = new Symbol(); 73 static { 74 DishAerial.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 75 DishAerial.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL))); 76 Path2D.Double p = new Path2D.Double(); p.moveTo(-7.8, -6.0); p.lineTo(0.0, -62.0); p.lineTo(7.8, -6.0); p.moveTo(18.0, -109.0); p.lineTo(25.0, -113.0); 77 p.moveTo(-9.5, -157.0); p.curveTo(-60.7, -125.5, -16.5, -33.9, 44.9, -61.7); p.closePath(); 78 DishAerial.add(new Instr(Form.PLIN, p)); 79 } 80 81 public static final Symbol Dome = new Symbol(); 82 static { 83 Dome.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 84 Dome.add(new Instr(Form.ELPS, new Ellipse2D.Double(-36, -36, 72, 72))); 85 Dome.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4, -4, 8, 8))); 86 } 87 88 public static final Symbol Flagstaff = new Symbol(); 89 static { 90 Flagstaff.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 91 Flagstaff.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 92 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0, -10.0); p.lineTo(0.0, -150.0); p.moveTo(0.0, -140.0); p.lineTo(40.0, -140.0); p.lineTo(40.0, -100.0); p.lineTo(0.0, -100.0); 93 Flagstaff.add(new Instr(Form.PLIN, p)); 94 } 95 96 public static final Symbol FlareStack = new Symbol(); 97 static { 98 FlareStack.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 99 FlareStack.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 100 Path2D.Double p = new Path2D.Double(); p.moveTo(-7.8, -6.0); p.lineTo(-7.8, -100.0); p.lineTo(7.8, -100.0); p.lineTo(7.8, -6.0); 101 FlareStack.add(new Instr(Form.PLIN, p)); 102 FlareStack.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 103 p = new Path2D.Double(); p.moveTo(21.6, -169.6); p.curveTo(-22.0, -132.4, -27.4, -103.5, 3.0, -100.0); p.curveTo(39.0, -118.0, -4.0, -141.0, 21.6, -169.6); 104 FlareStack.add(new Instr(Form.PLIN, p)); 105 } 106 107 public static final Symbol LandTower = new Symbol(); 108 static { 109 LandTower.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 110 LandTower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 111 LandTower.add(new Instr(Form.LINE, new Line2D.Double(-25, 0, -15, -120))); 112 LandTower.add(new Instr(Form.LINE, new Line2D.Double(25, 0, 15, -120))); 113 LandTower.add(new Instr(Form.RECT, new Rectangle2D.Double(-15, -150, 30, 30))); 114 } 115 116 public static final Symbol Mast = new Symbol(); 117 static { 118 Mast.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 119 Mast.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL))); 120 Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0, 0.0); p.lineTo(0.0, -150.0); p.lineTo(25.0, 0.0); 121 Mast.add(new Instr(Form.PLIN, p)); 122 } 123 124 public static final Symbol Monument = new Symbol(); 125 static { 126 Monument.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 127 Monument.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 128 Monument.add(new Instr(Form.LINE, new Line2D.Double(-25, 0, -15, -105))); 129 Monument.add(new Instr(Form.LINE, new Line2D.Double(25, 0, 15, -105))); 130 Monument.add(new Instr(Form.EARC, new Arc2D.Double(-25.0, -150.0, 50.0, 50.0, 233.0, -285.0, Arc2D.OPEN))); 131 } 132 133 public static final Symbol Platform = new Symbol(); 134 static { 135 Platform.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 136 Platform.add(new Instr(Form.RECT, new Rectangle2D.Double(-48, -48, 96, 96))); 137 Platform.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4, -4, 8, 8))); 138 } 139 140 public static final Symbol RadioTV = new Symbol(); 141 static { 142 RadioTV.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL))); 143 RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-30.0, -180.0, 60.0, 60.0, 45.0, -90.0, Arc2D.OPEN))); 144 RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-45.0, -195.0, 90.0, 90.0, 45.0, -90.0, Arc2D.OPEN))); 145 RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-30.0, -180.0, 60.0, 60.0, 225.0, -90.0, Arc2D.OPEN))); 146 RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-45.0, -195.0, 90.0, 90.0, 225.0, -90.0, Arc2D.OPEN))); 147 } 148 149 public static final Symbol Spire = new Symbol(); 150 static { 151 Spire.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 152 Spire.add(new Instr(Form.ELPS, new Ellipse2D.Double(-25, -25, 50, 50))); 153 Spire.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4, -4, 8, 8))); 154 } 155 156 public static final Symbol Minaret = new Symbol(); 157 static { 158 Minaret.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Spire, 1.0, 0, 0, null, null))); 159 Minaret.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 160 Minaret.add(new Instr(Form.LINE, new Line2D.Double(0, -25, 0, -50))); 161 Minaret.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 162 Minaret.add(new Instr(Form.EARC, new Arc2D.Double(-40.0, -110.0, 80.0, 60.0, 180.0, 180.0, Arc2D.OPEN))); 163 } 164 165 public static final Symbol Temple = new Symbol(); 166 static { 167 Temple.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 168 Temple.add(new Instr(Form.RECT, new Rectangle2D.Double(-25, -15, 50, 30))); 169 Temple.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 170 Temple.add(new Instr(Form.LINE, new Line2D.Double(-35, -21, 35, 21))); 171 Temple.add(new Instr(Form.LINE, new Line2D.Double(-35, 21, 35, -21))); 172 } 173 174 public static final Symbol WaterTower = new Symbol(); 175 static { 176 WaterTower.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 177 WaterTower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 178 WaterTower.add(new Instr(Form.LINE, new Line2D.Double(-25, 0, -15, -120))); 179 WaterTower.add(new Instr(Form.LINE, new Line2D.Double(25, 0, 15, -120))); 180 WaterTower.add(new Instr(Form.RECT, new Rectangle2D.Double(-25, -150, 50, 30))); 181 } 182 183 public static final Symbol WindMotor = new Symbol(); 184 static { 185 WindMotor.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 186 WindMotor.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 187 WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0, -10, 0, -90))); 188 WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0, -90, 30, -90))); 189 WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0, -90, -14, -116.6))); 190 WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0, -90, -14.3, -66.7))); 191 } 192 193 public static final Symbol Windmill = new Symbol(); 194 static { 195 Windmill.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 196 Windmill.add(new Instr(Form.ELPS, new Ellipse2D.Double(-12, -12, 24, 24))); 197 Windmill.add(new Instr(Form.LINE, new Line2D.Double(-30, -42, 30, 10))); 198 Windmill.add(new Instr(Form.LINE, new Line2D.Double(-30, 10, 30, -42))); 199 } 200 201 public static final Symbol Windsock = new Symbol(); 202 static { 203 Windsock.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null))); 204 Windsock.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 205 Windsock.add(new Instr(Form.LINE, new Line2D.Double(0, -10, 0, -100))); 206 Windsock.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 207 Windsock.add(new Instr(Form.LINE, new Line2D.Double(0, -100, 0, -150))); 208 Windsock.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 209 Path2D.Double p = new Path2D.Double(); p.moveTo(0.0, -100.0); p.lineTo(10.0, -100.0); p.lineTo(10.0, -150.0); p.lineTo(0.0, -150.0); 210 p.moveTo(10.0, -150.0); p.lineTo(50.0, -145.0); p.lineTo(120.0, -70.0); p.quadTo(120.0, -55.0, 105.0, -55.0); 211 p.lineTo(55, -95); p.lineTo(40, -102); p.lineTo(10, -100); p.moveTo(40, -102); p.lineTo(50, -120); p.moveTo(55, -95); p.lineTo(75, -97); 212 Windsock.add(new Instr(Form.PLIN, p)); 213 } 214 215 public static final EnumMap<CatLMK, Symbol> Shapes = new EnumMap<>(CatLMK.class); 216 static { 217 Shapes.put(CatLMK.LMK_CARN, Beacons.Cairn); Shapes.put(CatLMK.LMK_CHMY, Landmarks.Chimney); 218 Shapes.put(CatLMK.LMK_DISH, Landmarks.DishAerial); Shapes.put(CatLMK.LMK_FLAG, Landmarks.Flagstaff); Shapes.put(CatLMK.LMK_FLAR, Landmarks.FlareStack); 219 Shapes.put(CatLMK.LMK_MAST, Landmarks.Mast); Shapes.put(CatLMK.LMK_WNDS, Landmarks.Windsock); Shapes.put(CatLMK.LMK_MNMT, Landmarks.Monument); 220 Shapes.put(CatLMK.LMK_CLMN, Landmarks.Monument); Shapes.put(CatLMK.LMK_MEML, Landmarks.Monument); Shapes.put(CatLMK.LMK_OBLK, Landmarks.Monument); 221 Shapes.put(CatLMK.LMK_STAT, Landmarks.Monument); Shapes.put(CatLMK.LMK_CROS, Landmarks.Cross); Shapes.put(CatLMK.LMK_DOME, Landmarks.Dome); 222 Shapes.put(CatLMK.LMK_RADR, Landmarks.Mast); Shapes.put(CatLMK.LMK_TOWR, Landmarks.LandTower); Shapes.put(CatLMK.LMK_WNDM, Landmarks.Windmill); 223 Shapes.put(CatLMK.LMK_WNDG, Landmarks.WindMotor); Shapes.put(CatLMK.LMK_SPIR, Landmarks.Spire); Shapes.put(CatLMK.LMK_BLDR, Beacons.Cairn); 224 } 225 226 public static final EnumMap<FncFNC, Symbol> Funcs = new EnumMap<>(FncFNC.class); 227 static { 228 Funcs.put(FncFNC.FNC_CHCH, Landmarks.Church); Funcs.put(FncFNC.FNC_CHPL, Landmarks.Church); Funcs.put(FncFNC.FNC_TMPL, Landmarks.Temple); 229 Funcs.put(FncFNC.FNC_PGDA, Landmarks.Temple); Funcs.put(FncFNC.FNC_SHSH, Landmarks.Temple); Funcs.put(FncFNC.FNC_BTMP, Landmarks.Temple); 230 Funcs.put(FncFNC.FNC_MOSQ, Landmarks.Minaret); Funcs.put(FncFNC.FNC_MRBT, Landmarks.Spire); Funcs.put(FncFNC.FNC_COMM, Landmarks.RadioTV); 231 Funcs.put(FncFNC.FNC_TV, Landmarks.RadioTV); Funcs.put(FncFNC.FNC_RADO, Landmarks.RadioTV); Funcs.put(FncFNC.FNC_RADR, Landmarks.RadioTV); 232 Funcs.put(FncFNC.FNC_LGHT, Beacons.LightMajor); Funcs.put(FncFNC.FNC_MCWV, Landmarks.RadioTV); Funcs.put(FncFNC.FNC_HBRM, Harbours.HarbourMaster); 233 Funcs.put(FncFNC.FNC_CSTM, Harbours.Customs); Funcs.put(FncFNC.FNC_HLTH, Harbours.Hospital); Funcs.put(FncFNC.FNC_HOSP, Harbours.Hospital); 234 } 209 235 } -
applications/editors/josm/plugins/seachart/src/symbols/Notices.java
r32393 r32394 13 13 import java.awt.Color; 14 14 import java.awt.Font; 15 import java.awt.geom.*; 15 import java.awt.geom.AffineTransform; 16 import java.awt.geom.Arc2D; 17 import java.awt.geom.Ellipse2D; 18 import java.awt.geom.GeneralPath; 19 import java.awt.geom.Line2D; 20 import java.awt.geom.Path2D; 21 import java.awt.geom.Rectangle2D; 22 import java.awt.geom.RoundRectangle2D; 16 23 import java.util.ArrayList; 17 24 import java.util.EnumMap; 18 25 19 import s57.S57val.*; 20 import symbols.Symbols.*; 26 import s57.S57val.BnkWTW; 27 import s57.S57val.CatNMK; 28 import s57.S57val.MarSYS; 29 import symbols.Symbols.Caption; 30 import symbols.Symbols.Delta; 31 import symbols.Symbols.Form; 32 import symbols.Symbols.Handle; 33 import symbols.Symbols.Instr; 34 import symbols.Symbols.Scheme; 35 import symbols.Symbols.Symbol; 21 36 22 37 public class Notices { 23 private static final Symbol Bollard = new Symbol(); 24 static { 25 Path2D.Double p = new Path2D.Double(); p.moveTo(20,21); p.lineTo(20,16.5); p.lineTo(11.6,16.5); p.quadTo(9.1,9.6,8.3,2.0); p.lineTo(-8.0,-0.3); p.quadTo(-8.6,9.0,-11.3,16.5); 26 p.lineTo(-23.5,16.5); p.lineTo(-23.5,21.0); p.closePath(); p.moveTo(23.8,3.0); p.lineTo(-10.7,-1.8); p.curveTo(-13.1,-2.2,-12.8,-6.0,-10.2,-5.8); p.lineTo(23.8,-1.1); 27 p.closePath(); p.moveTo(8.4,-4.3); p.curveTo(9.0,-9.3,9.0,-11.4,11.2,-13.0); p.curveTo(12.8,-15.0,12.8,-16.7,11.0,-18.6); p.curveTo(4.0,-22.2,-4.0,-22.2,-11.0,-18.6); 28 p.curveTo(-12.8,-16.7,-12.8,-15.0,-11.2,-13.0); p.curveTo(-9.0,-11.3,-8.7,-9.5,-8.4,-6.5); p.closePath(); 29 Bollard.add(new Instr(Form.PGON, p)); 30 } 31 private static final Symbol Motor = new Symbol(); 32 static { 33 Path2D.Double p = new Path2D.Double(); p.moveTo(-5.0,4.3); p.curveTo(-3.7,5.5,-1.8,5.7,-0.2,4.9); p.curveTo(1.3,8.7,4.6,10.9,8.4,10.9); p.curveTo(14.0,10.9,17.5,6.3,17.5,2.0); 34 p.curveTo(17.5,-0.7,16.1,-3.2,14.5,-3.2); p.curveTo(12.5,-3.2,11.7,0.8,2.5,1.1); p.curveTo(2.5,-1.2,1.6,-2.2,0.6,-3.0); p.curveTo(3.2,-5.6,4.0,-12.6,-1.0,-16.1); 35 p.curveTo(-5.3,-19.2,-11.6,-18.3,-13.7,-13.7); p.curveTo(-14.3,-12.2,-14.0,-11.2,-12.5,-10.6); p.curveTo(-8.6,-9.6,-5.3,-6.0,-4.0,-3.4); p.curveTo(-5.4,-2.6,-6.2,-2.0,-6.2,0.2); 36 p.curveTo(-12.8,-1.0,-17.5,3.7,-17.5,9.3); p.curveTo(-17.5,14.7,-12.6,18.8,-8.0,17.6); p.curveTo(-7.0,17.2,-6.6,16.2,-7.2,14.6); p.curveTo(-7.7,12.4,-7.0,7.7,-5.0,4.3); p.closePath(); 37 Motor.add(new Instr(Form.PGON, p)); 38 } 39 private static final Symbol Rowboat = new Symbol(); 40 static { 41 Path2D.Double p = new Path2D.Double(); p.moveTo(-17.5,-2.0); p.lineTo(17.5,-2.0); p.lineTo(15.0,6.0); p.lineTo(-11.0,6.0); p.closePath(); 42 Rowboat.add(new Instr(Form.PGON, p)); 43 Rowboat.add(new Instr(Form.RSHP, new Ellipse2D.Double(-6,-17.5,6,6))); 44 Rowboat.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 45 Rowboat.add(new Instr(Form.LINE, new Line2D.Double(-5.5,-9,-8,0))); 46 Rowboat.add(new Instr(Form.LINE, new Line2D.Double(-5.0,10.0,-7.5,14.0))); 47 Rowboat.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 48 Rowboat.add(new Instr(Form.LINE, new Line2D.Double(-5.5,-9,7,-6.5))); 49 Rowboat.add(new Instr(Form.LINE, new Line2D.Double(7.3,-7.8,-5.0,10.0))); 50 } 51 private static final Symbol Sailboard = new Symbol(); 52 static { 53 Path2D.Double p = new Path2D.Double(); p.moveTo(-6.0,19.0); p.quadTo(-4.0,-5,1.5,-20.0); p.quadTo(14,-7,15.5,6.5); p.quadTo(7,17,-6.0,19.0); p.closePath(); 54 Sailboard.add(new Instr(Form.PGON, p)); 55 Sailboard.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 56 Sailboard.add(new Instr(Form.LINE, new Line2D.Double(-2,20,-10,20))); 57 Sailboard.add(new Instr(Form.LINE, new Line2D.Double(-13,2.5,-3,2.5))); 58 Sailboard.add(new Instr(Form.RSHP, new Ellipse2D.Double(-15,-4,5,5))); 59 Sailboard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 60 p = new Path2D.Double(); p.moveTo(-13,2.5); p.lineTo(-12,6.0); p.lineTo(-12,9.5); 61 Sailboard.add(new Instr(Form.PLIN, p)); 62 Sailboard.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 63 p = new Path2D.Double(); p.moveTo(-12,9.5); p.lineTo(-7.5,13.0); p.lineTo(-6.0,19.0); 64 Sailboard.add(new Instr(Form.PLIN, p)); 65 } 66 private static final Symbol Sailboat = new Symbol(); 67 static { 68 Path2D.Double p = new Path2D.Double(); p.moveTo(3.75,-20.5); p.lineTo(3.75,8.5); p.lineTo(-19.5,8.5); p.closePath(); 69 Sailboat.add(new Instr(Form.PGON, p)); 70 p = new Path2D.Double(); p.moveTo(-19.5,12.0); p.lineTo(19.5,12.0); p.lineTo(13.0,20.5); p.lineTo(-16.0,20.5); p.closePath(); 71 Sailboat.add(new Instr(Form.PGON, p)); 72 } 73 private static final Symbol Slipway = new Symbol(); 74 static { 75 Path2D.Double p = new Path2D.Double(); p.moveTo(-17,-5.5); p.lineTo(-13.5,0); p.lineTo(4,-1.5); p.quadTo(18,-5,20,-13.5); p.closePath(); 76 p.moveTo(-14,7); p.lineTo(-14,11); p.lineTo(20,11); p.lineTo(20,2); p.closePath(); 77 Slipway.add(new Instr(Form.PGON, p)); 78 Slipway.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 79 Slipway.add(new Instr(Form.LINE, new Line2D.Double(-14,3,20,-2.5))); 80 Slipway.add(new Instr(Form.STRK, new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 81 Slipway.add(new Instr(Form.ELPS, new Ellipse2D.Double(1,1.5,3,3))); 82 p = new Path2D.Double(); p.moveTo(-21,8.5); p.curveTo(-17.5, 5, -17.5, 12, -13, 7.2); 83 Slipway.add(new Instr(Form.PLIN, p)); 84 } 85 private static final Symbol Speedboat = new Symbol(); 86 static { 87 Speedboat.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 88 Speedboat.add(new Instr(Form.LINE, new Line2D.Double(-21,0,-17,-1))); 89 Path2D.Double p = new Path2D.Double(); p.moveTo(-17.5,8.5); p.curveTo(-10.5,13,-2.5,2,4,6); p.curveTo(12,2,11.5,9.5,20,6); 90 Speedboat.add(new Instr(Form.PLIN, p)); 91 p = new Path2D.Double(); p.moveTo(-18.5,1.5); p.lineTo(-16,6); p.curveTo(-9, 9.0, -3.5, -2.0, 4.5, 3.5); p.lineTo(14.5,0); p.quadTo(19, -3, 19.5, -9); 92 p.lineTo(9.5,-6); p.lineTo(6.5,-8); p.lineTo(2.5,-4); p.closePath(); 93 Speedboat.add(new Instr(Form.PGON, p)); 94 Speedboat.add(new Instr(Form.RSHP, new Ellipse2D.Double(-1.5,-13,5,5))); 95 Speedboat.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 96 Speedboat.add(new Instr(Form.LINE, new Line2D.Double(-2,-7,-5,0))); 97 Speedboat.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 98 Speedboat.add(new Instr(Form.LINE, new Line2D.Double(-2,-7,5,-5))); 99 } 100 private static final Symbol Turn = new Symbol(); 101 static { 102 Turn.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 103 Turn.add(new Instr(Form.EARC, new Arc2D.Double(-9.0,-9.0,18.0,18.0,270.0,230.0,Arc2D.OPEN))); 104 Turn.add(new Instr(Form.EARC, new Arc2D.Double(-20.0,-20.0,40.0,40.0,315.0,-280.0,Arc2D.OPEN))); 105 Path2D.Double p = new Path2D.Double(); p.moveTo(21.8,-7.0); p.lineTo(18.8,-18.2); p.lineTo(10.5,-10.0); p.closePath(); 106 p.moveTo(-12.9,0.7); p.lineTo(-1.7,-2.3); p.lineTo(-9.9,-10.5); p.closePath(); 107 Turn.add(new Instr(Form.PGON, p)); 108 } 109 private static final Symbol Waterbike = new Symbol(); 110 static { 111 Path2D.Double p = new Path2D.Double(); p.moveTo(-17.5,13); p.curveTo(-10.5,17.5,-2.5,6.5,4,10.5); p.curveTo(12,6.5,11.5,14,20,10.5); 112 Waterbike.add(new Instr(Form.PLIN, p)); 113 p = new Path2D.Double(); p.moveTo(-16.5,9.5); p.lineTo(-16,10.5); p.curveTo(-9, 13.5, -3.5, 2.5, 4.5, 8); p.quadTo(15, 4, 19.5, -4); p.closePath(); 114 p.moveTo(19.5,-5); p.lineTo(1, -5); p.lineTo(-4.5, -10); p.lineTo(-5.5, -10); p.lineTo(2, -2); p.lineTo(-15, 4); p.lineTo(-16, 8); p.closePath(); 115 Waterbike.add(new Instr(Form.PGON, p)); 116 Waterbike.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 117 p = new Path2D.Double(); p.moveTo(-7,1); p.lineTo(-7.5,-1.5); p.lineTo(-12.5,-3.5); p.lineTo(-11.5,-10.5); 118 Waterbike.add(new Instr(Form.PLIN, p)); 119 Waterbike.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 120 Waterbike.add(new Instr(Form.LINE, new Line2D.Double(-11.5,-10.5,-3,-8.5))); 121 Waterbike.add(new Instr(Form.RSHP, new Ellipse2D.Double(-11.5,-18,5,5))); 122 } 123 private static final Symbol Waterski = new Symbol(); 124 static { 125 Waterski.add(new Instr(Form.RSHP, new Ellipse2D.Double(12,-18,6,6))); 126 Waterski.add(new Instr(Form.STRK, new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 127 Waterski.add(new Instr(Form.LINE, new Line2D.Double(-18,-6,0,-6))); 128 Waterski.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 129 Path2D.Double p = new Path2D.Double(); p.moveTo(6.5,17.5); p.lineTo(-13,14.5); p.curveTo(-15,14.25,-16.0,13.6,-17.5,12.0); 130 Waterski.add(new Instr(Form.PLIN, p)); 131 Waterski.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 132 p = new Path2D.Double(); p.moveTo(-1.5,-4.0); p.lineTo(14,-7.5); p.lineTo(9.5,3.5); p.lineTo(2.0,6.0); p.lineTo(-4.4,15.8); 133 Waterski.add(new Instr(Form.PLIN, p)); 134 } 135 private static final Symbol NoticeA = new Symbol(); 136 static { 137 NoticeA.add(new Instr(Form.FILL, new Color(0xe80000))); 138 NoticeA.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 139 NoticeA.add(new Instr(Form.FILL, Color.white)); 140 NoticeA.add(new Instr(Form.RSHP, new Rectangle2D.Double(-21,-21,42,42))); 141 NoticeA.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 142 NoticeA.add(new Instr(Form.FILL, new Color(0xe80000))); 143 NoticeA.add(new Instr(Form.LINE, new Line2D.Double(-25,-25,25,25))); 144 NoticeA.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 145 NoticeA.add(new Instr(Form.FILL, Color.black)); 146 NoticeA.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 147 } 148 private static final Symbol NoticeB = new Symbol(); 149 static { 150 NoticeB.add(new Instr(Form.FILL, new Color(0xe80000))); 151 NoticeB.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 152 NoticeB.add(new Instr(Form.FILL, Color.white)); 153 NoticeB.add(new Instr(Form.RSHP, new Rectangle2D.Double(-21,-21,42,42))); 154 NoticeB.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 155 NoticeB.add(new Instr(Form.FILL, Color.black)); 156 NoticeB.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 157 } 158 private static final Symbol NoticeE = new Symbol(); 159 static { 160 NoticeE.add(new Instr(Form.FILL, new Color(0x0000a0))); 161 NoticeE.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 162 NoticeE.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 163 NoticeE.add(new Instr(Form.FILL, Color.black)); 164 NoticeE.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 165 NoticeE.add(new Instr(Form.FILL, Color.white)); 166 } 167 public static final Symbol Notice = new Symbol(); 168 static { 169 Notice.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 170 Notice.add(new Instr(Form.FILL, new Color(0xe80000))); 171 Notice.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 172 Notice.add(new Instr(Form.FILL, new Color(0x0000a0))); 173 Notice.add(new Instr(Form.RSHP, new Rectangle2D.Double(-21,-21,42,42))); 174 Notice.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 175 Notice.add(new Instr(Form.FILL, Color.black)); 176 Notice.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 177 } 178 public static final Symbol NoticeA1 = new Symbol(); 179 static { 180 NoticeA1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 181 NoticeA1.add(new Instr(Form.FILL, new Color(0xe80000))); 182 NoticeA1.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 183 NoticeA1.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 184 NoticeA1.add(new Instr(Form.FILL, Color.white)); 185 NoticeA1.add(new Instr(Form.RSHP, new Rectangle2D.Double(-30,-10,60,20))); 186 NoticeA1.add(new Instr(Form.FILL, Color.black)); 187 NoticeA1.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 188 } 189 public static final Symbol NoticeA1a = new Symbol(); 190 static { 191 NoticeA1a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 192 NoticeA1a.add(new Instr(Form.FILL, new Color(0xe80000))); 193 NoticeA1a.add(new Instr(Form.RSHP, new Ellipse2D.Double(-30,-30,60,60))); 194 NoticeA1a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 195 NoticeA1a.add(new Instr(Form.FILL, Color.white)); 196 NoticeA1a.add(new Instr(Form.RSHP, new Rectangle2D.Double(-29,-10,58,20))); 197 NoticeA1a.add(new Instr(Form.FILL, Color.black)); 198 NoticeA1a.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30,-30,60,60))); 199 } 200 public static final Symbol NoticeA2 = new Symbol(); 201 static { 202 NoticeA2.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 203 NoticeA2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 204 NoticeA2.add(new Instr(Form.FILL, Color.black)); 205 Path2D.Double p = new Path2D.Double(); p.moveTo(-10,23); p.lineTo(-10,0); p.lineTo(-6,0); p.lineTo(-12.5,-8); p.lineTo(-19,0); p.lineTo(-15,0); p.lineTo(-15,23); 206 p.closePath(); p.moveTo(10,8); p.lineTo(10,-15); p.lineTo(6,-15); p.lineTo(12.5,-23); p.lineTo(19,-15); p.lineTo(15,-15); p.lineTo(15,8); p.closePath(); 207 NoticeA2.add(new Instr(Form.PGON, p)); 208 } 209 public static final Symbol NoticeA3 = new Symbol(); 210 static { 211 NoticeA3.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 212 NoticeA3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA2, 1.0, 0, 0, null, null))); 213 Path2D.Double p = new Path2D.Double(); p.moveTo(-10,12); p.lineTo(-6,12); p.lineTo(-12.5,4); p.lineTo(-19,12); 214 p.closePath(); p.moveTo(10,-3); p.lineTo(6,-3); p.lineTo(12.5,-11); p.lineTo(19,-3); p.closePath(); 215 NoticeA3.add(new Instr(Form.PGON, p)); 216 } 217 public static final Symbol NoticeA4 = new Symbol(); 218 static { 219 NoticeA4.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 220 NoticeA4.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 221 NoticeA4.add(new Instr(Form.FILL, Color.black)); 222 Path2D.Double p = new Path2D.Double(); p.moveTo(-10,-15); p.lineTo(-10,8); p.lineTo(-6,8); p.lineTo(-12.5,16); p.lineTo(-19,8); p.lineTo(-15,8); p.lineTo(-15,-15); 223 p.closePath(); p.moveTo(10,15); p.lineTo(10,-8); p.lineTo(6,-8); p.lineTo(12.5,-16); p.lineTo(19,-8); p.lineTo(15,-8); p.lineTo(15,15); p.closePath(); 224 NoticeA4.add(new Instr(Form.PGON, p)); 225 } 226 public static final Symbol NoticeA4_1 = new Symbol(); 227 static { 228 NoticeA4_1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 229 NoticeA4_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA4, 1.0, 0, 0, null, null))); 230 Path2D.Double p = new Path2D.Double(); p.moveTo(-10,-4); p.lineTo(-6,-4); p.lineTo(-12.5,4); p.lineTo(-19,-4); 231 p.closePath(); p.moveTo(10,5); p.lineTo(6,5); p.lineTo(12.5,-3); p.lineTo(19,5); p.closePath(); 232 NoticeA4_1.add(new Instr(Form.PGON, p)); 233 } 234 public static final Symbol NoticeA5 = new Symbol(); 235 static { 236 NoticeA5.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 237 NoticeA5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 238 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); p.moveTo(-5.3,14.6); p.lineTo(-5.3,4.0); p.lineTo(0.0,4.0); p.curveTo(4.2,4.0,7.4,3.5,9.4,0.0); 239 p.curveTo(11.4,-2.8,11.4,-7.2,9.4,-10.5); p.curveTo(7.4,-13.6,4.2,-14.0,0.0,-14.0); p.lineTo(-11.0,-14.0); p.lineTo(-11.0,14.6); p.closePath(); 240 p.moveTo(-5.3,-1.0); p.lineTo(0.0,-1.0); p.curveTo(6.5,-1.0,6.5,-9.0,0.0,-9.0); p.lineTo(-5.3,-9.0); p.closePath(); 241 NoticeA5.add(new Instr(Form.PGON, p)); 242 } 243 public static final Symbol NoticeA5_1 = new Symbol(); 244 static { 245 NoticeA5_1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 246 NoticeA5_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 247 } 248 public static final Symbol NoticeA6 = new Symbol(); 249 static { 250 NoticeA6.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 251 NoticeA6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 252 NoticeA6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, new Scheme(Color.black), new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0)))))); 253 } 254 public static final Symbol NoticeA7 = new Symbol(); 255 static { 256 NoticeA7.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 257 NoticeA7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 258 NoticeA7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Bollard, 1.0, 0, 0, new Scheme(Color.black), null))); 259 } 260 public static final Symbol NoticeA8 = new Symbol(); 261 static { 262 NoticeA8.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 263 NoticeA8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 264 NoticeA8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Turn, 1.0, 0, 0, new Scheme(Color.black), null))); 265 } 266 public static final Symbol NoticeA9 = new Symbol(); 267 static { 268 NoticeA9.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 269 NoticeA9.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 270 NoticeA9.add(new Instr(Form.STRK, new BasicStroke(7, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 271 NoticeA9.add(new Instr(Form.FILL, Color.black)); 272 Path2D.Double p = new Path2D.Double(); p.moveTo(-23,10); p.curveTo(-11,10,-12,4,0,4); p.curveTo(12,4,11,10,23,10); 273 p.moveTo(-23,-3); p.curveTo(-11,-3,-12,-9,0,-9); p.curveTo(12,-9,11,-3,23,-3); 274 NoticeA9.add(new Instr(Form.PLIN, p)); 275 } 276 public static final Symbol NoticeA10a = new Symbol(); 277 static { 278 NoticeA10a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 279 NoticeA10a.add(new Instr(Form.FILL, Color.white)); 280 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(30,0); p.lineTo(0,30); p.closePath(); 281 NoticeA10a.add(new Instr(Form.PGON, p)); 282 NoticeA10a.add(new Instr(Form.FILL, new Color(0xe80000))); 283 p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,0); p.lineTo(0,30); p.closePath(); 284 NoticeA10a.add(new Instr(Form.PGON, p)); 285 NoticeA10a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 286 NoticeA10a.add(new Instr(Form.FILL, Color.black)); 287 p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,0); p.lineTo(0,30); p.lineTo(30,0); p.closePath(); 288 NoticeA10a.add(new Instr(Form.PLIN, p)); 289 } 290 public static final Symbol NoticeA10b = new Symbol(); 291 static { 292 NoticeA10b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 293 NoticeA10b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA10a, 1.0, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0)))))); 294 } 295 public static final Symbol NoticeA12 = new Symbol(); 296 static { 297 NoticeA12.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 298 NoticeA12.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 299 NoticeA12.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Motor, 1.0, 0, 0, new Scheme(Color.black), null))); 300 } 301 public static final Symbol NoticeA13 = new Symbol(); 302 static { 303 NoticeA13.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 304 NoticeA13.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 305 NoticeA13.add(new Instr(Form.TEXT, new Caption("SPORT", new Font("Arial", Font.BOLD, 15), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 5))))); 306 } 307 public static final Symbol NoticeA14 = new Symbol(); 308 static { 309 NoticeA14.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 310 NoticeA14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 311 NoticeA14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterski, 1.0, 0, 0, new Scheme(Color.black), null))); 312 } 313 public static final Symbol NoticeA15 = new Symbol(); 314 static { 315 NoticeA15.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 316 NoticeA15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 317 NoticeA15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboat, 1.0, 0, 0, new Scheme(Color.black), null))); 318 } 319 public static final Symbol NoticeA16 = new Symbol(); 320 static { 321 NoticeA16.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 322 NoticeA16.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 323 NoticeA16.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Rowboat, 1.0, 0, 0, new Scheme(Color.black), null))); 324 } 325 public static final Symbol NoticeA17 = new Symbol(); 326 static { 327 NoticeA17.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 328 NoticeA17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 329 NoticeA17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboard, 1.0, 0, 0, new Scheme(Color.black), null))); 330 } 331 public static final Symbol NoticeA18 = new Symbol(); 332 static { 333 NoticeA18.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 334 NoticeA18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 335 NoticeA18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Speedboat, 1.0, 0, 0, new Scheme(Color.black), null))); 336 } 337 public static final Symbol NoticeA19 = new Symbol(); 338 static { 339 NoticeA19.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 340 NoticeA19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 341 NoticeA19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Slipway, 1.0, 0, 0, new Scheme(Color.black), null))); 342 } 343 public static final Symbol NoticeA20 = new Symbol(); 344 static { 345 NoticeA20.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 346 NoticeA20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 347 NoticeA20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterbike, 1.0, 0, 0, new Scheme(Color.black), null))); 348 } 349 public static final Symbol NoticeB1a = new Symbol(); 350 static { 351 NoticeB1a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 352 NoticeB1a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 353 Path2D.Double p = new Path2D.Double(); p.moveTo(21,8); p.lineTo(-8,8); p.lineTo(-8,18); p.lineTo(-21,0); 354 p.lineTo(-8,-18); p.lineTo(-8,-8); p.lineTo(21,-8); p.closePath(); 355 NoticeB1a.add(new Instr(Form.PGON, p)); 356 } 357 public static final Symbol NoticeB1b = new Symbol(); 358 static { 359 NoticeB1b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 360 NoticeB1b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 361 Path2D.Double p = new Path2D.Double(); p.moveTo(-21,8); p.lineTo(8,8); p.lineTo(8,18); p.lineTo(21,0); 362 p.lineTo(8,-18); p.lineTo(8,-8); p.lineTo(-21,-8); p.closePath(); 363 NoticeB1b.add(new Instr(Form.PGON, p)); 364 } 365 public static final Symbol NoticeB2a = new Symbol(); 366 static { 367 NoticeB2a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 368 NoticeB2a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 369 NoticeB2a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 370 Path2D.Double p = new Path2D.Double(); p.moveTo(18,21); p.lineTo(18,10); p.lineTo(-15,-10); p.lineTo(-15,-15); 371 NoticeB2a.add(new Instr(Form.PLIN, p)); 372 p = new Path2D.Double(); p.moveTo(-15,-21); p.lineTo(-21,-15); p.lineTo(-9,-15); p.closePath(); 373 NoticeB2a.add(new Instr(Form.PGON, p)); 374 } 375 public static final Symbol NoticeB2b = new Symbol(); 376 static { 377 NoticeB2b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 378 NoticeB2b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 379 NoticeB2b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 380 NoticeB2b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 381 Path2D.Double p = new Path2D.Double(); p.moveTo(-18,21); p.lineTo(-18,10); p.lineTo(15,-10); p.lineTo(15,-15); 382 NoticeB2b.add(new Instr(Form.PLIN, p)); 383 p = new Path2D.Double(); p.moveTo(15,-21); p.lineTo(21,-15); p.lineTo(9,-15); p.closePath(); 384 NoticeB2b.add(new Instr(Form.PGON, p)); 385 } 386 public static final Symbol NoticeB3a = new Symbol(); 387 static { 388 NoticeB3a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 389 NoticeB3a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 390 NoticeB3a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 391 NoticeB3a.add(new Instr(Form.LINE, new Line2D.Double(-15,21,-15,-15))); 392 Path2D.Double p = new Path2D.Double(); p.moveTo(-15,-21); p.lineTo(-21,-15); p.lineTo(-9,-15); p.closePath(); 393 NoticeB3a.add(new Instr(Form.PGON, p)); 394 NoticeB3a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f))); 395 NoticeB3a.add(new Instr(Form.LINE, new Line2D.Double(15,-21,15,15))); 396 p = new Path2D.Double(); p.moveTo(15,21); p.lineTo(21,15); p.lineTo(9,15); p.closePath(); 397 NoticeB3a.add(new Instr(Form.PGON, p)); 398 } 399 public static final Symbol NoticeB3b = new Symbol(); 400 static { 401 NoticeB3b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 402 NoticeB3b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 403 NoticeB3b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 404 NoticeB3b.add(new Instr(Form.LINE, new Line2D.Double(15,21,15,-15))); 405 Path2D.Double p = new Path2D.Double(); p.moveTo(15,-21); p.lineTo(21,-15); p.lineTo(9,-15); p.closePath(); 406 NoticeB3b.add(new Instr(Form.PGON, p)); 407 NoticeB3b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f))); 408 NoticeB3b.add(new Instr(Form.LINE, new Line2D.Double(-15,-21,-15,15))); 409 p = new Path2D.Double(); p.moveTo(-15,21); p.lineTo(-21,15); p.lineTo(-9,15); p.closePath(); 410 NoticeB3b.add(new Instr(Form.PGON, p)); 411 } 412 public static final Symbol NoticeB4a = new Symbol(); 413 static { 414 NoticeB4a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 415 NoticeB4a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB2a, 1.0, 0, 0, null, null))); 416 NoticeB4a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f))); 417 Path2D.Double p = new Path2D.Double(); p.moveTo(18,-21); p.lineTo(18,-10); p.lineTo(-15,10); p.lineTo(-15,15); 418 NoticeB4a.add(new Instr(Form.PLIN, p)); 419 p = new Path2D.Double(); p.moveTo(-15,21); p.lineTo(-21,15); p.lineTo(-9,15); p.closePath(); 420 NoticeB4a.add(new Instr(Form.PGON, p)); 421 } 422 public static final Symbol NoticeB4b = new Symbol(); 423 static { 424 NoticeB4b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 425 NoticeB4b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB2b, 1.0, 0, 0, null, null))); 426 NoticeB4b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f))); 427 Path2D.Double p = new Path2D.Double(); p.moveTo(-18,-21); p.lineTo(-18,-10); p.lineTo(15,10); p.lineTo(15,15); 428 NoticeB4b.add(new Instr(Form.PLIN, p)); 429 p = new Path2D.Double(); p.moveTo(15,21); p.lineTo(21,15); p.lineTo(9,15); p.closePath(); 430 NoticeB4b.add(new Instr(Form.PGON, p)); 431 } 432 public static final Symbol NoticeB5 = new Symbol(); 433 static { 434 NoticeB5.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 435 NoticeB5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 436 NoticeB5.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 437 NoticeB5.add(new Instr(Form.LINE, new Line2D.Double(15,0,-15,0))); 438 } 439 public static final Symbol NoticeB6 = new Symbol(); 440 static { 441 NoticeB6.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 442 NoticeB6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 443 } 444 public static final Symbol NoticeB7 = new Symbol(); 445 static { 446 NoticeB7.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 447 NoticeB7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 448 NoticeB7.add(new Instr(Form.RSHP, new Ellipse2D.Double(-10,-10,20,20))); 449 } 450 public static final Symbol NoticeB8 = new Symbol(); 451 static { 452 NoticeB8.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 453 NoticeB8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 454 NoticeB8.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 455 NoticeB8.add(new Instr(Form.LINE, new Line2D.Double(0,15,0,-15))); 456 } 457 public static final Symbol NoticeB9a = new Symbol(); 458 static { 459 NoticeB9a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 460 NoticeB9a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 461 NoticeB9a.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 462 NoticeB9a.add(new Instr(Form.LINE, new Line2D.Double(-21,0,21,0))); 463 NoticeB9a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 464 NoticeB9a.add(new Instr(Form.LINE, new Line2D.Double(0,21,0,0))); 465 } 466 public static final Symbol NoticeB9b = new Symbol(); 467 static { 468 NoticeB9b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 469 NoticeB9b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 470 NoticeB9b.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 471 NoticeB9b.add(new Instr(Form.LINE, new Line2D.Double(-21,0,21,0))); 472 NoticeB9b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 473 NoticeB9b.add(new Instr(Form.LINE, new Line2D.Double(0,21,0,-21))); 474 } 475 public static final Symbol NoticeB11 = new Symbol(); 476 static { 477 NoticeB11.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 478 NoticeB11.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 479 NoticeB11.add(new Instr(Form.TEXT, new Caption("VHF", new Font("Arial", Font.BOLD, 20), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 0))))); 480 } 481 public static final Symbol NoticeC1 = new Symbol(); 482 static { 483 NoticeC1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 484 NoticeC1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 485 Path2D.Double p = new Path2D.Double(); p.moveTo(-15,21); p.lineTo(0,12); p.lineTo(15,21); p.closePath(); 486 NoticeC1.add(new Instr(Form.PGON, p)); 487 } 488 public static final Symbol NoticeC2 = new Symbol(); 489 static { 490 NoticeC2.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 491 NoticeC2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 492 Path2D.Double p = new Path2D.Double(); p.moveTo(-15,-21); p.lineTo(0,-12); p.lineTo(15,-21); p.closePath(); 493 NoticeC2.add(new Instr(Form.PGON, p)); 494 } 495 public static final Symbol NoticeC3 = new Symbol(); 496 static { 497 NoticeC3.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 498 NoticeC3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 499 Path2D.Double p = new Path2D.Double(); p.moveTo(21,-15); p.lineTo(12,0); p.lineTo(21,15); p.closePath(); 500 p.moveTo(-21,-15); p.lineTo(-12,0); p.lineTo(-21,15); p.closePath(); 501 NoticeC3.add(new Instr(Form.PGON, p)); 502 } 503 public static final Symbol NoticeC4 = new Symbol(); 504 static { 505 NoticeC4.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 506 NoticeC4.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 507 } 508 public static final Symbol NoticeC5a = new Symbol(); 509 static { 510 NoticeC5a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 511 NoticeC5a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 512 Path2D.Double p = new Path2D.Double(); p.moveTo(-21,-21); p.lineTo(10,-21); p.lineTo(21,0); p.lineTo(10,21); p.lineTo(-21,21); p.closePath(); 513 NoticeC5a.add(new Instr(Form.PGON, p)); 514 } 515 public static final Symbol NoticeC5b = new Symbol(); 516 static { 517 NoticeC5b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 518 NoticeC5b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 519 Path2D.Double p = new Path2D.Double(); p.moveTo(21,-21); p.lineTo(-10,-21); p.lineTo(-21,0); p.lineTo(-10,21); p.lineTo(21,21); p.closePath(); 520 NoticeC5b.add(new Instr(Form.PGON, p)); 521 } 522 public static final Symbol NoticeD1a = new Symbol(); 523 static { 524 NoticeD1a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 525 NoticeD1a.add(new Instr(Form.FILL, Color.yellow)); 526 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,0); p.lineTo(0,30); p.lineTo(30,0); p.closePath(); 527 NoticeD1a.add(new Instr(Form.PGON, p)); 528 NoticeD1a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 529 NoticeD1a.add(new Instr(Form.FILL, Color.black)); 530 NoticeD1a.add(new Instr(Form.PLIN, p)); 531 } 532 public static final Symbol NoticeD1b = new Symbol(); 533 static { 534 NoticeD1b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 535 NoticeD1b.add(new Instr(Form.FILL, Color.yellow)); 536 Path2D.Double p = new Path2D.Double(); p.moveTo(-30,0); p.lineTo(-15,25); p.lineTo(15,-25); p.lineTo(30,0); p.lineTo(15,25); p.lineTo(-15,-25); p.closePath(); 537 NoticeD1b.add(new Instr(Form.PGON, p)); 538 NoticeD1b.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 539 NoticeD1b.add(new Instr(Form.FILL, Color.black)); 540 NoticeD1b.add(new Instr(Form.PLIN, p)); 541 } 542 public static final Symbol NoticeD2a = new Symbol(); 543 static { 544 NoticeD2a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 545 NoticeD2a.add(new Instr(Form.FILL, Color.white)); 546 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,0); p.lineTo(0,30); p.closePath(); 547 NoticeD2a.add(new Instr(Form.PGON, p)); 548 NoticeD2a.add(new Instr(Form.FILL, new Color(0x00e800))); 549 p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(30,0); p.lineTo(0,30); p.closePath(); 550 NoticeD2a.add(new Instr(Form.PGON, p)); 551 NoticeD2a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 552 NoticeD2a.add(new Instr(Form.FILL, Color.black)); 553 p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,0); p.lineTo(0,30); p.lineTo(30,0); p.closePath(); 554 NoticeD2a.add(new Instr(Form.PLIN, p)); 555 } 556 public static final Symbol NoticeD2b = new Symbol(); 557 static { 558 NoticeD2b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 559 NoticeD2b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeD2a, 1.0, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0)))))); 560 } 561 public static final Symbol NoticeD3a = new Symbol(); 562 static { 563 NoticeD3a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 564 NoticeD3a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 565 Path2D.Double p = new Path2D.Double(); p.moveTo(28,10); p.lineTo(-10,10); p.lineTo(-10,20); p.lineTo(-28,0); 566 p.lineTo(-10,-20); p.lineTo(-10,-10); p.lineTo(28,-10); p.closePath(); 567 NoticeD3a.add(new Instr(Form.PGON, p)); 568 } 569 public static final Symbol NoticeD3b = new Symbol(); 570 static { 571 NoticeD3b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 572 NoticeD3b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 573 Path2D.Double p = new Path2D.Double(); p.moveTo(-28,10); p.lineTo(10,10); p.lineTo(10,20); p.lineTo(28,0); 574 p.lineTo(10,-20); p.lineTo(10,-10); p.lineTo(-28,-10); p.closePath(); 575 NoticeD3b.add(new Instr(Form.PGON, p)); 576 } 577 public static final Symbol NoticeE1 = new Symbol(); 578 static { 579 NoticeE1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 580 NoticeE1.add(new Instr(Form.FILL, new Color(0x00e800))); 581 NoticeE1.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 582 NoticeE1.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 583 NoticeE1.add(new Instr(Form.FILL, Color.white)); 584 NoticeE1.add(new Instr(Form.RSHP, new Rectangle2D.Double(-10,-30,20,60))); 585 NoticeE1.add(new Instr(Form.FILL, Color.black)); 586 NoticeE1.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 587 } 588 public static final Symbol NoticeE2 = new Symbol(); 589 static { 590 NoticeE2.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 591 NoticeE2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 592 Path2D.Double p = new Path2D.Double(); p.moveTo(5,-25); p.lineTo(-10,-1); p.lineTo(10,-1); p.lineTo(-10,20); 593 p.lineTo(-7,20); p.lineTo(-12,25); p.lineTo(-16,20); p.lineTo(-13,20); p.lineTo(4,1); p.lineTo(-14,1); 594 p.lineTo(2,-25); p.closePath(); 595 NoticeE2.add(new Instr(Form.PGON, p)); 596 } 597 public static final Symbol NoticeE3 = new Symbol(); 598 static { 599 NoticeE3.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 600 NoticeE3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 601 NoticeE3.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 602 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(25,-20,25,20))); 603 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-25,-20,-25,20))); 604 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-15,-15,-15,20))); 605 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-5,-15,-5,20))); 606 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(5,-15,5,20))); 607 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(15,-15,15,20))); 608 NoticeE3.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 609 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-26,18.5,26,18.5))); 610 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-26,-15,26,-15))); 611 } 612 public static final Symbol NoticeE4a = new Symbol(); 613 static { 614 NoticeE4a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 615 NoticeE4a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 616 Path2D.Double p = new Path2D.Double(); p.moveTo(-20,-10); p.lineTo(-5,-10); p.lineTo(-5,-20); p.lineTo(5,-20); p.lineTo(5,-10); 617 p.lineTo(20,-10); p.lineTo(15,0); p.lineTo(-15,0); p.closePath(); 618 p.moveTo(-25,5); p.lineTo(25,5); p.lineTo(25,10); p.lineTo(-25,10); p.closePath(); 619 NoticeE4a.add(new Instr(Form.PGON, p)); 620 } 621 public static final Symbol NoticeE4b = new Symbol(); 622 static { 623 NoticeE4b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 624 NoticeE4b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 625 Path2D.Double p = new Path2D.Double(); p.moveTo(-20,0); p.lineTo(-5,0); p.lineTo(-5,-10); p.lineTo(5,-10); p.lineTo(5,0); 626 p.lineTo(20,0); p.lineTo(15,10); p.lineTo(-15,10); p.closePath(); 627 NoticeE4b.add(new Instr(Form.PGON, p)); 628 } 629 public static final Symbol NoticeE5 = new Symbol(); 630 static { 631 NoticeE5.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 632 NoticeE5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 633 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); p.moveTo(-5.3,14.6); p.lineTo(-5.3,4.0); p.lineTo(0.0,4.0); p.curveTo(4.2,4.0,7.4,3.5,9.4,0.0); 634 p.curveTo(11.4,-2.8,11.4,-7.2,9.4,-10.5); p.curveTo(7.4,-13.6,4.2,-14.0,0.0,-14.0); p.lineTo(-11.0,-14.0); p.lineTo(-11.0,14.6); p.closePath(); 635 p.moveTo(-5.3,-1.0); p.lineTo(0.0,-1.0); p.curveTo(6.5,-1.0,6.5,-9.0,0.0,-9.0); p.lineTo(-5.3,-9.0); p.closePath(); 636 NoticeE5.add(new Instr(Form.PGON, p)); 637 } 638 public static final Symbol NoticeE5_1 = new Symbol(); 639 static { 640 NoticeE5_1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 641 NoticeE5_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 642 } 643 public static final Symbol NoticeE5_2 = new Symbol(); 644 static { 645 NoticeE5_2.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 646 NoticeE5_2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 647 } 648 public static final Symbol NoticeE5_3 = new Symbol(); 649 static { 650 NoticeE5_3.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 651 NoticeE5_3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 652 } 653 public static final Symbol NoticeE5_4 = new Symbol(); 654 static { 655 NoticeE5_4.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 656 NoticeE5_4.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 657 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 658 p.moveTo(-28,25); p.lineTo(0,-28); p.lineTo(28,25); p.closePath(); 659 NoticeE5_4.add(new Instr(Form.PGON, p)); 660 } 661 public static final Symbol NoticeE5_5 = new Symbol(); 662 static { 663 NoticeE5_5.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 664 NoticeE5_5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 665 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 666 p.moveTo(-28,25); p.lineTo(0,-28); p.lineTo(28,25); p.closePath(); 667 p.moveTo(0,24); p.lineTo(-15,2); p.lineTo(15,2); p.closePath(); 668 NoticeE5_5.add(new Instr(Form.PGON, p)); 669 } 670 public static final Symbol NoticeE5_6 = new Symbol(); 671 static { 672 NoticeE5_6.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 673 NoticeE5_6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 674 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 675 p.moveTo(-28,25); p.lineTo(0,-28); p.lineTo(28,25); p.closePath(); 676 p.moveTo(0,7); p.lineTo(-10,-8); p.lineTo(10,-8); p.closePath(); 677 p.moveTo(0,24); p.lineTo(-10,9); p.lineTo(10,9); p.closePath(); 678 NoticeE5_6.add(new Instr(Form.PGON, p)); 679 } 680 public static final Symbol NoticeE5_7 = new Symbol(); 681 static { 682 NoticeE5_7.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 683 NoticeE5_7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 684 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 685 p.moveTo(-28,25); p.lineTo(0,-28); p.lineTo(28,25); p.closePath(); 686 p.moveTo(0,-1); p.lineTo(-8,-11); p.lineTo(8,-11); p.closePath(); 687 p.moveTo(0,11); p.lineTo(-8,1); p.lineTo(8,1); p.closePath(); 688 p.moveTo(0,23); p.lineTo(-8,13); p.lineTo(8,13); p.closePath(); 689 NoticeE5_7.add(new Instr(Form.PGON, p)); 690 } 691 public static final Symbol NoticeE5_8 = new Symbol(); 692 static { 693 NoticeE5_8.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 694 NoticeE5_8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 695 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 696 p.moveTo(-28,-25); p.lineTo(0,28); p.lineTo(28,-25); p.closePath(); 697 NoticeE5_8.add(new Instr(Form.PGON, p)); 698 } 699 public static final Symbol NoticeE5_9 = new Symbol(); 700 static { 701 NoticeE5_9.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 702 NoticeE5_9.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 703 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 704 p.moveTo(-28,-25); p.lineTo(0,28); p.lineTo(28,-25); p.closePath(); 705 p.moveTo(0,8); p.lineTo(-15,-14); p.lineTo(15,-14); p.closePath(); 706 NoticeE5_9.add(new Instr(Form.PGON, p)); 707 } 708 public static final Symbol NoticeE5_10 = new Symbol(); 709 static { 710 NoticeE5_10.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 711 NoticeE5_10.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 712 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 713 p.moveTo(-28,-25); p.lineTo(0,28); p.lineTo(28,-25); p.closePath(); 714 p.moveTo(0,-5); p.lineTo(-10,-20); p.lineTo(10,-20); p.closePath(); 715 p.moveTo(0,15); p.lineTo(-10,0); p.lineTo(10,0); p.closePath(); 716 NoticeE5_10.add(new Instr(Form.PGON, p)); 717 } 718 public static final Symbol NoticeE5_11 = new Symbol(); 719 static { 720 NoticeE5_11.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 721 NoticeE5_11.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 722 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 723 p.moveTo(-28,-25); p.lineTo(0,28); p.lineTo(28,-25); p.closePath(); 724 p.moveTo(0,-12); p.lineTo(-8,-22); p.lineTo(8,-22); p.closePath(); 725 p.moveTo(0,3); p.lineTo(-8,-7); p.lineTo(8,-7); p.closePath(); 726 p.moveTo(0,18); p.lineTo(-8,8); p.lineTo(8,8); p.closePath(); 727 NoticeE5_11.add(new Instr(Form.PGON, p)); 728 } 729 public static final Symbol NoticeE5_12 = new Symbol(); 730 static { 731 NoticeE5_12.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 732 NoticeE5_12.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 733 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 734 p.moveTo(-28,0); p.lineTo(0,28); p.lineTo(28,0); p.lineTo(0,-28); p.closePath(); 735 NoticeE5_12.add(new Instr(Form.PGON, p)); 736 } 737 public static final Symbol NoticeE5_13 = new Symbol(); 738 static { 739 NoticeE5_13.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 740 NoticeE5_13.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 741 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 742 p.moveTo(-28,0); p.lineTo(0,28); p.lineTo(28,0); p.lineTo(0,-28); p.closePath(); 743 p.moveTo(0,15); p.lineTo(-15,-7); p.lineTo(15,-7); p.closePath(); 744 NoticeE5_13.add(new Instr(Form.PGON, p)); 745 } 746 public static final Symbol NoticeE5_14 = new Symbol(); 747 static { 748 NoticeE5_14.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 749 NoticeE5_14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 750 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 751 p.moveTo(-28,0); p.lineTo(0,28); p.lineTo(28,0); p.lineTo(0,-28); p.closePath(); 752 p.moveTo(0,0); p.lineTo(-10,-15); p.lineTo(10,-15); p.closePath(); 753 p.moveTo(0,20); p.lineTo(-10,5); p.lineTo(10,5); p.closePath(); 754 NoticeE5_14.add(new Instr(Form.PGON, p)); 755 } 756 public static final Symbol NoticeE5_15 = new Symbol(); 757 static { 758 NoticeE5_15.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 759 NoticeE5_15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 760 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 761 p.moveTo(-28,0); p.lineTo(0,28); p.lineTo(28,0); p.lineTo(0,-28); p.closePath(); 762 p.moveTo(0,-7); p.lineTo(-8,-17); p.lineTo(8,-17); p.closePath(); 763 p.moveTo(0,8); p.lineTo(-8,-2); p.lineTo(8,-2); p.closePath(); 764 p.moveTo(0,23); p.lineTo(-8,13); p.lineTo(8,13); p.closePath(); 765 NoticeE5_15.add(new Instr(Form.PGON, p)); 766 } 767 public static final Symbol NoticeE6 = new Symbol(); 768 static { 769 NoticeE6.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 770 NoticeE6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 771 NoticeE6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, new Scheme(Color.white), null))); 772 } 773 public static final Symbol NoticeE7 = new Symbol(); 774 static { 775 NoticeE7.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 776 NoticeE7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 777 NoticeE7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Bollard, 1.0, 0, 0, new Scheme(Color.white), null))); 778 } 779 public static final Symbol NoticeE7_1 = new Symbol(); 780 static { 781 NoticeE7_1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 782 NoticeE7_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 783 NoticeE7_1.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 784 NoticeE7_1.add(new Instr(Form.LINE, new Line2D.Double(20,25,20,-10))); 785 NoticeE7_1.add(new Instr(Form.LINE, new Line2D.Double(22,-8,-15,-20))); 786 NoticeE7_1.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 787 NoticeE7_1.add(new Instr(Form.LINE, new Line2D.Double(20,8,0,-15))); 788 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 789 p.moveTo(-17,2); p.quadTo(-5,0,7,2); p.lineTo(9,12); p.lineTo(7,20); p.lineTo(6,20); p.lineTo(6,23); p.lineTo(3,23); p.lineTo(3,20); 790 p.quadTo(-5,22,-13,20); p.lineTo(-13,23); p.lineTo(-16,23); p.lineTo(-16,20); p.lineTo(-17,20); p.lineTo(-19,12); p.closePath(); 791 p.moveTo(-15,4); p.quadTo(-3,2,5,4); p.lineTo(6,11); p.quadTo(-5,9,-16,11); p.closePath(); 792 NoticeE7_1.add(new Instr(Form.PGON, p)); 793 NoticeE7_1.add(new Instr(Form.FILL, new Color(0x0000a0))); 794 NoticeE7_1.add(new Instr(Form.RSHP, new Ellipse2D.Double(-16,13,4,4))); 795 NoticeE7_1.add(new Instr(Form.RSHP, new Ellipse2D.Double(2,13,4,4))); 796 } 797 public static final Symbol NoticeE8 = new Symbol(); 798 static { 799 NoticeE8.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 800 NoticeE8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 801 NoticeE8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Turn, 1.0, 0, 0, new Scheme(Color.white), null))); 802 } 803 public static final Symbol NoticeE9a = new Symbol(); 804 static { 805 NoticeE9a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 806 NoticeE9a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 807 NoticeE9a.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 808 NoticeE9a.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-29))); 809 NoticeE9a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 810 NoticeE9a.add(new Instr(Form.LINE, new Line2D.Double(-29,0,29,0))); 811 } 812 public static final Symbol NoticeE9b = new Symbol(); 813 static { 814 NoticeE9b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 815 NoticeE9b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 816 NoticeE9b.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 817 NoticeE9b.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-29))); 818 NoticeE9b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 819 NoticeE9b.add(new Instr(Form.LINE, new Line2D.Double(-2,0,29,0))); 820 } 821 public static final Symbol NoticeE9c = new Symbol(); 822 static { 823 NoticeE9c.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 824 NoticeE9c.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 825 NoticeE9c.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 826 NoticeE9c.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-29))); 827 NoticeE9c.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 828 NoticeE9c.add(new Instr(Form.LINE, new Line2D.Double(2,0,-29,0))); 829 } 830 public static final Symbol NoticeE9d = new Symbol(); 831 static { 832 NoticeE9d.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 833 NoticeE9d.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 834 NoticeE9d.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 835 NoticeE9d.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4))); 836 NoticeE9d.add(new Instr(Form.LINE, new Line2D.Double(-4,0,29,0))); 837 NoticeE9d.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 838 NoticeE9d.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,2))); 839 } 840 public static final Symbol NoticeE9e = new Symbol(); 841 static { 842 NoticeE9e.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 843 NoticeE9e.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 844 NoticeE9e.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 845 NoticeE9e.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4))); 846 NoticeE9e.add(new Instr(Form.LINE, new Line2D.Double(4,0,-29,0))); 847 NoticeE9e.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 848 NoticeE9e.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,2))); 849 } 850 public static final Symbol NoticeE9f = new Symbol(); 851 static { 852 NoticeE9f.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 853 NoticeE9f.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 854 NoticeE9f.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 855 NoticeE9f.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4))); 856 NoticeE9f.add(new Instr(Form.LINE, new Line2D.Double(-4,0,29,0))); 857 NoticeE9f.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 858 NoticeE9f.add(new Instr(Form.LINE, new Line2D.Double(2,0,-29,0))); 859 } 860 public static final Symbol NoticeE9g = new Symbol(); 861 static { 862 NoticeE9g.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 863 NoticeE9g.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 864 NoticeE9g.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 865 NoticeE9g.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4))); 866 NoticeE9g.add(new Instr(Form.LINE, new Line2D.Double(4,0,-29,0))); 867 NoticeE9g.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 868 NoticeE9g.add(new Instr(Form.LINE, new Line2D.Double(-2,0,29,0))); 869 } 870 public static final Symbol NoticeE9h = new Symbol(); 871 static { 872 NoticeE9h.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 873 NoticeE9h.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 874 NoticeE9h.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 875 NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4))); 876 NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(-4,0,29,0))); 877 NoticeE9h.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 878 NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,2))); 879 NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(2,0,-29,0))); 880 } 881 public static final Symbol NoticeE9i = new Symbol(); 882 static { 883 NoticeE9i.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 884 NoticeE9i.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 885 NoticeE9i.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 886 NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4))); 887 NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(4,0,-29,0))); 888 NoticeE9i.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 889 NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,2))); 890 NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(-2,0,29,0))); 891 } 892 public static final Symbol NoticeE10a = new Symbol(); 893 static { 894 NoticeE10a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 895 NoticeE10a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 896 NoticeE10a.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 897 NoticeE10a.add(new Instr(Form.LINE, new Line2D.Double(-29,0,29,0))); 898 NoticeE10a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 899 NoticeE10a.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-29))); 900 } 901 public static final Symbol NoticeE10b = new Symbol(); 902 static { 903 NoticeE10b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 904 NoticeE10b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 905 NoticeE10b.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 906 NoticeE10b.add(new Instr(Form.LINE, new Line2D.Double(-29,0,29,0))); 907 NoticeE10b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 908 NoticeE10b.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-2))); 909 } 910 public static final Symbol NoticeE10c = new Symbol(); 911 static { 912 NoticeE10c.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 913 NoticeE10c.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 914 NoticeE10c.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 915 NoticeE10c.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,4))); 916 NoticeE10c.add(new Instr(Form.LINE, new Line2D.Double(-4,0,29,0))); 917 NoticeE10c.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 918 NoticeE10c.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-2))); 919 } 920 public static final Symbol NoticeE10d = new Symbol(); 921 static { 922 NoticeE10d.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 923 NoticeE10d.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 924 NoticeE10d.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 925 NoticeE10d.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,4))); 926 NoticeE10d.add(new Instr(Form.LINE, new Line2D.Double(4,0,-29,0))); 927 NoticeE10d.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 928 NoticeE10d.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-2))); 929 } 930 public static final Symbol NoticeE10e = new Symbol(); 931 static { 932 NoticeE10e.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 933 NoticeE10e.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 934 NoticeE10e.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 935 NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,4))); 936 NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(-4,0,29,0))); 937 NoticeE10e.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 938 NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-2))); 939 NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(2,0,-29,0))); 940 } 941 public static final Symbol NoticeE10f = new Symbol(); 942 static { 943 NoticeE10f.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 944 NoticeE10f.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 945 NoticeE10f.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 946 NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,4))); 947 NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(4,0,-29,0))); 948 NoticeE10f.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 949 NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-2))); 950 NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(-2,0,29,0))); 951 } 952 public static final Symbol NoticeE11 = new Symbol(); 953 static { 954 NoticeE11.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 955 NoticeE11.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 956 NoticeE11.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 957 NoticeE11.add(new Instr(Form.LINE, new Line2D.Double(-27,-27,27,27))); 958 } 959 public static final Symbol NoticeE13 = new Symbol(); 960 static { 961 NoticeE13.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 962 NoticeE13.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 963 Path2D.Double p = new Path2D.Double(); p.moveTo(-4,-16); p.lineTo(9,-16); p.lineTo(9,-14); p.lineTo(3.5,-14); p.lineTo(3.5,-7); p.lineTo(5,-7); 964 p.lineTo(5,1); p.lineTo(6.5,1); p.lineTo(6.5,5); p.lineTo(17.5,5); p.lineTo(17.5,1); p.lineTo(19,1); p.lineTo(19,15); p.lineTo(17.5,15); 965 p.lineTo(17.5,10); p.lineTo(17.5,10); p.lineTo(6.5,10); p.lineTo(6.5,13); p.lineTo(-2,13); p.lineTo(-2,10); p.lineTo(-9,10); 966 p.quadTo(-13.5,10,-13.5,16); p.lineTo(-19,16); p.quadTo(-19,5,-9,5); p.lineTo(-2,5); p.lineTo(-2,1); p.lineTo(0,1); p.lineTo(0,-7); 967 p.lineTo(1.5,-7); p.lineTo(1.5,-14); p.lineTo(-4,-14); p.closePath(); 968 NoticeE13.add(new Instr(Form.PGON, p)); 969 } 970 public static final Symbol NoticeE14 = new Symbol(); 971 static { 972 NoticeE14.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 973 NoticeE14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 974 Path2D.Double p = new Path2D.Double(); p.moveTo(-18,-18); p.lineTo(-11,-7); p.lineTo(-9,-10); p.lineTo(-14,-18); p.closePath(); 975 p.moveTo(9.5,7); p.lineTo(22.5,9); p.lineTo(21.5,5.5); p.lineTo(12,4); p.closePath(); 976 p.moveTo(-19,-16.5); p.lineTo(-13,-6.5); p.quadTo(-15.5,-2,-12.5,0); p.lineTo(4,11); p.quadTo(7,13,10,9); p.lineTo(21.5,11); 977 p.curveTo(15.5,23,1,18.5,-9,12); p.curveTo(-18,6,-28.5,-7,-19,-16.5); p.closePath(); 978 NoticeE14.add(new Instr(Form.PGON, p)); 979 } 980 public static final Symbol NoticeE15 = new Symbol(); 981 static { 982 NoticeE15.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 983 NoticeE15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 984 NoticeE15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Motor, 1.0, 0, 0, new Scheme(Color.white), null))); 985 } 986 public static final Symbol NoticeE16 = new Symbol(); 987 static { 988 NoticeE16.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 989 NoticeE16.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 990 NoticeE16.add(new Instr(Form.TEXT, new Caption("SPORT", new Font("Arial", Font.BOLD, 15), Color.white, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 5))))); 991 } 992 public static final Symbol NoticeE17 = new Symbol(); 993 static { 994 NoticeE17.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 995 NoticeE17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 996 NoticeE17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterski, 1.0, 0, 0, new Scheme(Color.white), null))); 997 } 998 public static final Symbol NoticeE18 = new Symbol(); 999 static { 1000 NoticeE18.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1001 NoticeE18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1002 NoticeE18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboat, 1.0, 0, 0, new Scheme(Color.white), null))); 1003 } 1004 public static final Symbol NoticeE19 = new Symbol(); 1005 static { 1006 NoticeE19.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1007 NoticeE19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1008 NoticeE19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Rowboat, 1.0, 0, 0, new Scheme(Color.white), null))); 1009 } 1010 public static final Symbol NoticeE20 = new Symbol(); 1011 static { 1012 NoticeE20.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1013 NoticeE20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1014 NoticeE20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboard, 1.0, 0, 0, new Scheme(Color.white), null))); 1015 } 1016 public static final Symbol NoticeE21 = new Symbol(); 1017 static { 1018 NoticeE21.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1019 NoticeE21.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1020 NoticeE21.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Speedboat, 1.0, 0, 0, new Scheme(Color.white), null))); 1021 } 1022 public static final Symbol NoticeE22 = new Symbol(); 1023 static { 1024 NoticeE22.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1025 NoticeE22.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1026 NoticeE22.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Slipway, 1.0, 0, 0, new Scheme(Color.white), null))); 1027 } 1028 public static final Symbol NoticeE23 = new Symbol(); 1029 static { 1030 NoticeE23.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1031 NoticeE23.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1032 NoticeE23.add(new Instr(Form.TEXT, new Caption("VHF", new Font("Arial", Font.BOLD, 20), Color.white, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 0))))); 1033 } 1034 public static final Symbol NoticeE24 = new Symbol(); 1035 static { 1036 NoticeE24.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1037 NoticeE24.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1038 NoticeE24.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterbike, 1.0, 0, 0, new Scheme(Color.white), null))); 1039 } 1040 1041 public static final Symbol NoticeBoard = new Symbol(); 1042 static { 1043 NoticeBoard.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,30))); 1044 NoticeBoard.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1045 Path2D.Double p = new Path2D.Double(); p.moveTo(-20,0); p.lineTo(20,0); p.lineTo(20,-15); p.lineTo(-20,-15); p.closePath(); 1046 NoticeBoard.add(new Instr(Form.FILL, Color.white)); 1047 NoticeBoard.add(new Instr(Form.PGON, p)); 1048 NoticeBoard.add(new Instr(Form.FILL, Color.black)); 1049 NoticeBoard.add(new Instr(Form.PLIN, p)); 1050 } 1051 public static final Symbol NoticeTriangle = new Symbol(); 1052 static { 1053 NoticeTriangle.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,30))); 1054 NoticeTriangle.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1055 Path2D.Double p = new Path2D.Double(); p.moveTo(-20,0); p.lineTo(20,0); p.lineTo(0,-15); p.closePath(); 1056 NoticeTriangle.add(new Instr(Form.FILL, Color.white)); 1057 NoticeTriangle.add(new Instr(Form.PGON, p)); 1058 NoticeTriangle.add(new Instr(Form.FILL, Color.black)); 1059 NoticeTriangle.add(new Instr(Form.PLIN, p)); 1060 } 1061 1062 public static final EnumMap<CatNMK, Symbol> NmkCevni = new EnumMap<>(CatNMK.class); 1063 static { 1064 NmkCevni.put(CatNMK.NMK_UNKN, Notice); NmkCevni.put(CatNMK.NMK_NENT, NoticeA1); NmkCevni.put(CatNMK.NMK_CLSA, NoticeA1a); NmkCevni.put(CatNMK.NMK_NOVK, NoticeA2); 1065 NmkCevni.put(CatNMK.NMK_NCOV, NoticeA3); NmkCevni.put(CatNMK.NMK_NPAS, NoticeA4); NmkCevni.put(CatNMK.NMK_NCPS, NoticeA4_1); NmkCevni.put(CatNMK.NMK_NBRT, NoticeA5); 1066 NmkCevni.put(CatNMK.NMK_NBLL, NoticeA5_1); NmkCevni.put(CatNMK.NMK_NANK, NoticeA6); NmkCevni.put(CatNMK.NMK_NMOR, NoticeA7); NmkCevni.put(CatNMK.NMK_NTRN, NoticeA8); 1067 NmkCevni.put(CatNMK.NMK_NWSH, NoticeA9); NmkCevni.put(CatNMK.NMK_NPSL, NoticeA10a); NmkCevni.put(CatNMK.NMK_NPSR, NoticeA10b); NmkCevni.put(CatNMK.NMK_NMTC, NoticeA12); 1068 NmkCevni.put(CatNMK.NMK_NSPC, NoticeA13); NmkCevni.put(CatNMK.NMK_NWSK, NoticeA14); NmkCevni.put(CatNMK.NMK_NSLC, NoticeA15); NmkCevni.put(CatNMK.NMK_NUPC, NoticeA16); 1069 NmkCevni.put(CatNMK.NMK_NSLB, NoticeA17); NmkCevni.put(CatNMK.NMK_NWBK, NoticeA20); NmkCevni.put(CatNMK.NMK_NHSC, NoticeA18); NmkCevni.put(CatNMK.NMK_NLBG, NoticeA19); 1070 NmkCevni.put(CatNMK.NMK_MVTL, NoticeB1a); NmkCevni.put(CatNMK.NMK_MVTR, NoticeB1b); NmkCevni.put(CatNMK.NMK_MVTP, NoticeB2a); NmkCevni.put(CatNMK.NMK_MVTS, NoticeB2b); 1071 NmkCevni.put(CatNMK.NMK_KPTP, NoticeB3a); NmkCevni.put(CatNMK.NMK_KPTS, NoticeB3b); NmkCevni.put(CatNMK.NMK_CSTP, NoticeB4a); NmkCevni.put(CatNMK.NMK_CSTS, NoticeB4b); 1072 NmkCevni.put(CatNMK.NMK_STOP, NoticeB5); NmkCevni.put(CatNMK.NMK_SPDL, NoticeB6); NmkCevni.put(CatNMK.NMK_SHRN, NoticeB7); NmkCevni.put(CatNMK.NMK_KPLO, NoticeB8); 1073 NmkCevni.put(CatNMK.NMK_GWJN, NoticeB9a); NmkCevni.put(CatNMK.NMK_GWCS, NoticeB9b); NmkCevni.put(CatNMK.NMK_MKRC, NoticeB11); 1074 NmkCevni.put(CatNMK.NMK_LMDP, NoticeC1); NmkCevni.put(CatNMK.NMK_LMHR, NoticeC2); NmkCevni.put(CatNMK.NMK_LMWD, NoticeC3); NmkCevni.put(CatNMK.NMK_NAVR, NoticeC4); 1075 NmkCevni.put(CatNMK.NMK_CHDL, NoticeC5a); NmkCevni.put(CatNMK.NMK_CHDR, NoticeC5b); 1076 NmkCevni.put(CatNMK.NMK_CHTW, NoticeD1a); NmkCevni.put(CatNMK.NMK_CHOW, NoticeD1b); NmkCevni.put(CatNMK.NMK_OPTR, NoticeD2a); NmkCevni.put(CatNMK.NMK_OPTL, NoticeD2b); 1077 NmkCevni.put(CatNMK.NMK_PRTL, NoticeD3a); NmkCevni.put(CatNMK.NMK_PRTR, NoticeD3b); 1078 NmkCevni.put(CatNMK.NMK_ENTP, NoticeE1); NmkCevni.put(CatNMK.NMK_OVHC, NoticeE2); NmkCevni.put(CatNMK.NMK_WEIR, NoticeE3); NmkCevni.put(CatNMK.NMK_FERN, NoticeE4a); 1079 NmkCevni.put(CatNMK.NMK_FERI, NoticeE4b); NmkCevni.put(CatNMK.NMK_BRTP, NoticeE5); NmkCevni.put(CatNMK.NMK_BTLL, NoticeE5_1); NmkCevni.put(CatNMK.NMK_BTLS, NoticeE5_2); 1080 NmkCevni.put(CatNMK.NMK_BTRL, NoticeE5_3); NmkCevni.put(CatNMK.NMK_BTUP, NoticeE5_4); NmkCevni.put(CatNMK.NMK_BTP1, NoticeE5_5); NmkCevni.put(CatNMK.NMK_BTP2, NoticeE5_6); 1081 NmkCevni.put(CatNMK.NMK_BTP3, NoticeE5_7); NmkCevni.put(CatNMK.NMK_BTUN, NoticeE5_8); NmkCevni.put(CatNMK.NMK_BTN1, NoticeE5_9); NmkCevni.put(CatNMK.NMK_BTN2, NoticeE5_10); 1082 NmkCevni.put(CatNMK.NMK_BTN3, NoticeE5_11); NmkCevni.put(CatNMK.NMK_BTUM, NoticeE5_12); NmkCevni.put(CatNMK.NMK_BTU1, NoticeE5_13); NmkCevni.put(CatNMK.NMK_BTU2, NoticeE5_14); 1083 NmkCevni.put(CatNMK.NMK_BTU3, NoticeE5_15); NmkCevni.put(CatNMK.NMK_ANKP, NoticeE6); NmkCevni.put(CatNMK.NMK_MORP, NoticeE7); NmkCevni.put(CatNMK.NMK_VLBT, NoticeE7_1); 1084 NmkCevni.put(CatNMK.NMK_TRNA, NoticeE8); NmkCevni.put(CatNMK.NMK_SWWC, NoticeE9a); NmkCevni.put(CatNMK.NMK_SWWR, NoticeE9b); NmkCevni.put(CatNMK.NMK_SWWL, NoticeE9c); 1085 NmkCevni.put(CatNMK.NMK_WRSA, NoticeE9d); NmkCevni.put(CatNMK.NMK_WLSA, NoticeE9e); NmkCevni.put(CatNMK.NMK_WRSL, NoticeE9f); NmkCevni.put(CatNMK.NMK_WLSR, NoticeE9g); 1086 NmkCevni.put(CatNMK.NMK_WRAL, NoticeE9h); NmkCevni.put(CatNMK.NMK_WLAR, NoticeE9i); NmkCevni.put(CatNMK.NMK_MWWC, NoticeE10a); NmkCevni.put(CatNMK.NMK_MWWJ, NoticeE10b); 1087 NmkCevni.put(CatNMK.NMK_MWAR, NoticeE10c); NmkCevni.put(CatNMK.NMK_MWAL, NoticeE10d); NmkCevni.put(CatNMK.NMK_WARL, NoticeE10e); NmkCevni.put(CatNMK.NMK_WALR, NoticeE10f); 1088 NmkCevni.put(CatNMK.NMK_PEND, NoticeE11); NmkCevni.put(CatNMK.NMK_DWTR, NoticeE13); NmkCevni.put(CatNMK.NMK_TELE, NoticeE14); NmkCevni.put(CatNMK.NMK_MTCP, NoticeE15); 1089 NmkCevni.put(CatNMK.NMK_SPCP, NoticeE16); NmkCevni.put(CatNMK.NMK_WSKP, NoticeE17); NmkCevni.put(CatNMK.NMK_SLCP, NoticeE18); NmkCevni.put(CatNMK.NMK_UPCP, NoticeE19); 1090 NmkCevni.put(CatNMK.NMK_SLBP, NoticeE20); NmkCevni.put(CatNMK.NMK_RADI, NoticeE23); NmkCevni.put(CatNMK.NMK_WTBP, NoticeE24); NmkCevni.put(CatNMK.NMK_HSCP, NoticeE21); 1091 NmkCevni.put(CatNMK.NMK_LBGP, NoticeE22); 1092 }; 1093 1094 private static final Symbol NoticeBB = new Symbol(); 1095 static { 1096 NoticeBB.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1097 NoticeBB.add(new Instr(Form.LINE, new Line2D.Double(-29,-29,-29,29))); 1098 NoticeBB.add(new Instr(Form.LINE, new Line2D.Double(29,-29,29,29))); 1099 NoticeBB.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1100 NoticeBB.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1101 } 1102 1103 private static final Symbol NoticeBP = new Symbol(); 1104 static { 1105 NoticeBP.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1106 NoticeBP.add(new Instr(Form.FILL, Color.white)); 1107 NoticeBP.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1108 NoticeBP.add(new Instr(Form.FILL, Color.black)); 1109 NoticeBP.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1110 } 1111 1112 private static final Symbol NoticeCR = new Symbol(); 1113 static { 1114 NoticeCR.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1115 NoticeCR.add(new Instr(Form.FILL, Color.white)); 1116 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(-30, 0); p.lineTo(0, 30); p.lineTo(30, 0); p.closePath(); 1117 NoticeCR.add(new Instr(Form.PGON, p)); 1118 NoticeCR.add(new Instr(Form.FILL, Color.black)); 1119 NoticeCR.add(new Instr(Form.PLIN, p)); 1120 } 1121 1122 private static final Symbol NoticeKT = new Symbol(); 1123 static { 1124 NoticeKT.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1125 NoticeKT.add(new Instr(Form.FILL, Color.white)); 1126 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,30); p.lineTo(30,30); p.closePath(); 1127 NoticeKT.add(new Instr(Form.PGON, p)); 1128 NoticeKT.add(new Instr(Form.FILL, Color.black)); 1129 NoticeKT.add(new Instr(Form.PLIN, p)); 1130 } 1131 1132 public static final Symbol NoticeBnank = new Symbol(); 1133 static { 1134 NoticeBnank.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1135 Symbol colours = new Symbol(); 1136 Symbol ss = new Symbol(); 1137 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1138 colours.add(new Instr(Form.N1, ss)); 1139 ss = new Symbol(); 1140 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, null, null))); 1141 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 1142 ss.add(new Instr(Form.LINE, new Line2D.Double(-27,-27,27,27))); 1143 ss.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1144 ss.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1145 colours.add(new Instr(Form.N2, ss)); 1146 NoticeBnank.add(new Instr(Form.COLR, colours)); 1147 } 1148 public static final Symbol NoticeBlmhr = new Symbol(); 1149 static { 1150 NoticeBlmhr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1151 Symbol colours = new Symbol(); 1152 Symbol ss = new Symbol(); 1153 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1154 colours.add(new Instr(Form.N1, ss)); 1155 ss = new Symbol(); 1156 ss.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 1157 Path2D.Double p = new Path2D.Double(); p.moveTo(-29,-29); p.lineTo(29,-29); p.lineTo(0,0); p.closePath(); 1158 ss.add(new Instr(Form.PGON, p)); 1159 ss.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1160 ss.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1161 colours.add(new Instr(Form.N2, ss)); 1162 NoticeBlmhr.add(new Instr(Form.COLR, colours)); 1163 } 1164 public static final Symbol NoticeBktpm = new Symbol(); 1165 static { 1166 NoticeBktpm.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1167 Symbol colours = new Symbol(); 1168 Symbol ss = new Symbol(); 1169 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1170 colours.add(new Instr(Form.N1, ss)); 1171 ss = new Symbol(); 1172 Path2D.Double p = new Path2D.Double(); p.moveTo(-14,-26); p.lineTo(-20,-12); p.lineTo(-8,-12); p.closePath(); 1173 ss.add(new Instr(Form.PGON, p)); 1174 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1175 ss.add(new Instr(Form.LINE, new Line2D.Double(-14,-16,-14,25))); 1176 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1177 colours.add(new Instr(Form.N2, ss)); 1178 NoticeBktpm.add(new Instr(Form.COLR, colours)); 1179 } 1180 public static final Symbol NoticeBktsm = new Symbol(); 1181 static { 1182 NoticeBktsm.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1183 Symbol colours = new Symbol(); 1184 Symbol ss = new Symbol(); 1185 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1186 colours.add(new Instr(Form.N1, ss)); 1187 ss = new Symbol(); 1188 Path2D.Double p = new Path2D.Double(); p.moveTo(14,-26); p.lineTo(20,-12); p.lineTo(8,-12); p.closePath(); 1189 ss.add(new Instr(Form.PGON, p)); 1190 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1191 ss.add(new Instr(Form.LINE, new Line2D.Double(14,-16,14,25))); 1192 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1193 colours.add(new Instr(Form.N2, ss)); 1194 NoticeBktsm.add(new Instr(Form.COLR, colours)); 1195 } 1196 public static final Symbol NoticeBktmr = new Symbol(); 1197 static { 1198 NoticeBktmr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1199 Symbol colours = new Symbol(); 1200 Symbol ss = new Symbol(); 1201 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1202 colours.add(new Instr(Form.N1, ss)); 1203 ss = new Symbol(); 1204 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-26); p.lineTo(-6,-12); p.lineTo(6,-12); p.closePath(); 1205 ss.add(new Instr(Form.PGON, p)); 1206 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1207 ss.add(new Instr(Form.LINE, new Line2D.Double(0,-16,0,25))); 1208 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1209 colours.add(new Instr(Form.N2, ss)); 1210 NoticeBktmr.add(new Instr(Form.COLR, colours)); 1211 } 1212 public static final Symbol NoticeBcrtp = new Symbol(); 1213 static { 1214 NoticeBcrtp.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1215 Symbol colours = new Symbol(); 1216 Symbol ss = new Symbol(); 1217 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1218 colours.add(new Instr(Form.N1, ss)); 1219 ss = new Symbol(); 1220 Path2D.Double p = new Path2D.Double(); p.moveTo(-14,-26); p.lineTo(-20,-12); p.lineTo(-8,-12); p.closePath(); 1221 ss.add(new Instr(Form.PGON, p)); 1222 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1223 p = new Path2D.Double(); p.moveTo(-14,-16); p.lineTo(-14,0); p.lineTo(14,10); p.lineTo(14,25); 1224 ss.add(new Instr(Form.PLIN, p)); 1225 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1226 colours.add(new Instr(Form.N2, ss)); 1227 NoticeBcrtp.add(new Instr(Form.COLR, colours)); 1228 } 1229 public static final Symbol NoticeBcrts = new Symbol(); 1230 static { 1231 NoticeBcrts.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1232 Symbol colours = new Symbol(); 1233 Symbol ss = new Symbol(); 1234 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1235 colours.add(new Instr(Form.N1, ss)); 1236 ss = new Symbol(); 1237 Path2D.Double p = new Path2D.Double(); p.moveTo(14,-26); p.lineTo(20,-12); p.lineTo(8,-12); p.closePath(); 1238 ss.add(new Instr(Form.PGON, p)); 1239 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1240 p = new Path2D.Double(); p.moveTo(14,-16); p.lineTo(14,0); p.lineTo(-14,10); p.lineTo(-14,25); 1241 ss.add(new Instr(Form.PLIN, p)); 1242 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1243 colours.add(new Instr(Form.N2, ss)); 1244 NoticeBcrts.add(new Instr(Form.COLR, colours)); 1245 } 1246 public static final Symbol NoticeBtrbm = new Symbol(); 1247 static { 1248 NoticeBtrbm.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1249 Symbol colours = new Symbol(); 1250 Symbol ss = new Symbol(); 1251 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1252 colours.add(new Instr(Form.N1, ss)); 1253 ss = new Symbol(); 1254 ss.add(new Instr(Form.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1255 ss.add(new Instr(Form.LINE, new Line2D.Double(0,-25,0,25))); 1256 ss.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1257 ss.add(new Instr(Form.LINE, new Line2D.Double(-20,0,20,0))); 1258 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1259 colours.add(new Instr(Form.N2, ss)); 1260 NoticeBtrbm.add(new Instr(Form.COLR, colours)); 1261 } 1262 public static final Symbol NoticeBrspd = new Symbol(); 1263 static { 1264 NoticeBrspd.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1265 Symbol colours = new Symbol(); 1266 Symbol ss = new Symbol(); 1267 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1268 colours.add(new Instr(Form.N1, ss)); 1269 ss = new Symbol(); 1270 ss.add(new Instr(Form.TEXT, new Caption("R", new Font("Arial", Font.BOLD, 60), null, new Delta(Handle.CC, null)))); 1271 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1272 colours.add(new Instr(Form.N2, ss)); 1273 NoticeBrspd.add(new Instr(Form.COLR, colours)); 1274 } 1275 static final Symbol NoticePBwral = new Symbol(); 1276 static { 1277 NoticePBwral.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1278 NoticePBwral.add(new Instr(Form.FILL, new Color(0xffff00))); 1279 Path2D.Double p = new Path2D.Double(); p.moveTo(-20,-25); p.lineTo(-8,-5); p.lineTo(-8,25); p.lineTo(8,25); p.lineTo(8,-5); 1280 p.lineTo(20,-25); p.lineTo(5,-25); p.lineTo(-5,-10); p.lineTo(-15,-25); p.closePath(); 1281 NoticePBwral.add(new Instr(Form.PGON, p)); 1282 } 1283 public static final Symbol NoticeBwral = new Symbol(); 1284 static { 1285 NoticeBwral.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1286 NoticeBwral.add(new Instr(Form.FILL, Color.black)); 1287 NoticeBwral.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1288 NoticeBwral.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticePBwral, 1.0, 0, 0, null, null))); 1289 } 1290 public static final Symbol NoticeBwlar = new Symbol(); 1291 static { 1292 NoticeBwlar.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1293 NoticeBwlar.add(new Instr(Form.FILL, Color.black)); 1294 NoticeBwlar.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4))); 1295 NoticeBwlar.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticePBwral, 1.0, 0, 0, null, new Delta(Handle.CC, AffineTransform.getScaleInstance(-1, 1))))); 1296 } 1297 public static final Symbol NoticeBoptr = new Symbol(); 1298 static { 1299 NoticeBoptr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1300 NoticeBoptr.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null))); 1301 NoticeBoptr.add(new Instr(Form.FILL, new Color(0x00a000))); 1302 NoticeBoptr.add(new Instr(Form.RSHP, new Rectangle2D.Double(-20,-20,40,40))); 1303 } 1304 public static final Symbol NoticeBoptl = new Symbol(); 1305 static { 1306 NoticeBoptl.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1307 NoticeBoptl.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null))); 1308 NoticeBoptl.add(new Instr(Form.FILL, new Color(0xf00000))); 1309 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-20); p.lineTo(-20,20); p.lineTo(20,20); p.closePath(); 1310 NoticeBoptl.add(new Instr(Form.PGON, p)); 1311 } 1312 public static final EnumMap<CatNMK, Symbol> NmkBniwr = new EnumMap<>(CatNMK.class); 1313 static { 1314 NmkBniwr.put(CatNMK.NMK_NANK, NoticeBnank); NmkBniwr.put(CatNMK.NMK_LMHR, NoticeBlmhr); NmkBniwr.put(CatNMK.NMK_OPTR, NoticeBoptr); NmkBniwr.put(CatNMK.NMK_OPTL, NoticeBoptl); 1315 NmkBniwr.put(CatNMK.NMK_WRAL, NoticeBwral); NmkBniwr.put(CatNMK.NMK_WLAR, NoticeBwlar); NmkBniwr.put(CatNMK.NMK_KTPM, NoticeBktpm); NmkBniwr.put(CatNMK.NMK_KTSM, NoticeBktsm); 1316 NmkBniwr.put(CatNMK.NMK_KTMR, NoticeBktmr); NmkBniwr.put(CatNMK.NMK_CRTP, NoticeBcrtp); NmkBniwr.put(CatNMK.NMK_CRTS, NoticeBcrts); NmkBniwr.put(CatNMK.NMK_TRBM, NoticeBtrbm); 1317 NmkBniwr.put(CatNMK.NMK_RSPD, NoticeBrspd); 1318 } 1319 public static final Symbol NoticePwralL = new Symbol(); 1320 static { 1321 NoticePwralL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1322 NoticePwralL.add(new Instr(Form.FILL, Color.black)); 1323 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,30); p.lineTo(30,30); p.closePath(); 1324 NoticePwralL.add(new Instr(Form.PGON, p)); 1325 NoticePwralL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticePBwral, 1.0, 0, 0, null, new Delta(Handle.TC, AffineTransform.getScaleInstance(0.5, 0.5))))); 1326 } 1327 public static final Symbol NoticePwralR = new Symbol(); 1328 static { 1329 NoticePwralR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1330 NoticePwralR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBwral, 1.0, 0, 0, null, null))); 1331 } 1332 public static final Symbol NoticePwlarL = new Symbol(); 1333 static { 1334 NoticePwlarL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1335 NoticePwlarL.add(new Instr(Form.FILL, Color.black)); 1336 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,30); p.lineTo(30,30); p.closePath(); 1337 NoticePwlarL.add(new Instr(Form.PGON, p)); 1338 NoticePwlarL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticePBwral, 1.0, 0, 0, null, new Delta(Handle.TC, AffineTransform.getScaleInstance(-0.5, 0.5))))); 1339 } 1340 public static final Symbol NoticePwlarR = new Symbol(); 1341 static { 1342 NoticePwlarR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1343 NoticePwlarR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBwlar, 1.0, 0, 0, null, null))); 1344 } 1345 public static final Symbol NoticePktmR = new Symbol(); 1346 static { 1347 NoticePktmR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1348 NoticePktmR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null))); 1349 NoticePktmR.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1350 NoticePktmR.add(new Instr(Form.FILL, new Color(0x00d400))); 1351 NoticePktmR.add(new Instr(Form.RECT, new Rectangle2D.Double(-20,-20,40,40))); 1352 } 1353 public static final Symbol NoticePktmL = new Symbol(); 1354 static { 1355 NoticePktmL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1356 NoticePktmL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeKT, 1.0, 0, 0, null, null))); 1357 NoticePktmL.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1358 NoticePktmL.add(new Instr(Form.FILL, new Color(0xd40000))); 1359 NoticePktmL.add(new Instr(Form.RECT, new Rectangle2D.Double(-12,2,24,24))); 1360 } 1361 public static final Symbol NoticePktmrL = new Symbol(); 1362 static { 1363 NoticePktmrL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1364 NoticePktmrL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeKT, 1.0, 0, 0, null, null))); 1365 NoticePktmrL.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1366 NoticePktmrL.add(new Instr(Form.FILL, new Color(0xd40000))); 1367 NoticePktmrL.add(new Instr(Form.LINE, new Line2D.Double(-12,2,-12,28))); 1368 NoticePktmrL.add(new Instr(Form.LINE, new Line2D.Double(12,2,12,28))); 1369 NoticePktmrL.add(new Instr(Form.LINE, new Line2D.Double(-12,15,12,15))); 1370 } 1371 public static final Symbol NoticePktmrR = new Symbol(); 1372 static { 1373 NoticePktmrR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1374 NoticePktmrR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null))); 1375 NoticePktmrR.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1376 NoticePktmrR.add(new Instr(Form.FILL, new Color(0x00d400))); 1377 NoticePktmrR.add(new Instr(Form.LINE, new Line2D.Double(-15,-20,-15,20))); 1378 NoticePktmrR.add(new Instr(Form.LINE, new Line2D.Double(15,-20,15,20))); 1379 NoticePktmrR.add(new Instr(Form.LINE, new Line2D.Double(-15,0,15,0))); 1380 } 1381 public static final Symbol NoticePcrL = new Symbol(); 1382 static { 1383 NoticePcrL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1384 NoticePcrL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1385 NoticePcrL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null))); 1386 NoticePcrL.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1387 NoticePcrL.add(new Instr(Form.FILL, new Color(0xd40000))); 1388 NoticePcrL.add(new Instr(Form.LINE, new Line2D.Double(-12,-12,12,12))); 1389 NoticePcrL.add(new Instr(Form.LINE, new Line2D.Double(-12,12,12,-12))); 1390 } 1391 public static final Symbol NoticePcrR = new Symbol(); 1392 static { 1393 NoticePcrR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1394 NoticePcrR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null))); 1395 NoticePcrR.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1396 NoticePcrR.add(new Instr(Form.FILL, new Color(0x00d400))); 1397 NoticePcrR.add(new Instr(Form.LINE, new Line2D.Double(-12,-12,12,12))); 1398 NoticePcrR.add(new Instr(Form.LINE, new Line2D.Double(-12,12,12,-12))); 1399 } 1400 static final Symbol NoticeRphib = new Symbol(); 1401 static { 1402 NoticeRphib.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1403 NoticeRphib.add(new Instr(Form.FILL, new Color(0xd40000))); 1404 NoticeRphib.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30,-30,60,60))); 1405 NoticeRphib.add(new Instr(Form.LINE, new Line2D.Double(-20,-20,20,20))); 1406 } 1407 static final Symbol NoticeRinfo = new Symbol(); 1408 static { 1409 NoticeRinfo.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1410 NoticeRinfo.add(new Instr(Form.FILL, new Color(0xd40000))); 1411 NoticeRinfo.add(new Instr(Form.RECT, new Rectangle2D.Double(-30,-30,60,60))); 1412 } 1413 public static final Symbol NoticeRnpas = new Symbol(); 1414 static { 1415 NoticeRnpas.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1416 NoticeRnpas.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null))); 1417 NoticeRnpas.add(new Instr(Form.FILL, Color.black)); 1418 Path2D.Double p = new Path2D.Double(); p.moveTo(-10,-15); p.lineTo(-10,8); p.lineTo(-6,8); p.lineTo(-12.5,16); p.lineTo(-19,8); p.lineTo(-15,8); p.lineTo(-15,-15); 1419 p.closePath(); p.moveTo(10,15); p.lineTo(10,-8); p.lineTo(6,-8); p.lineTo(12.5,-16); p.lineTo(19,-8); p.lineTo(15,-8); p.lineTo(15,15); p.closePath(); 1420 NoticeRnpas.add(new Instr(Form.PGON, p)); 1421 } 1422 public static final Symbol NoticeRnank = new Symbol(); 1423 static { 1424 NoticeRnank.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1425 NoticeRnank.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null))); 1426 NoticeRnank.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, new Scheme(Color.black), null))); 1427 } 1428 public static final Symbol NoticeRnwsh = new Symbol(); 1429 static { 1430 NoticeRnwsh.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1431 NoticeRnwsh.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null))); 1432 NoticeRnwsh.add(new Instr(Form.FILL, Color.black)); 1433 Path2D.Double p = new Path2D.Double(); p.moveTo(-23,10); p.curveTo(-11,10,-12,4,0,4); p.curveTo(12,4,11,10,23,10); 1434 p.moveTo(-23,-3); p.curveTo(-11,-3,-12,-9,0,-9); p.curveTo(12,-9,11,-3,23,-3); 1435 NoticeRnwsh.add(new Instr(Form.PLIN, p)); 1436 } 1437 public static final Symbol NoticeRlmhr = new Symbol(); 1438 static { 1439 NoticeRlmhr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1440 NoticeRlmhr.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRinfo, 1.0, 0, 0, null, null))); 1441 NoticeRlmhr.add(new Instr(Form.FILL, Color.black)); 1442 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-10); p.lineTo(27,-27); p.lineTo(-27,-27); p.closePath(); 1443 NoticeRlmhr.add(new Instr(Form.PGON, p)); 1444 } 1445 public static final Symbol NoticeRtrna = new Symbol(); 1446 static { 1447 NoticeRtrna.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1448 NoticeRtrna.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null))); 1449 NoticeRtrna.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1450 NoticeRtrna.add(new Instr(Form.EARC, new Arc2D.Double(-15.0,-15.0,30.0,30.0,315.0,-280.0,Arc2D.OPEN))); 1451 Path2D.Double p = new Path2D.Double(); p.moveTo(18.8,-2.0); p.lineTo(15.8,-13.2); p.lineTo(7.5,-5.0); p.closePath(); 1452 NoticeRtrna.add(new Instr(Form.PGON, p)); 1453 } 1454 public static final Symbol NoticeRncps = new Symbol(); 1455 static { 1456 NoticeRncps.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1457 NoticeRncps.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null))); 1458 NoticeRncps.add(new Instr(Form.FILL, Color.black)); 1459 Path2D.Double p = new Path2D.Double(); p.moveTo(-10,0); p.lineTo(-10,8); p.lineTo(-6,8); p.lineTo(-12.5,16); p.lineTo(-19,8); p.lineTo(-15,8); p.lineTo(-15,0); 1460 p.closePath(); p.moveTo(10,0); p.lineTo(10,-8); p.lineTo(6,-8); p.lineTo(12.5,-16); p.lineTo(19,-8); p.lineTo(15,-8); p.lineTo(15,0); p.closePath(); 1461 NoticeRncps.add(new Instr(Form.PGON, p)); 1462 } 1463 public static final Symbol NoticeRnsmc = new Symbol(); 1464 static { 1465 NoticeRnsmc.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1466 NoticeRnsmc.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null))); 1467 NoticeRnsmc.add(new Instr(Form.FILL, Color.black)); 1468 Path2D.Double p = new Path2D.Double(); p.moveTo(-15,5); p.lineTo(15,5); p.lineTo(25,-10); p.lineTo(12,-5); p.lineTo(-18,-1); p.closePath(); 1469 p.moveTo(-23,2); p.lineTo(-21,10); p.lineTo(-18,8); p.lineTo(-20,0); p.closePath(); 1470 NoticeRnsmc.add(new Instr(Form.PGON, p)); 1471 } 1472 public static final Symbol NoticeRattn = new Symbol(); 1473 static { 1474 NoticeRattn.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1475 NoticeRattn.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRinfo, 1.0, 0, 0, null, null))); 1476 NoticeRattn.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1477 NoticeRattn.add(new Instr(Form.FILL, Color.black)); 1478 NoticeRattn.add(new Instr(Form.LINE, new Line2D.Double(0,-20,0,10))); 1479 NoticeRattn.add(new Instr(Form.LINE, new Line2D.Double(0,15,0,20))); 1480 } 1481 public static final Symbol NoticeRfwcr = new Symbol(); 1482 static { 1483 NoticeRfwcr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1484 NoticeRfwcr.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRinfo, 1.0, 0, 0, null, null))); 1485 NoticeRfwcr.add(new Instr(Form.FILL, Color.black)); 1486 Path2D.Double p = new Path2D.Double(); p.moveTo(0,-25); p.lineTo(-8,-15); p.lineTo(-8,5); p.lineTo(-20,5); p.lineTo(-20,15); p.lineTo(-8,15); p.lineTo(-8,25); 1487 p.lineTo(8,25); p.lineTo(8,15); p.lineTo(20,15); p.lineTo(20,5); p.lineTo(8,5); p.lineTo(8,-15); p.closePath(); 1488 NoticeRfwcr.add(new Instr(Form.PGON, p)); 1489 } 1490 public static final Symbol NoticeRship = new Symbol(); 1491 static { 1492 NoticeRship.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60))); 1493 NoticeRship.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null))); 1494 NoticeRship.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 1495 NoticeRship.add(new Instr(Form.FILL, Color.black)); 1496 NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(-12,-12,10,10))); 1497 NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(-12,-8,-8,-12))); 1498 NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(12,-12,-10,10))); 1499 NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(12,-8,8,-12))); 1500 NoticeRship.add(new Instr(Form.EARC, new Arc2D.Double(-17,-13,30,30,185,80,Arc2D.OPEN))); 1501 NoticeRship.add(new Instr(Form.EARC, new Arc2D.Double(-13,-13,30,30,275,80,Arc2D.OPEN))); 1502 } 1503 1504 public static final EnumMap<CatNMK, Symbol> NmkPpwbcl = new EnumMap<>(CatNMK.class); 1505 static { 1506 NmkPpwbcl.put(CatNMK.NMK_WRAL, NoticePwralL); NmkPpwbcl.put(CatNMK.NMK_WLAR, NoticePwlarL); NmkPpwbcl.put(CatNMK.NMK_KTPM, NoticePktmL); NmkPpwbcl.put(CatNMK.NMK_KTSM, NoticePktmL); 1507 NmkPpwbcl.put(CatNMK.NMK_KTMR, NoticePktmrL); NmkPpwbcl.put(CatNMK.NMK_CRTP, NoticePcrL); NmkPpwbcl.put(CatNMK.NMK_CRTS, NoticePcrL); 1508 } 1509 1510 public static final EnumMap<CatNMK, Symbol> NmkPpwbcr = new EnumMap<>(CatNMK.class); 1511 static { 1512 NmkPpwbcr.put(CatNMK.NMK_WRAL, NoticePwralR); NmkPpwbcr.put(CatNMK.NMK_WLAR, NoticePwlarR); NmkPpwbcr.put(CatNMK.NMK_KTPM, NoticePktmR); NmkPpwbcr.put(CatNMK.NMK_KTSM, NoticePktmR); 1513 NmkPpwbcr.put(CatNMK.NMK_KTMR, NoticePktmrR); NmkPpwbcr.put(CatNMK.NMK_CRTP, NoticePcrR); NmkPpwbcr.put(CatNMK.NMK_CRTS, NoticePcrR); 1514 } 1515 1516 public static final EnumMap<CatNMK, Symbol> NmkRiwr = new EnumMap<>(CatNMK.class); 1517 static { 1518 NmkRiwr.put(CatNMK.NMK_NPAS, NoticeRnpas); NmkRiwr.put(CatNMK.NMK_NANK, NoticeRnank); NmkRiwr.put(CatNMK.NMK_NWSH, NoticeRnwsh); NmkRiwr.put(CatNMK.NMK_LMHR, NoticeRlmhr); NmkRiwr.put(CatNMK.NMK_TRNA, NoticeRtrna); 1519 NmkRiwr.put(CatNMK.NMK_NCPS, NoticeRncps); NmkRiwr.put(CatNMK.NMK_NSMC, NoticeRnsmc); NmkRiwr.put(CatNMK.NMK_ATTN, NoticeRattn); NmkRiwr.put(CatNMK.NMK_FWCR, NoticeRfwcr); NmkRiwr.put(CatNMK.NMK_SHIP, NoticeRship); 1520 } 1521 1522 public static Scheme getScheme(MarSYS sys, BnkWTW bank) { 1523 ArrayList<Color> colours = new ArrayList<>(); 1524 Scheme scheme = new Scheme(colours); 1525 switch (sys) { 1526 case SYS_BNWR: 1527 case SYS_BWR2: 1528 switch (bank) { 1529 case BWW_LEFT: 1530 colours.add(Color.white); 1531 colours.add(new Color(0xf00000)); 1532 break; 1533 case BWW_RGHT: 1534 colours.add(Color.white); 1535 colours.add(new Color(0x00a000)); 1536 break; 1537 default: 1538 colours.add(new Color(0xff8040)); 1539 colours.add(Color.black); 1540 break; 1541 } 1542 break; 1543 default: 1544 break; 1545 } 1546 return scheme; 1547 } 1548 1549 public static Symbol getNotice(CatNMK cat, MarSYS sys, BnkWTW bank) { 1550 Symbol symbol = null; 1551 switch (sys) { 1552 case SYS_CEVN: 1553 symbol = NmkCevni.get(cat); 1554 break; 1555 case SYS_BNWR: 1556 case SYS_BWR2: 1557 symbol = NmkBniwr.get(cat); 1558 break; 1559 case SYS_PPWB: 1560 switch (bank) { 1561 case BWW_LEFT: 1562 symbol = NmkPpwbcl.get(cat); 1563 break; 1564 case BWW_RGHT: 1565 symbol = NmkPpwbcr.get(cat); 1566 break; 1567 default: 1568 break; 1569 } 1570 break; 1571 case SYS_RIWR: 1572 symbol = NmkRiwr.get(cat); 1573 break; 1574 default: 1575 break; 1576 } 1577 return symbol; 1578 } 38 // CHECKSTYLE.OFF: LineLength 39 private static final Symbol Bollard = new Symbol(); 40 static { 41 Path2D.Double p = new Path2D.Double(); p.moveTo(20, 21); p.lineTo(20, 16.5); p.lineTo(11.6, 16.5); p.quadTo(9.1, 9.6, 8.3, 2.0); p.lineTo(-8.0, -0.3); p.quadTo(-8.6, 9.0, -11.3, 16.5); 42 p.lineTo(-23.5, 16.5); p.lineTo(-23.5, 21.0); p.closePath(); p.moveTo(23.8, 3.0); p.lineTo(-10.7, -1.8); p.curveTo(-13.1, -2.2, -12.8, -6.0, -10.2, -5.8); p.lineTo(23.8, -1.1); 43 p.closePath(); p.moveTo(8.4, -4.3); p.curveTo(9.0, -9.3, 9.0, -11.4, 11.2, -13.0); p.curveTo(12.8, -15.0, 12.8, -16.7, 11.0, -18.6); p.curveTo(4.0, -22.2, -4.0, -22.2, -11.0, -18.6); 44 p.curveTo(-12.8, -16.7, -12.8, -15.0, -11.2, -13.0); p.curveTo(-9.0, -11.3, -8.7, -9.5, -8.4, -6.5); p.closePath(); 45 Bollard.add(new Instr(Form.PGON, p)); 46 } 47 48 private static final Symbol Motor = new Symbol(); 49 static { 50 Path2D.Double p = new Path2D.Double(); p.moveTo(-5.0, 4.3); p.curveTo(-3.7, 5.5, -1.8, 5.7, -0.2, 4.9); p.curveTo(1.3, 8.7, 4.6, 10.9, 8.4, 10.9); p.curveTo(14.0, 10.9, 17.5, 6.3, 17.5, 2.0); 51 p.curveTo(17.5, -0.7, 16.1, -3.2, 14.5, -3.2); p.curveTo(12.5, -3.2, 11.7, 0.8, 2.5, 1.1); p.curveTo(2.5, -1.2, 1.6, -2.2, 0.6, -3.0); p.curveTo(3.2, -5.6, 4.0, -12.6, -1.0, -16.1); 52 p.curveTo(-5.3, -19.2, -11.6, -18.3, -13.7, -13.7); p.curveTo(-14.3, -12.2, -14.0, -11.2, -12.5, -10.6); p.curveTo(-8.6, -9.6, -5.3, -6.0, -4.0, -3.4); p.curveTo(-5.4, -2.6, -6.2, -2.0, -6.2, 0.2); 53 p.curveTo(-12.8, -1.0, -17.5, 3.7, -17.5, 9.3); p.curveTo(-17.5, 14.7, -12.6, 18.8, -8.0, 17.6); p.curveTo(-7.0, 17.2, -6.6, 16.2, -7.2, 14.6); p.curveTo(-7.7, 12.4, -7.0, 7.7, -5.0, 4.3); p.closePath(); 54 Motor.add(new Instr(Form.PGON, p)); 55 } 56 57 private static final Symbol Rowboat = new Symbol(); 58 static { 59 Path2D.Double p = new Path2D.Double(); p.moveTo(-17.5, -2.0); p.lineTo(17.5, -2.0); p.lineTo(15.0, 6.0); p.lineTo(-11.0, 6.0); p.closePath(); 60 Rowboat.add(new Instr(Form.PGON, p)); 61 Rowboat.add(new Instr(Form.RSHP, new Ellipse2D.Double(-6, -17.5, 6, 6))); 62 Rowboat.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 63 Rowboat.add(new Instr(Form.LINE, new Line2D.Double(-5.5, -9, -8, 0))); 64 Rowboat.add(new Instr(Form.LINE, new Line2D.Double(-5.0, 10.0, -7.5, 14.0))); 65 Rowboat.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 66 Rowboat.add(new Instr(Form.LINE, new Line2D.Double(-5.5, -9, 7, -6.5))); 67 Rowboat.add(new Instr(Form.LINE, new Line2D.Double(7.3, -7.8, -5.0, 10.0))); 68 } 69 70 private static final Symbol Sailboard = new Symbol(); 71 static { 72 Path2D.Double p = new Path2D.Double(); p.moveTo(-6.0, 19.0); p.quadTo(-4.0, -5, 1.5, -20.0); p.quadTo(14, -7, 15.5, 6.5); p.quadTo(7, 17, -6.0, 19.0); p.closePath(); 73 Sailboard.add(new Instr(Form.PGON, p)); 74 Sailboard.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 75 Sailboard.add(new Instr(Form.LINE, new Line2D.Double(-2, 20, -10, 20))); 76 Sailboard.add(new Instr(Form.LINE, new Line2D.Double(-13, 2.5, -3, 2.5))); 77 Sailboard.add(new Instr(Form.RSHP, new Ellipse2D.Double(-15, -4, 5, 5))); 78 Sailboard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 79 p = new Path2D.Double(); p.moveTo(-13, 2.5); p.lineTo(-12, 6.0); p.lineTo(-12, 9.5); 80 Sailboard.add(new Instr(Form.PLIN, p)); 81 Sailboard.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 82 p = new Path2D.Double(); p.moveTo(-12, 9.5); p.lineTo(-7.5, 13.0); p.lineTo(-6.0, 19.0); 83 Sailboard.add(new Instr(Form.PLIN, p)); 84 } 85 86 private static final Symbol Sailboat = new Symbol(); 87 static { 88 Path2D.Double p = new Path2D.Double(); p.moveTo(3.75, -20.5); p.lineTo(3.75, 8.5); p.lineTo(-19.5, 8.5); p.closePath(); 89 Sailboat.add(new Instr(Form.PGON, p)); 90 p = new Path2D.Double(); p.moveTo(-19.5, 12.0); p.lineTo(19.5, 12.0); p.lineTo(13.0, 20.5); p.lineTo(-16.0, 20.5); p.closePath(); 91 Sailboat.add(new Instr(Form.PGON, p)); 92 } 93 94 private static final Symbol Slipway = new Symbol(); 95 static { 96 Path2D.Double p = new Path2D.Double(); p.moveTo(-17, -5.5); p.lineTo(-13.5, 0); p.lineTo(4, -1.5); p.quadTo(18, -5, 20, -13.5); p.closePath(); 97 p.moveTo(-14, 7); p.lineTo(-14, 11); p.lineTo(20, 11); p.lineTo(20, 2); p.closePath(); 98 Slipway.add(new Instr(Form.PGON, p)); 99 Slipway.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 100 Slipway.add(new Instr(Form.LINE, new Line2D.Double(-14, 3, 20, -2.5))); 101 Slipway.add(new Instr(Form.STRK, new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 102 Slipway.add(new Instr(Form.ELPS, new Ellipse2D.Double(1, 1.5, 3, 3))); 103 p = new Path2D.Double(); p.moveTo(-21, 8.5); p.curveTo(-17.5, 5, -17.5, 12, -13, 7.2); 104 Slipway.add(new Instr(Form.PLIN, p)); 105 } 106 107 private static final Symbol Speedboat = new Symbol(); 108 static { 109 Speedboat.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 110 Speedboat.add(new Instr(Form.LINE, new Line2D.Double(-21, 0, -17, -1))); 111 Path2D.Double p = new Path2D.Double(); p.moveTo(-17.5, 8.5); p.curveTo(-10.5, 13, -2.5, 2, 4, 6); p.curveTo(12, 2, 11.5, 9.5, 20, 6); 112 Speedboat.add(new Instr(Form.PLIN, p)); 113 p = new Path2D.Double(); p.moveTo(-18.5, 1.5); p.lineTo(-16, 6); p.curveTo(-9, 9.0, -3.5, -2.0, 4.5, 3.5); p.lineTo(14.5, 0); p.quadTo(19, -3, 19.5, -9); 114 p.lineTo(9.5, -6); p.lineTo(6.5, -8); p.lineTo(2.5, -4); p.closePath(); 115 Speedboat.add(new Instr(Form.PGON, p)); 116 Speedboat.add(new Instr(Form.RSHP, new Ellipse2D.Double(-1.5, -13, 5, 5))); 117 Speedboat.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 118 Speedboat.add(new Instr(Form.LINE, new Line2D.Double(-2, -7, -5, 0))); 119 Speedboat.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 120 Speedboat.add(new Instr(Form.LINE, new Line2D.Double(-2, -7, 5, -5))); 121 } 122 123 private static final Symbol Turn = new Symbol(); 124 static { 125 Turn.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 126 Turn.add(new Instr(Form.EARC, new Arc2D.Double(-9.0, -9.0, 18.0, 18.0, 270.0, 230.0, Arc2D.OPEN))); 127 Turn.add(new Instr(Form.EARC, new Arc2D.Double(-20.0, -20.0, 40.0, 40.0, 315.0, -280.0, Arc2D.OPEN))); 128 Path2D.Double p = new Path2D.Double(); p.moveTo(21.8, -7.0); p.lineTo(18.8, -18.2); p.lineTo(10.5, -10.0); p.closePath(); 129 p.moveTo(-12.9, 0.7); p.lineTo(-1.7, -2.3); p.lineTo(-9.9, -10.5); p.closePath(); 130 Turn.add(new Instr(Form.PGON, p)); 131 } 132 133 private static final Symbol Waterbike = new Symbol(); 134 static { 135 Path2D.Double p = new Path2D.Double(); p.moveTo(-17.5, 13); p.curveTo(-10.5, 17.5, -2.5, 6.5, 4, 10.5); p.curveTo(12, 6.5, 11.5, 14, 20, 10.5); 136 Waterbike.add(new Instr(Form.PLIN, p)); 137 p = new Path2D.Double(); p.moveTo(-16.5, 9.5); p.lineTo(-16, 10.5); p.curveTo(-9, 13.5, -3.5, 2.5, 4.5, 8); p.quadTo(15, 4, 19.5, -4); p.closePath(); 138 p.moveTo(19.5, -5); p.lineTo(1, -5); p.lineTo(-4.5, -10); p.lineTo(-5.5, -10); p.lineTo(2, -2); p.lineTo(-15, 4); p.lineTo(-16, 8); p.closePath(); 139 Waterbike.add(new Instr(Form.PGON, p)); 140 Waterbike.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 141 p = new Path2D.Double(); p.moveTo(-7, 1); p.lineTo(-7.5, -1.5); p.lineTo(-12.5, -3.5); p.lineTo(-11.5, -10.5); 142 Waterbike.add(new Instr(Form.PLIN, p)); 143 Waterbike.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 144 Waterbike.add(new Instr(Form.LINE, new Line2D.Double(-11.5, -10.5, -3, -8.5))); 145 Waterbike.add(new Instr(Form.RSHP, new Ellipse2D.Double(-11.5, -18, 5, 5))); 146 } 147 148 private static final Symbol Waterski = new Symbol(); 149 static { 150 Waterski.add(new Instr(Form.RSHP, new Ellipse2D.Double(12, -18, 6, 6))); 151 Waterski.add(new Instr(Form.STRK, new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 152 Waterski.add(new Instr(Form.LINE, new Line2D.Double(-18, -6, 0, -6))); 153 Waterski.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 154 Path2D.Double p = new Path2D.Double(); p.moveTo(6.5, 17.5); p.lineTo(-13, 14.5); p.curveTo(-15, 14.25, -16.0, 13.6, -17.5, 12.0); 155 Waterski.add(new Instr(Form.PLIN, p)); 156 Waterski.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND))); 157 p = new Path2D.Double(); p.moveTo(-1.5, -4.0); p.lineTo(14, -7.5); p.lineTo(9.5, 3.5); p.lineTo(2.0, 6.0); p.lineTo(-4.4, 15.8); 158 Waterski.add(new Instr(Form.PLIN, p)); 159 } 160 161 private static final Symbol NoticeA = new Symbol(); 162 static { 163 NoticeA.add(new Instr(Form.FILL, new Color(0xe80000))); 164 NoticeA.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 165 NoticeA.add(new Instr(Form.FILL, Color.white)); 166 NoticeA.add(new Instr(Form.RSHP, new Rectangle2D.Double(-21, -21, 42, 42))); 167 NoticeA.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 168 NoticeA.add(new Instr(Form.FILL, new Color(0xe80000))); 169 NoticeA.add(new Instr(Form.LINE, new Line2D.Double(-25, -25, 25, 25))); 170 NoticeA.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 171 NoticeA.add(new Instr(Form.FILL, Color.black)); 172 NoticeA.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 173 } 174 175 private static final Symbol NoticeB = new Symbol(); 176 static { 177 NoticeB.add(new Instr(Form.FILL, new Color(0xe80000))); 178 NoticeB.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 179 NoticeB.add(new Instr(Form.FILL, Color.white)); 180 NoticeB.add(new Instr(Form.RSHP, new Rectangle2D.Double(-21, -21, 42, 42))); 181 NoticeB.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 182 NoticeB.add(new Instr(Form.FILL, Color.black)); 183 NoticeB.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 184 } 185 186 private static final Symbol NoticeE = new Symbol(); 187 static { 188 NoticeE.add(new Instr(Form.FILL, new Color(0x0000a0))); 189 NoticeE.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 190 NoticeE.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 191 NoticeE.add(new Instr(Form.FILL, Color.black)); 192 NoticeE.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 193 NoticeE.add(new Instr(Form.FILL, Color.white)); 194 } 195 196 public static final Symbol Notice = new Symbol(); 197 static { 198 Notice.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 199 Notice.add(new Instr(Form.FILL, new Color(0xe80000))); 200 Notice.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 201 Notice.add(new Instr(Form.FILL, new Color(0x0000a0))); 202 Notice.add(new Instr(Form.RSHP, new Rectangle2D.Double(-21, -21, 42, 42))); 203 Notice.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 204 Notice.add(new Instr(Form.FILL, Color.black)); 205 Notice.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 206 } 207 208 public static final Symbol NoticeA1 = new Symbol(); 209 static { 210 NoticeA1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 211 NoticeA1.add(new Instr(Form.FILL, new Color(0xe80000))); 212 NoticeA1.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 213 NoticeA1.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 214 NoticeA1.add(new Instr(Form.FILL, Color.white)); 215 NoticeA1.add(new Instr(Form.RSHP, new Rectangle2D.Double(-30, -10, 60, 20))); 216 NoticeA1.add(new Instr(Form.FILL, Color.black)); 217 NoticeA1.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 218 } 219 220 public static final Symbol NoticeA1a = new Symbol(); 221 static { 222 NoticeA1a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 223 NoticeA1a.add(new Instr(Form.FILL, new Color(0xe80000))); 224 NoticeA1a.add(new Instr(Form.RSHP, new Ellipse2D.Double(-30, -30, 60, 60))); 225 NoticeA1a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 226 NoticeA1a.add(new Instr(Form.FILL, Color.white)); 227 NoticeA1a.add(new Instr(Form.RSHP, new Rectangle2D.Double(-29, -10, 58, 20))); 228 NoticeA1a.add(new Instr(Form.FILL, Color.black)); 229 NoticeA1a.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30, -30, 60, 60))); 230 } 231 232 public static final Symbol NoticeA2 = new Symbol(); 233 static { 234 NoticeA2.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 235 NoticeA2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 236 NoticeA2.add(new Instr(Form.FILL, Color.black)); 237 Path2D.Double p = new Path2D.Double(); p.moveTo(-10, 23); p.lineTo(-10, 0); p.lineTo(-6, 0); p.lineTo(-12.5, -8); p.lineTo(-19, 0); p.lineTo(-15, 0); p.lineTo(-15, 23); 238 p.closePath(); p.moveTo(10, 8); p.lineTo(10, -15); p.lineTo(6, -15); p.lineTo(12.5, -23); p.lineTo(19, -15); p.lineTo(15, -15); p.lineTo(15, 8); p.closePath(); 239 NoticeA2.add(new Instr(Form.PGON, p)); 240 } 241 242 public static final Symbol NoticeA3 = new Symbol(); 243 static { 244 NoticeA3.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 245 NoticeA3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA2, 1.0, 0, 0, null, null))); 246 Path2D.Double p = new Path2D.Double(); p.moveTo(-10, 12); p.lineTo(-6, 12); p.lineTo(-12.5, 4); p.lineTo(-19, 12); 247 p.closePath(); p.moveTo(10, -3); p.lineTo(6, -3); p.lineTo(12.5, -11); p.lineTo(19, -3); p.closePath(); 248 NoticeA3.add(new Instr(Form.PGON, p)); 249 } 250 251 public static final Symbol NoticeA4 = new Symbol(); 252 static { 253 NoticeA4.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 254 NoticeA4.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 255 NoticeA4.add(new Instr(Form.FILL, Color.black)); 256 Path2D.Double p = new Path2D.Double(); p.moveTo(-10, -15); p.lineTo(-10, 8); p.lineTo(-6, 8); p.lineTo(-12.5, 16); p.lineTo(-19, 8); p.lineTo(-15, 8); p.lineTo(-15, -15); 257 p.closePath(); p.moveTo(10, 15); p.lineTo(10, -8); p.lineTo(6, -8); p.lineTo(12.5, -16); p.lineTo(19, -8); p.lineTo(15, -8); p.lineTo(15, 15); p.closePath(); 258 NoticeA4.add(new Instr(Form.PGON, p)); 259 } 260 261 public static final Symbol NoticeA4_1 = new Symbol(); 262 static { 263 NoticeA4_1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 264 NoticeA4_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA4, 1.0, 0, 0, null, null))); 265 Path2D.Double p = new Path2D.Double(); p.moveTo(-10, -4); p.lineTo(-6, -4); p.lineTo(-12.5, 4); p.lineTo(-19, -4); 266 p.closePath(); p.moveTo(10, 5); p.lineTo(6, 5); p.lineTo(12.5, -3); p.lineTo(19, 5); p.closePath(); 267 NoticeA4_1.add(new Instr(Form.PGON, p)); 268 } 269 270 public static final Symbol NoticeA5 = new Symbol(); 271 static { 272 NoticeA5.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 273 NoticeA5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 274 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); p.moveTo(-5.3, 14.6); p.lineTo(-5.3, 4.0); p.lineTo(0.0, 4.0); p.curveTo(4.2, 4.0, 7.4, 3.5, 9.4, 0.0); 275 p.curveTo(11.4, -2.8, 11.4, -7.2, 9.4, -10.5); p.curveTo(7.4, -13.6, 4.2, -14.0, 0.0, -14.0); p.lineTo(-11.0, -14.0); p.lineTo(-11.0, 14.6); p.closePath(); 276 p.moveTo(-5.3, -1.0); p.lineTo(0.0, -1.0); p.curveTo(6.5, -1.0, 6.5, -9.0, 0.0, -9.0); p.lineTo(-5.3, -9.0); p.closePath(); 277 NoticeA5.add(new Instr(Form.PGON, p)); 278 } 279 280 public static final Symbol NoticeA5_1 = new Symbol(); 281 static { 282 NoticeA5_1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 283 NoticeA5_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 284 } 285 286 public static final Symbol NoticeA6 = new Symbol(); 287 static { 288 NoticeA6.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 289 NoticeA6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 290 NoticeA6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, new Scheme(Color.black), new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0)))))); 291 } 292 293 public static final Symbol NoticeA7 = new Symbol(); 294 static { 295 NoticeA7.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 296 NoticeA7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 297 NoticeA7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Bollard, 1.0, 0, 0, new Scheme(Color.black), null))); 298 } 299 300 public static final Symbol NoticeA8 = new Symbol(); 301 static { 302 NoticeA8.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 303 NoticeA8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 304 NoticeA8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Turn, 1.0, 0, 0, new Scheme(Color.black), null))); 305 } 306 307 public static final Symbol NoticeA9 = new Symbol(); 308 static { 309 NoticeA9.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 310 NoticeA9.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 311 NoticeA9.add(new Instr(Form.STRK, new BasicStroke(7, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 312 NoticeA9.add(new Instr(Form.FILL, Color.black)); 313 Path2D.Double p = new Path2D.Double(); p.moveTo(-23, 10); p.curveTo(-11, 10, -12, 4, 0, 4); p.curveTo(12, 4, 11, 10, 23, 10); 314 p.moveTo(-23, -3); p.curveTo(-11, -3, -12, -9, 0, -9); p.curveTo(12, -9, 11, -3, 23, -3); 315 NoticeA9.add(new Instr(Form.PLIN, p)); 316 } 317 318 public static final Symbol NoticeA10a = new Symbol(); 319 static { 320 NoticeA10a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 321 NoticeA10a.add(new Instr(Form.FILL, Color.white)); 322 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(30, 0); p.lineTo(0, 30); p.closePath(); 323 NoticeA10a.add(new Instr(Form.PGON, p)); 324 NoticeA10a.add(new Instr(Form.FILL, new Color(0xe80000))); 325 p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(-30, 0); p.lineTo(0, 30); p.closePath(); 326 NoticeA10a.add(new Instr(Form.PGON, p)); 327 NoticeA10a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 328 NoticeA10a.add(new Instr(Form.FILL, Color.black)); 329 p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(-30, 0); p.lineTo(0, 30); p.lineTo(30, 0); p.closePath(); 330 NoticeA10a.add(new Instr(Form.PLIN, p)); 331 } 332 333 public static final Symbol NoticeA10b = new Symbol(); 334 static { 335 NoticeA10b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 336 NoticeA10b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA10a, 1.0, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0)))))); 337 } 338 339 public static final Symbol NoticeA12 = new Symbol(); 340 static { 341 NoticeA12.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 342 NoticeA12.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 343 NoticeA12.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Motor, 1.0, 0, 0, new Scheme(Color.black), null))); 344 } 345 346 public static final Symbol NoticeA13 = new Symbol(); 347 static { 348 NoticeA13.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 349 NoticeA13.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 350 NoticeA13.add(new Instr(Form.TEXT, new Caption("SPORT", new Font("Arial", Font.BOLD, 15), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 5))))); 351 } 352 353 public static final Symbol NoticeA14 = new Symbol(); 354 static { 355 NoticeA14.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 356 NoticeA14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 357 NoticeA14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterski, 1.0, 0, 0, new Scheme(Color.black), null))); 358 } 359 360 public static final Symbol NoticeA15 = new Symbol(); 361 static { 362 NoticeA15.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 363 NoticeA15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 364 NoticeA15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboat, 1.0, 0, 0, new Scheme(Color.black), null))); 365 } 366 367 public static final Symbol NoticeA16 = new Symbol(); 368 static { 369 NoticeA16.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 370 NoticeA16.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 371 NoticeA16.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Rowboat, 1.0, 0, 0, new Scheme(Color.black), null))); 372 } 373 374 public static final Symbol NoticeA17 = new Symbol(); 375 static { 376 NoticeA17.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 377 NoticeA17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 378 NoticeA17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboard, 1.0, 0, 0, new Scheme(Color.black), null))); 379 } 380 381 public static final Symbol NoticeA18 = new Symbol(); 382 static { 383 NoticeA18.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 384 NoticeA18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 385 NoticeA18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Speedboat, 1.0, 0, 0, new Scheme(Color.black), null))); 386 } 387 388 public static final Symbol NoticeA19 = new Symbol(); 389 static { 390 NoticeA19.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 391 NoticeA19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 392 NoticeA19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Slipway, 1.0, 0, 0, new Scheme(Color.black), null))); 393 } 394 395 public static final Symbol NoticeA20 = new Symbol(); 396 static { 397 NoticeA20.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 398 NoticeA20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null))); 399 NoticeA20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterbike, 1.0, 0, 0, new Scheme(Color.black), null))); 400 } 401 402 public static final Symbol NoticeB1a = new Symbol(); 403 static { 404 NoticeB1a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 405 NoticeB1a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 406 Path2D.Double p = new Path2D.Double(); p.moveTo(21, 8); p.lineTo(-8, 8); p.lineTo(-8, 18); p.lineTo(-21, 0); 407 p.lineTo(-8, -18); p.lineTo(-8, -8); p.lineTo(21, -8); p.closePath(); 408 NoticeB1a.add(new Instr(Form.PGON, p)); 409 } 410 411 public static final Symbol NoticeB1b = new Symbol(); 412 static { 413 NoticeB1b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 414 NoticeB1b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 415 Path2D.Double p = new Path2D.Double(); p.moveTo(-21, 8); p.lineTo(8, 8); p.lineTo(8, 18); p.lineTo(21, 0); 416 p.lineTo(8, -18); p.lineTo(8, -8); p.lineTo(-21, -8); p.closePath(); 417 NoticeB1b.add(new Instr(Form.PGON, p)); 418 } 419 420 public static final Symbol NoticeB2a = new Symbol(); 421 static { 422 NoticeB2a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 423 NoticeB2a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 424 NoticeB2a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 425 Path2D.Double p = new Path2D.Double(); p.moveTo(18, 21); p.lineTo(18, 10); p.lineTo(-15, -10); p.lineTo(-15, -15); 426 NoticeB2a.add(new Instr(Form.PLIN, p)); 427 p = new Path2D.Double(); p.moveTo(-15, -21); p.lineTo(-21, -15); p.lineTo(-9, -15); p.closePath(); 428 NoticeB2a.add(new Instr(Form.PGON, p)); 429 } 430 431 public static final Symbol NoticeB2b = new Symbol(); 432 static { 433 NoticeB2b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 434 NoticeB2b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 435 NoticeB2b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 436 NoticeB2b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 437 Path2D.Double p = new Path2D.Double(); p.moveTo(-18, 21); p.lineTo(-18, 10); p.lineTo(15, -10); p.lineTo(15, -15); 438 NoticeB2b.add(new Instr(Form.PLIN, p)); 439 p = new Path2D.Double(); p.moveTo(15, -21); p.lineTo(21, -15); p.lineTo(9, -15); p.closePath(); 440 NoticeB2b.add(new Instr(Form.PGON, p)); 441 } 442 443 public static final Symbol NoticeB3a = new Symbol(); 444 static { 445 NoticeB3a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 446 NoticeB3a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 447 NoticeB3a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 448 NoticeB3a.add(new Instr(Form.LINE, new Line2D.Double(-15, 21, -15, -15))); 449 Path2D.Double p = new Path2D.Double(); p.moveTo(-15, -21); p.lineTo(-21, -15); p.lineTo(-9, -15); p.closePath(); 450 NoticeB3a.add(new Instr(Form.PGON, p)); 451 NoticeB3a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] {5.5f, 2.4f}, 0.0f))); 452 NoticeB3a.add(new Instr(Form.LINE, new Line2D.Double(15, -21, 15, 15))); 453 p = new Path2D.Double(); p.moveTo(15, 21); p.lineTo(21, 15); p.lineTo(9, 15); p.closePath(); 454 NoticeB3a.add(new Instr(Form.PGON, p)); 455 } 456 457 public static final Symbol NoticeB3b = new Symbol(); 458 static { 459 NoticeB3b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 460 NoticeB3b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 461 NoticeB3b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 462 NoticeB3b.add(new Instr(Form.LINE, new Line2D.Double(15, 21, 15, -15))); 463 Path2D.Double p = new Path2D.Double(); p.moveTo(15, -21); p.lineTo(21, -15); p.lineTo(9, -15); p.closePath(); 464 NoticeB3b.add(new Instr(Form.PGON, p)); 465 NoticeB3b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] {5.5f, 2.4f}, 0.0f))); 466 NoticeB3b.add(new Instr(Form.LINE, new Line2D.Double(-15, -21, -15, 15))); 467 p = new Path2D.Double(); p.moveTo(-15, 21); p.lineTo(-21, 15); p.lineTo(-9, 15); p.closePath(); 468 NoticeB3b.add(new Instr(Form.PGON, p)); 469 } 470 471 public static final Symbol NoticeB4a = new Symbol(); 472 static { 473 NoticeB4a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 474 NoticeB4a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB2a, 1.0, 0, 0, null, null))); 475 NoticeB4a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] {5.5f, 2.4f}, 0.0f))); 476 Path2D.Double p = new Path2D.Double(); p.moveTo(18, -21); p.lineTo(18, -10); p.lineTo(-15, 10); p.lineTo(-15, 15); 477 NoticeB4a.add(new Instr(Form.PLIN, p)); 478 p = new Path2D.Double(); p.moveTo(-15, 21); p.lineTo(-21, 15); p.lineTo(-9, 15); p.closePath(); 479 NoticeB4a.add(new Instr(Form.PGON, p)); 480 } 481 482 public static final Symbol NoticeB4b = new Symbol(); 483 static { 484 NoticeB4b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 485 NoticeB4b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB2b, 1.0, 0, 0, null, null))); 486 NoticeB4b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] {5.5f, 2.4f}, 0.0f))); 487 Path2D.Double p = new Path2D.Double(); p.moveTo(-18, -21); p.lineTo(-18, -10); p.lineTo(15, 10); p.lineTo(15, 15); 488 NoticeB4b.add(new Instr(Form.PLIN, p)); 489 p = new Path2D.Double(); p.moveTo(15, 21); p.lineTo(21, 15); p.lineTo(9, 15); p.closePath(); 490 NoticeB4b.add(new Instr(Form.PGON, p)); 491 } 492 493 public static final Symbol NoticeB5 = new Symbol(); 494 static { 495 NoticeB5.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 496 NoticeB5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 497 NoticeB5.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 498 NoticeB5.add(new Instr(Form.LINE, new Line2D.Double(15, 0, -15, 0))); 499 } 500 501 public static final Symbol NoticeB6 = new Symbol(); 502 static { 503 NoticeB6.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 504 NoticeB6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 505 } 506 507 public static final Symbol NoticeB7 = new Symbol(); 508 static { 509 NoticeB7.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 510 NoticeB7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 511 NoticeB7.add(new Instr(Form.RSHP, new Ellipse2D.Double(-10, -10, 20, 20))); 512 } 513 514 public static final Symbol NoticeB8 = new Symbol(); 515 static { 516 NoticeB8.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 517 NoticeB8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 518 NoticeB8.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 519 NoticeB8.add(new Instr(Form.LINE, new Line2D.Double(0, 15, 0, -15))); 520 } 521 522 public static final Symbol NoticeB9a = new Symbol(); 523 static { 524 NoticeB9a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 525 NoticeB9a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 526 NoticeB9a.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 527 NoticeB9a.add(new Instr(Form.LINE, new Line2D.Double(-21, 0, 21, 0))); 528 NoticeB9a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 529 NoticeB9a.add(new Instr(Form.LINE, new Line2D.Double(0, 21, 0, 0))); 530 } 531 532 public static final Symbol NoticeB9b = new Symbol(); 533 static { 534 NoticeB9b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 535 NoticeB9b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 536 NoticeB9b.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 537 NoticeB9b.add(new Instr(Form.LINE, new Line2D.Double(-21, 0, 21, 0))); 538 NoticeB9b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 539 NoticeB9b.add(new Instr(Form.LINE, new Line2D.Double(0, 21, 0, -21))); 540 } 541 542 public static final Symbol NoticeB11 = new Symbol(); 543 static { 544 NoticeB11.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 545 NoticeB11.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 546 NoticeB11.add(new Instr(Form.TEXT, new Caption("VHF", new Font("Arial", Font.BOLD, 20), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 0))))); 547 } 548 549 public static final Symbol NoticeC1 = new Symbol(); 550 static { 551 NoticeC1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 552 NoticeC1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 553 Path2D.Double p = new Path2D.Double(); p.moveTo(-15, 21); p.lineTo(0, 12); p.lineTo(15, 21); p.closePath(); 554 NoticeC1.add(new Instr(Form.PGON, p)); 555 } 556 557 public static final Symbol NoticeC2 = new Symbol(); 558 static { 559 NoticeC2.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 560 NoticeC2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 561 Path2D.Double p = new Path2D.Double(); p.moveTo(-15, -21); p.lineTo(0, -12); p.lineTo(15, -21); p.closePath(); 562 NoticeC2.add(new Instr(Form.PGON, p)); 563 } 564 565 public static final Symbol NoticeC3 = new Symbol(); 566 static { 567 NoticeC3.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 568 NoticeC3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 569 Path2D.Double p = new Path2D.Double(); p.moveTo(21, -15); p.lineTo(12, 0); p.lineTo(21, 15); p.closePath(); 570 p.moveTo(-21, -15); p.lineTo(-12, 0); p.lineTo(-21, 15); p.closePath(); 571 NoticeC3.add(new Instr(Form.PGON, p)); 572 } 573 574 public static final Symbol NoticeC4 = new Symbol(); 575 static { 576 NoticeC4.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 577 NoticeC4.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 578 } 579 580 public static final Symbol NoticeC5a = new Symbol(); 581 static { 582 NoticeC5a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 583 NoticeC5a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 584 Path2D.Double p = new Path2D.Double(); p.moveTo(-21, -21); p.lineTo(10, -21); p.lineTo(21, 0); p.lineTo(10, 21); p.lineTo(-21, 21); p.closePath(); 585 NoticeC5a.add(new Instr(Form.PGON, p)); 586 } 587 588 public static final Symbol NoticeC5b = new Symbol(); 589 static { 590 NoticeC5b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 591 NoticeC5b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null))); 592 Path2D.Double p = new Path2D.Double(); p.moveTo(21, -21); p.lineTo(-10, -21); p.lineTo(-21, 0); p.lineTo(-10, 21); p.lineTo(21, 21); p.closePath(); 593 NoticeC5b.add(new Instr(Form.PGON, p)); 594 } 595 596 public static final Symbol NoticeD1a = new Symbol(); 597 static { 598 NoticeD1a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 599 NoticeD1a.add(new Instr(Form.FILL, Color.yellow)); 600 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(-30, 0); p.lineTo(0, 30); p.lineTo(30, 0); p.closePath(); 601 NoticeD1a.add(new Instr(Form.PGON, p)); 602 NoticeD1a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 603 NoticeD1a.add(new Instr(Form.FILL, Color.black)); 604 NoticeD1a.add(new Instr(Form.PLIN, p)); 605 } 606 607 public static final Symbol NoticeD1b = new Symbol(); 608 static { 609 NoticeD1b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 610 NoticeD1b.add(new Instr(Form.FILL, Color.yellow)); 611 Path2D.Double p = new Path2D.Double(); p.moveTo(-30, 0); p.lineTo(-15, 25); p.lineTo(15, -25); p.lineTo(30, 0); p.lineTo(15, 25); p.lineTo(-15, -25); p.closePath(); 612 NoticeD1b.add(new Instr(Form.PGON, p)); 613 NoticeD1b.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 614 NoticeD1b.add(new Instr(Form.FILL, Color.black)); 615 NoticeD1b.add(new Instr(Form.PLIN, p)); 616 } 617 618 public static final Symbol NoticeD2a = new Symbol(); 619 static { 620 NoticeD2a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 621 NoticeD2a.add(new Instr(Form.FILL, Color.white)); 622 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(-30, 0); p.lineTo(0, 30); p.closePath(); 623 NoticeD2a.add(new Instr(Form.PGON, p)); 624 NoticeD2a.add(new Instr(Form.FILL, new Color(0x00e800))); 625 p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(30, 0); p.lineTo(0, 30); p.closePath(); 626 NoticeD2a.add(new Instr(Form.PGON, p)); 627 NoticeD2a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 628 NoticeD2a.add(new Instr(Form.FILL, Color.black)); 629 p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(-30, 0); p.lineTo(0, 30); p.lineTo(30, 0); p.closePath(); 630 NoticeD2a.add(new Instr(Form.PLIN, p)); 631 } 632 633 public static final Symbol NoticeD2b = new Symbol(); 634 static { 635 NoticeD2b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 636 NoticeD2b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeD2a, 1.0, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0)))))); 637 } 638 639 public static final Symbol NoticeD3a = new Symbol(); 640 static { 641 NoticeD3a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 642 NoticeD3a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 643 Path2D.Double p = new Path2D.Double(); p.moveTo(28, 10); p.lineTo(-10, 10); p.lineTo(-10, 20); p.lineTo(-28, 0); 644 p.lineTo(-10, -20); p.lineTo(-10, -10); p.lineTo(28, -10); p.closePath(); 645 NoticeD3a.add(new Instr(Form.PGON, p)); 646 } 647 648 public static final Symbol NoticeD3b = new Symbol(); 649 static { 650 NoticeD3b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 651 NoticeD3b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 652 Path2D.Double p = new Path2D.Double(); p.moveTo(-28, 10); p.lineTo(10, 10); p.lineTo(10, 20); p.lineTo(28, 0); 653 p.lineTo(10, -20); p.lineTo(10, -10); p.lineTo(-28, -10); p.closePath(); 654 NoticeD3b.add(new Instr(Form.PGON, p)); 655 } 656 657 public static final Symbol NoticeE1 = new Symbol(); 658 static { 659 NoticeE1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 660 NoticeE1.add(new Instr(Form.FILL, new Color(0x00e800))); 661 NoticeE1.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 662 NoticeE1.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 663 NoticeE1.add(new Instr(Form.FILL, Color.white)); 664 NoticeE1.add(new Instr(Form.RSHP, new Rectangle2D.Double(-10, -30, 20, 60))); 665 NoticeE1.add(new Instr(Form.FILL, Color.black)); 666 NoticeE1.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 667 } 668 669 public static final Symbol NoticeE2 = new Symbol(); 670 static { 671 NoticeE2.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 672 NoticeE2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 673 Path2D.Double p = new Path2D.Double(); p.moveTo(5, -25); p.lineTo(-10, -1); p.lineTo(10, -1); p.lineTo(-10, 20); 674 p.lineTo(-7, 20); p.lineTo(-12, 25); p.lineTo(-16, 20); p.lineTo(-13, 20); p.lineTo(4, 1); p.lineTo(-14, 1); 675 p.lineTo(2, -25); p.closePath(); 676 NoticeE2.add(new Instr(Form.PGON, p)); 677 } 678 679 public static final Symbol NoticeE3 = new Symbol(); 680 static { 681 NoticeE3.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 682 NoticeE3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 683 NoticeE3.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 684 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(25, -20, 25, 20))); 685 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-25, -20, -25, 20))); 686 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-15, -15, -15, 20))); 687 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-5, -15, -5, 20))); 688 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(5, -15, 5, 20))); 689 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(15, -15, 15, 20))); 690 NoticeE3.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 691 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-26, 18.5, 26, 18.5))); 692 NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-26, -15, 26, -15))); 693 } 694 695 public static final Symbol NoticeE4a = new Symbol(); 696 static { 697 NoticeE4a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 698 NoticeE4a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 699 Path2D.Double p = new Path2D.Double(); p.moveTo(-20, -10); p.lineTo(-5, -10); p.lineTo(-5, -20); p.lineTo(5, -20); p.lineTo(5, -10); 700 p.lineTo(20, -10); p.lineTo(15, 0); p.lineTo(-15, 0); p.closePath(); 701 p.moveTo(-25, 5); p.lineTo(25, 5); p.lineTo(25, 10); p.lineTo(-25, 10); p.closePath(); 702 NoticeE4a.add(new Instr(Form.PGON, p)); 703 } 704 705 public static final Symbol NoticeE4b = new Symbol(); 706 static { 707 NoticeE4b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 708 NoticeE4b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 709 Path2D.Double p = new Path2D.Double(); p.moveTo(-20, 0); p.lineTo(-5, 0); p.lineTo(-5, -10); p.lineTo(5, -10); p.lineTo(5, 0); 710 p.lineTo(20, 0); p.lineTo(15, 10); p.lineTo(-15, 10); p.closePath(); 711 NoticeE4b.add(new Instr(Form.PGON, p)); 712 } 713 714 public static final Symbol NoticeE5 = new Symbol(); 715 static { 716 NoticeE5.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 717 NoticeE5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 718 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); p.moveTo(-5.3, 14.6); p.lineTo(-5.3, 4.0); p.lineTo(0.0, 4.0); p.curveTo(4.2, 4.0, 7.4, 3.5, 9.4, 0.0); 719 p.curveTo(11.4, -2.8, 11.4, -7.2, 9.4, -10.5); p.curveTo(7.4, -13.6, 4.2, -14.0, 0.0, -14.0); p.lineTo(-11.0, -14.0); p.lineTo(-11.0, 14.6); p.closePath(); 720 p.moveTo(-5.3, -1.0); p.lineTo(0.0, -1.0); p.curveTo(6.5, -1.0, 6.5, -9.0, 0.0, -9.0); p.lineTo(-5.3, -9.0); p.closePath(); 721 NoticeE5.add(new Instr(Form.PGON, p)); 722 } 723 724 public static final Symbol NoticeE5_1 = new Symbol(); 725 static { 726 NoticeE5_1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 727 NoticeE5_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 728 } 729 730 public static final Symbol NoticeE5_2 = new Symbol(); 731 static { 732 NoticeE5_2.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 733 NoticeE5_2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 734 } 735 736 public static final Symbol NoticeE5_3 = new Symbol(); 737 static { 738 NoticeE5_3.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 739 NoticeE5_3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 740 } 741 742 public static final Symbol NoticeE5_4 = new Symbol(); 743 static { 744 NoticeE5_4.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 745 NoticeE5_4.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 746 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 747 p.moveTo(-28, 25); p.lineTo(0, -28); p.lineTo(28, 25); p.closePath(); 748 NoticeE5_4.add(new Instr(Form.PGON, p)); 749 } 750 751 public static final Symbol NoticeE5_5 = new Symbol(); 752 static { 753 NoticeE5_5.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 754 NoticeE5_5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 755 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 756 p.moveTo(-28, 25); p.lineTo(0, -28); p.lineTo(28, 25); p.closePath(); 757 p.moveTo(0, 24); p.lineTo(-15, 2); p.lineTo(15, 2); p.closePath(); 758 NoticeE5_5.add(new Instr(Form.PGON, p)); 759 } 760 761 public static final Symbol NoticeE5_6 = new Symbol(); 762 static { 763 NoticeE5_6.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 764 NoticeE5_6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 765 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 766 p.moveTo(-28, 25); p.lineTo(0, -28); p.lineTo(28, 25); p.closePath(); 767 p.moveTo(0, 7); p.lineTo(-10, -8); p.lineTo(10, -8); p.closePath(); 768 p.moveTo(0, 24); p.lineTo(-10, 9); p.lineTo(10, 9); p.closePath(); 769 NoticeE5_6.add(new Instr(Form.PGON, p)); 770 } 771 772 public static final Symbol NoticeE5_7 = new Symbol(); 773 static { 774 NoticeE5_7.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 775 NoticeE5_7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 776 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 777 p.moveTo(-28, 25); p.lineTo(0, -28); p.lineTo(28, 25); p.closePath(); 778 p.moveTo(0, -1); p.lineTo(-8, -11); p.lineTo(8, -11); p.closePath(); 779 p.moveTo(0, 11); p.lineTo(-8, 1); p.lineTo(8, 1); p.closePath(); 780 p.moveTo(0, 23); p.lineTo(-8, 13); p.lineTo(8, 13); p.closePath(); 781 NoticeE5_7.add(new Instr(Form.PGON, p)); 782 } 783 784 public static final Symbol NoticeE5_8 = new Symbol(); 785 static { 786 NoticeE5_8.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 787 NoticeE5_8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 788 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 789 p.moveTo(-28, -25); p.lineTo(0, 28); p.lineTo(28, -25); p.closePath(); 790 NoticeE5_8.add(new Instr(Form.PGON, p)); 791 } 792 793 public static final Symbol NoticeE5_9 = new Symbol(); 794 static { 795 NoticeE5_9.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 796 NoticeE5_9.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 797 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 798 p.moveTo(-28, -25); p.lineTo(0, 28); p.lineTo(28, -25); p.closePath(); 799 p.moveTo(0, 8); p.lineTo(-15, -14); p.lineTo(15, -14); p.closePath(); 800 NoticeE5_9.add(new Instr(Form.PGON, p)); 801 } 802 803 public static final Symbol NoticeE5_10 = new Symbol(); 804 static { 805 NoticeE5_10.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 806 NoticeE5_10.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 807 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 808 p.moveTo(-28, -25); p.lineTo(0, 28); p.lineTo(28, -25); p.closePath(); 809 p.moveTo(0, -5); p.lineTo(-10, -20); p.lineTo(10, -20); p.closePath(); 810 p.moveTo(0, 15); p.lineTo(-10, 0); p.lineTo(10, 0); p.closePath(); 811 NoticeE5_10.add(new Instr(Form.PGON, p)); 812 } 813 814 public static final Symbol NoticeE5_11 = new Symbol(); 815 static { 816 NoticeE5_11.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 817 NoticeE5_11.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 818 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 819 p.moveTo(-28, -25); p.lineTo(0, 28); p.lineTo(28, -25); p.closePath(); 820 p.moveTo(0, -12); p.lineTo(-8, -22); p.lineTo(8, -22); p.closePath(); 821 p.moveTo(0, 3); p.lineTo(-8, -7); p.lineTo(8, -7); p.closePath(); 822 p.moveTo(0, 18); p.lineTo(-8, 8); p.lineTo(8, 8); p.closePath(); 823 NoticeE5_11.add(new Instr(Form.PGON, p)); 824 } 825 826 public static final Symbol NoticeE5_12 = new Symbol(); 827 static { 828 NoticeE5_12.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 829 NoticeE5_12.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 830 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 831 p.moveTo(-28, 0); p.lineTo(0, 28); p.lineTo(28, 0); p.lineTo(0, -28); p.closePath(); 832 NoticeE5_12.add(new Instr(Form.PGON, p)); 833 } 834 835 public static final Symbol NoticeE5_13 = new Symbol(); 836 static { 837 NoticeE5_13.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 838 NoticeE5_13.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 839 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 840 p.moveTo(-28, 0); p.lineTo(0, 28); p.lineTo(28, 0); p.lineTo(0, -28); p.closePath(); 841 p.moveTo(0, 15); p.lineTo(-15, -7); p.lineTo(15, -7); p.closePath(); 842 NoticeE5_13.add(new Instr(Form.PGON, p)); 843 } 844 845 public static final Symbol NoticeE5_14 = new Symbol(); 846 static { 847 NoticeE5_14.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 848 NoticeE5_14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 849 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 850 p.moveTo(-28, 0); p.lineTo(0, 28); p.lineTo(28, 0); p.lineTo(0, -28); p.closePath(); 851 p.moveTo(0, 0); p.lineTo(-10, -15); p.lineTo(10, -15); p.closePath(); 852 p.moveTo(0, 20); p.lineTo(-10, 5); p.lineTo(10, 5); p.closePath(); 853 NoticeE5_14.add(new Instr(Form.PGON, p)); 854 } 855 856 public static final Symbol NoticeE5_15 = new Symbol(); 857 static { 858 NoticeE5_15.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 859 NoticeE5_15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 860 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 861 p.moveTo(-28, 0); p.lineTo(0, 28); p.lineTo(28, 0); p.lineTo(0, -28); p.closePath(); 862 p.moveTo(0, -7); p.lineTo(-8, -17); p.lineTo(8, -17); p.closePath(); 863 p.moveTo(0, 8); p.lineTo(-8, -2); p.lineTo(8, -2); p.closePath(); 864 p.moveTo(0, 23); p.lineTo(-8, 13); p.lineTo(8, 13); p.closePath(); 865 NoticeE5_15.add(new Instr(Form.PGON, p)); 866 } 867 868 public static final Symbol NoticeE6 = new Symbol(); 869 static { 870 NoticeE6.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 871 NoticeE6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 872 NoticeE6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, new Scheme(Color.white), null))); 873 } 874 875 public static final Symbol NoticeE7 = new Symbol(); 876 static { 877 NoticeE7.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 878 NoticeE7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 879 NoticeE7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Bollard, 1.0, 0, 0, new Scheme(Color.white), null))); 880 } 881 882 public static final Symbol NoticeE7_1 = new Symbol(); 883 static { 884 NoticeE7_1.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 885 NoticeE7_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 886 NoticeE7_1.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 887 NoticeE7_1.add(new Instr(Form.LINE, new Line2D.Double(20, 25, 20, -10))); 888 NoticeE7_1.add(new Instr(Form.LINE, new Line2D.Double(22, -8, -15, -20))); 889 NoticeE7_1.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 890 NoticeE7_1.add(new Instr(Form.LINE, new Line2D.Double(20, 8, 0, -15))); 891 Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 892 p.moveTo(-17, 2); p.quadTo(-5, 0, 7, 2); p.lineTo(9, 12); p.lineTo(7, 20); p.lineTo(6, 20); p.lineTo(6, 23); p.lineTo(3, 23); p.lineTo(3, 20); 893 p.quadTo(-5, 22, -13, 20); p.lineTo(-13, 23); p.lineTo(-16, 23); p.lineTo(-16, 20); p.lineTo(-17, 20); p.lineTo(-19, 12); p.closePath(); 894 p.moveTo(-15, 4); p.quadTo(-3, 2, 5, 4); p.lineTo(6, 11); p.quadTo(-5, 9, -16, 11); p.closePath(); 895 NoticeE7_1.add(new Instr(Form.PGON, p)); 896 NoticeE7_1.add(new Instr(Form.FILL, new Color(0x0000a0))); 897 NoticeE7_1.add(new Instr(Form.RSHP, new Ellipse2D.Double(-16, 13, 4, 4))); 898 NoticeE7_1.add(new Instr(Form.RSHP, new Ellipse2D.Double(2, 13, 4, 4))); 899 } 900 901 public static final Symbol NoticeE8 = new Symbol(); 902 static { 903 NoticeE8.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 904 NoticeE8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 905 NoticeE8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Turn, 1.0, 0, 0, new Scheme(Color.white), null))); 906 } 907 908 public static final Symbol NoticeE9a = new Symbol(); 909 static { 910 NoticeE9a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 911 NoticeE9a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 912 NoticeE9a.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 913 NoticeE9a.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -29))); 914 NoticeE9a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 915 NoticeE9a.add(new Instr(Form.LINE, new Line2D.Double(-29, 0, 29, 0))); 916 } 917 918 public static final Symbol NoticeE9b = new Symbol(); 919 static { 920 NoticeE9b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 921 NoticeE9b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 922 NoticeE9b.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 923 NoticeE9b.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -29))); 924 NoticeE9b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 925 NoticeE9b.add(new Instr(Form.LINE, new Line2D.Double(-2, 0, 29, 0))); 926 } 927 928 public static final Symbol NoticeE9c = new Symbol(); 929 static { 930 NoticeE9c.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 931 NoticeE9c.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 932 NoticeE9c.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 933 NoticeE9c.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -29))); 934 NoticeE9c.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 935 NoticeE9c.add(new Instr(Form.LINE, new Line2D.Double(2, 0, -29, 0))); 936 } 937 938 public static final Symbol NoticeE9d = new Symbol(); 939 static { 940 NoticeE9d.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 941 NoticeE9d.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 942 NoticeE9d.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 943 NoticeE9d.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -4))); 944 NoticeE9d.add(new Instr(Form.LINE, new Line2D.Double(-4, 0, 29, 0))); 945 NoticeE9d.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 946 NoticeE9d.add(new Instr(Form.LINE, new Line2D.Double(0, -29, 0, 2))); 947 } 948 949 public static final Symbol NoticeE9e = new Symbol(); 950 static { 951 NoticeE9e.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 952 NoticeE9e.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 953 NoticeE9e.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 954 NoticeE9e.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -4))); 955 NoticeE9e.add(new Instr(Form.LINE, new Line2D.Double(4, 0, -29, 0))); 956 NoticeE9e.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 957 NoticeE9e.add(new Instr(Form.LINE, new Line2D.Double(0, -29, 0, 2))); 958 } 959 960 public static final Symbol NoticeE9f = new Symbol(); 961 static { 962 NoticeE9f.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 963 NoticeE9f.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 964 NoticeE9f.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 965 NoticeE9f.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -4))); 966 NoticeE9f.add(new Instr(Form.LINE, new Line2D.Double(-4, 0, 29, 0))); 967 NoticeE9f.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 968 NoticeE9f.add(new Instr(Form.LINE, new Line2D.Double(2, 0, -29, 0))); 969 } 970 971 public static final Symbol NoticeE9g = new Symbol(); 972 static { 973 NoticeE9g.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 974 NoticeE9g.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 975 NoticeE9g.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 976 NoticeE9g.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -4))); 977 NoticeE9g.add(new Instr(Form.LINE, new Line2D.Double(4, 0, -29, 0))); 978 NoticeE9g.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 979 NoticeE9g.add(new Instr(Form.LINE, new Line2D.Double(-2, 0, 29, 0))); 980 } 981 982 public static final Symbol NoticeE9h = new Symbol(); 983 static { 984 NoticeE9h.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 985 NoticeE9h.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 986 NoticeE9h.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 987 NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -4))); 988 NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(-4, 0, 29, 0))); 989 NoticeE9h.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 990 NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(0, -29, 0, 2))); 991 NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(2, 0, -29, 0))); 992 } 993 994 public static final Symbol NoticeE9i = new Symbol(); 995 static { 996 NoticeE9i.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 997 NoticeE9i.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 998 NoticeE9i.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 999 NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -4))); 1000 NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(4, 0, -29, 0))); 1001 NoticeE9i.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1002 NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(0, -29, 0, 2))); 1003 NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(-2, 0, 29, 0))); 1004 } 1005 1006 public static final Symbol NoticeE10a = new Symbol(); 1007 static { 1008 NoticeE10a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1009 NoticeE10a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1010 NoticeE10a.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1011 NoticeE10a.add(new Instr(Form.LINE, new Line2D.Double(-29, 0, 29, 0))); 1012 NoticeE10a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1013 NoticeE10a.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -29))); 1014 } 1015 1016 public static final Symbol NoticeE10b = new Symbol(); 1017 static { 1018 NoticeE10b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1019 NoticeE10b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1020 NoticeE10b.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1021 NoticeE10b.add(new Instr(Form.LINE, new Line2D.Double(-29, 0, 29, 0))); 1022 NoticeE10b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1023 NoticeE10b.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -2))); 1024 } 1025 1026 public static final Symbol NoticeE10c = new Symbol(); 1027 static { 1028 NoticeE10c.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1029 NoticeE10c.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1030 NoticeE10c.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1031 NoticeE10c.add(new Instr(Form.LINE, new Line2D.Double(0, -29, 0, 4))); 1032 NoticeE10c.add(new Instr(Form.LINE, new Line2D.Double(-4, 0, 29, 0))); 1033 NoticeE10c.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1034 NoticeE10c.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -2))); 1035 } 1036 1037 public static final Symbol NoticeE10d = new Symbol(); 1038 static { 1039 NoticeE10d.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1040 NoticeE10d.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1041 NoticeE10d.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1042 NoticeE10d.add(new Instr(Form.LINE, new Line2D.Double(0, -29, 0, 4))); 1043 NoticeE10d.add(new Instr(Form.LINE, new Line2D.Double(4, 0, -29, 0))); 1044 NoticeE10d.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1045 NoticeE10d.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -2))); 1046 } 1047 1048 public static final Symbol NoticeE10e = new Symbol(); 1049 static { 1050 NoticeE10e.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1051 NoticeE10e.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1052 NoticeE10e.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1053 NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(0, -29, 0, 4))); 1054 NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(-4, 0, 29, 0))); 1055 NoticeE10e.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1056 NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -2))); 1057 NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(2, 0, -29, 0))); 1058 } 1059 1060 public static final Symbol NoticeE10f = new Symbol(); 1061 static { 1062 NoticeE10f.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1063 NoticeE10f.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1064 NoticeE10f.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1065 NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(0, -29, 0, 4))); 1066 NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(4, 0, -29, 0))); 1067 NoticeE10f.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1068 NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(0, 29, 0, -2))); 1069 NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(-2, 0, 29, 0))); 1070 } 1071 1072 public static final Symbol NoticeE11 = new Symbol(); 1073 static { 1074 NoticeE11.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1075 NoticeE11.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1076 NoticeE11.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND))); 1077 NoticeE11.add(new Instr(Form.LINE, new Line2D.Double(-27, -27, 27, 27))); 1078 } 1079 1080 public static final Symbol NoticeE13 = new Symbol(); 1081 static { 1082 NoticeE13.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1083 NoticeE13.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1084 Path2D.Double p = new Path2D.Double(); p.moveTo(-4, -16); p.lineTo(9, -16); p.lineTo(9, -14); p.lineTo(3.5, -14); p.lineTo(3.5, -7); p.lineTo(5, -7); 1085 p.lineTo(5, 1); p.lineTo(6.5, 1); p.lineTo(6.5, 5); p.lineTo(17.5, 5); p.lineTo(17.5, 1); p.lineTo(19, 1); p.lineTo(19, 15); p.lineTo(17.5, 15); 1086 p.lineTo(17.5, 10); p.lineTo(17.5, 10); p.lineTo(6.5, 10); p.lineTo(6.5, 13); p.lineTo(-2, 13); p.lineTo(-2, 10); p.lineTo(-9, 10); 1087 p.quadTo(-13.5, 10, -13.5, 16); p.lineTo(-19, 16); p.quadTo(-19, 5, -9, 5); p.lineTo(-2, 5); p.lineTo(-2, 1); p.lineTo(0, 1); p.lineTo(0, -7); 1088 p.lineTo(1.5, -7); p.lineTo(1.5, -14); p.lineTo(-4, -14); p.closePath(); 1089 NoticeE13.add(new Instr(Form.PGON, p)); 1090 } 1091 1092 public static final Symbol NoticeE14 = new Symbol(); 1093 static { 1094 NoticeE14.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1095 NoticeE14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1096 Path2D.Double p = new Path2D.Double(); p.moveTo(-18, -18); p.lineTo(-11, -7); p.lineTo(-9, -10); p.lineTo(-14, -18); p.closePath(); 1097 p.moveTo(9.5, 7); p.lineTo(22.5, 9); p.lineTo(21.5, 5.5); p.lineTo(12, 4); p.closePath(); 1098 p.moveTo(-19, -16.5); p.lineTo(-13, -6.5); p.quadTo(-15.5, -2, -12.5, 0); p.lineTo(4, 11); p.quadTo(7, 13, 10, 9); p.lineTo(21.5, 11); 1099 p.curveTo(15.5, 23, 1, 18.5, -9, 12); p.curveTo(-18, 6, -28.5, -7, -19, -16.5); p.closePath(); 1100 NoticeE14.add(new Instr(Form.PGON, p)); 1101 } 1102 1103 public static final Symbol NoticeE15 = new Symbol(); 1104 static { 1105 NoticeE15.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1106 NoticeE15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1107 NoticeE15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Motor, 1.0, 0, 0, new Scheme(Color.white), null))); 1108 } 1109 1110 public static final Symbol NoticeE16 = new Symbol(); 1111 static { 1112 NoticeE16.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1113 NoticeE16.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1114 NoticeE16.add(new Instr(Form.TEXT, new Caption("SPORT", new Font("Arial", Font.BOLD, 15), Color.white, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 5))))); 1115 } 1116 1117 public static final Symbol NoticeE17 = new Symbol(); 1118 static { 1119 NoticeE17.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1120 NoticeE17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1121 NoticeE17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterski, 1.0, 0, 0, new Scheme(Color.white), null))); 1122 } 1123 1124 public static final Symbol NoticeE18 = new Symbol(); 1125 static { 1126 NoticeE18.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1127 NoticeE18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1128 NoticeE18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboat, 1.0, 0, 0, new Scheme(Color.white), null))); 1129 } 1130 1131 public static final Symbol NoticeE19 = new Symbol(); 1132 static { 1133 NoticeE19.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1134 NoticeE19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1135 NoticeE19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Rowboat, 1.0, 0, 0, new Scheme(Color.white), null))); 1136 } 1137 1138 public static final Symbol NoticeE20 = new Symbol(); 1139 static { 1140 NoticeE20.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1141 NoticeE20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1142 NoticeE20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboard, 1.0, 0, 0, new Scheme(Color.white), null))); 1143 } 1144 1145 public static final Symbol NoticeE21 = new Symbol(); 1146 static { 1147 NoticeE21.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1148 NoticeE21.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1149 NoticeE21.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Speedboat, 1.0, 0, 0, new Scheme(Color.white), null))); 1150 } 1151 1152 public static final Symbol NoticeE22 = new Symbol(); 1153 static { 1154 NoticeE22.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1155 NoticeE22.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1156 NoticeE22.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Slipway, 1.0, 0, 0, new Scheme(Color.white), null))); 1157 } 1158 1159 public static final Symbol NoticeE23 = new Symbol(); 1160 static { 1161 NoticeE23.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1162 NoticeE23.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1163 NoticeE23.add(new Instr(Form.TEXT, new Caption("VHF", new Font("Arial", Font.BOLD, 20), Color.white, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 0))))); 1164 } 1165 1166 public static final Symbol NoticeE24 = new Symbol(); 1167 static { 1168 NoticeE24.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1169 NoticeE24.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null))); 1170 NoticeE24.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterbike, 1.0, 0, 0, new Scheme(Color.white), null))); 1171 } 1172 1173 public static final Symbol NoticeBoard = new Symbol(); 1174 static { 1175 NoticeBoard.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 30))); 1176 NoticeBoard.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1177 Path2D.Double p = new Path2D.Double(); p.moveTo(-20, 0); p.lineTo(20, 0); p.lineTo(20, -15); p.lineTo(-20, -15); p.closePath(); 1178 NoticeBoard.add(new Instr(Form.FILL, Color.white)); 1179 NoticeBoard.add(new Instr(Form.PGON, p)); 1180 NoticeBoard.add(new Instr(Form.FILL, Color.black)); 1181 NoticeBoard.add(new Instr(Form.PLIN, p)); 1182 } 1183 1184 public static final Symbol NoticeTriangle = new Symbol(); 1185 static { 1186 NoticeTriangle.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 30))); 1187 NoticeTriangle.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1188 Path2D.Double p = new Path2D.Double(); p.moveTo(-20, 0); p.lineTo(20, 0); p.lineTo(0, -15); p.closePath(); 1189 NoticeTriangle.add(new Instr(Form.FILL, Color.white)); 1190 NoticeTriangle.add(new Instr(Form.PGON, p)); 1191 NoticeTriangle.add(new Instr(Form.FILL, Color.black)); 1192 NoticeTriangle.add(new Instr(Form.PLIN, p)); 1193 } 1194 1195 // CHECKSTYLE.OFF: SingleSpaceSeparator 1196 public static final EnumMap<CatNMK, Symbol> NmkCevni = new EnumMap<>(CatNMK.class); 1197 static { 1198 NmkCevni.put(CatNMK.NMK_UNKN, Notice); NmkCevni.put(CatNMK.NMK_NENT, NoticeA1); NmkCevni.put(CatNMK.NMK_CLSA, NoticeA1a); NmkCevni.put(CatNMK.NMK_NOVK, NoticeA2); 1199 NmkCevni.put(CatNMK.NMK_NCOV, NoticeA3); NmkCevni.put(CatNMK.NMK_NPAS, NoticeA4); NmkCevni.put(CatNMK.NMK_NCPS, NoticeA4_1); NmkCevni.put(CatNMK.NMK_NBRT, NoticeA5); 1200 NmkCevni.put(CatNMK.NMK_NBLL, NoticeA5_1); NmkCevni.put(CatNMK.NMK_NANK, NoticeA6); NmkCevni.put(CatNMK.NMK_NMOR, NoticeA7); NmkCevni.put(CatNMK.NMK_NTRN, NoticeA8); 1201 NmkCevni.put(CatNMK.NMK_NWSH, NoticeA9); NmkCevni.put(CatNMK.NMK_NPSL, NoticeA10a); NmkCevni.put(CatNMK.NMK_NPSR, NoticeA10b); NmkCevni.put(CatNMK.NMK_NMTC, NoticeA12); 1202 NmkCevni.put(CatNMK.NMK_NSPC, NoticeA13); NmkCevni.put(CatNMK.NMK_NWSK, NoticeA14); NmkCevni.put(CatNMK.NMK_NSLC, NoticeA15); NmkCevni.put(CatNMK.NMK_NUPC, NoticeA16); 1203 NmkCevni.put(CatNMK.NMK_NSLB, NoticeA17); NmkCevni.put(CatNMK.NMK_NWBK, NoticeA20); NmkCevni.put(CatNMK.NMK_NHSC, NoticeA18); NmkCevni.put(CatNMK.NMK_NLBG, NoticeA19); 1204 NmkCevni.put(CatNMK.NMK_MVTL, NoticeB1a); NmkCevni.put(CatNMK.NMK_MVTR, NoticeB1b); NmkCevni.put(CatNMK.NMK_MVTP, NoticeB2a); NmkCevni.put(CatNMK.NMK_MVTS, NoticeB2b); 1205 NmkCevni.put(CatNMK.NMK_KPTP, NoticeB3a); NmkCevni.put(CatNMK.NMK_KPTS, NoticeB3b); NmkCevni.put(CatNMK.NMK_CSTP, NoticeB4a); NmkCevni.put(CatNMK.NMK_CSTS, NoticeB4b); 1206 NmkCevni.put(CatNMK.NMK_STOP, NoticeB5); NmkCevni.put(CatNMK.NMK_SPDL, NoticeB6); NmkCevni.put(CatNMK.NMK_SHRN, NoticeB7); NmkCevni.put(CatNMK.NMK_KPLO, NoticeB8); 1207 NmkCevni.put(CatNMK.NMK_GWJN, NoticeB9a); NmkCevni.put(CatNMK.NMK_GWCS, NoticeB9b); NmkCevni.put(CatNMK.NMK_MKRC, NoticeB11); 1208 NmkCevni.put(CatNMK.NMK_LMDP, NoticeC1); NmkCevni.put(CatNMK.NMK_LMHR, NoticeC2); NmkCevni.put(CatNMK.NMK_LMWD, NoticeC3); NmkCevni.put(CatNMK.NMK_NAVR, NoticeC4); 1209 NmkCevni.put(CatNMK.NMK_CHDL, NoticeC5a); NmkCevni.put(CatNMK.NMK_CHDR, NoticeC5b); 1210 NmkCevni.put(CatNMK.NMK_CHTW, NoticeD1a); NmkCevni.put(CatNMK.NMK_CHOW, NoticeD1b); NmkCevni.put(CatNMK.NMK_OPTR, NoticeD2a); NmkCevni.put(CatNMK.NMK_OPTL, NoticeD2b); 1211 NmkCevni.put(CatNMK.NMK_PRTL, NoticeD3a); NmkCevni.put(CatNMK.NMK_PRTR, NoticeD3b); 1212 NmkCevni.put(CatNMK.NMK_ENTP, NoticeE1); NmkCevni.put(CatNMK.NMK_OVHC, NoticeE2); NmkCevni.put(CatNMK.NMK_WEIR, NoticeE3); NmkCevni.put(CatNMK.NMK_FERN, NoticeE4a); 1213 NmkCevni.put(CatNMK.NMK_FERI, NoticeE4b); NmkCevni.put(CatNMK.NMK_BRTP, NoticeE5); NmkCevni.put(CatNMK.NMK_BTLL, NoticeE5_1); NmkCevni.put(CatNMK.NMK_BTLS, NoticeE5_2); 1214 NmkCevni.put(CatNMK.NMK_BTRL, NoticeE5_3); NmkCevni.put(CatNMK.NMK_BTUP, NoticeE5_4); NmkCevni.put(CatNMK.NMK_BTP1, NoticeE5_5); NmkCevni.put(CatNMK.NMK_BTP2, NoticeE5_6); 1215 NmkCevni.put(CatNMK.NMK_BTP3, NoticeE5_7); NmkCevni.put(CatNMK.NMK_BTUN, NoticeE5_8); NmkCevni.put(CatNMK.NMK_BTN1, NoticeE5_9); NmkCevni.put(CatNMK.NMK_BTN2, NoticeE5_10); 1216 NmkCevni.put(CatNMK.NMK_BTN3, NoticeE5_11); NmkCevni.put(CatNMK.NMK_BTUM, NoticeE5_12); NmkCevni.put(CatNMK.NMK_BTU1, NoticeE5_13); NmkCevni.put(CatNMK.NMK_BTU2, NoticeE5_14); 1217 NmkCevni.put(CatNMK.NMK_BTU3, NoticeE5_15); NmkCevni.put(CatNMK.NMK_ANKP, NoticeE6); NmkCevni.put(CatNMK.NMK_MORP, NoticeE7); NmkCevni.put(CatNMK.NMK_VLBT, NoticeE7_1); 1218 NmkCevni.put(CatNMK.NMK_TRNA, NoticeE8); NmkCevni.put(CatNMK.NMK_SWWC, NoticeE9a); NmkCevni.put(CatNMK.NMK_SWWR, NoticeE9b); NmkCevni.put(CatNMK.NMK_SWWL, NoticeE9c); 1219 NmkCevni.put(CatNMK.NMK_WRSA, NoticeE9d); NmkCevni.put(CatNMK.NMK_WLSA, NoticeE9e); NmkCevni.put(CatNMK.NMK_WRSL, NoticeE9f); NmkCevni.put(CatNMK.NMK_WLSR, NoticeE9g); 1220 NmkCevni.put(CatNMK.NMK_WRAL, NoticeE9h); NmkCevni.put(CatNMK.NMK_WLAR, NoticeE9i); NmkCevni.put(CatNMK.NMK_MWWC, NoticeE10a); NmkCevni.put(CatNMK.NMK_MWWJ, NoticeE10b); 1221 NmkCevni.put(CatNMK.NMK_MWAR, NoticeE10c); NmkCevni.put(CatNMK.NMK_MWAL, NoticeE10d); NmkCevni.put(CatNMK.NMK_WARL, NoticeE10e); NmkCevni.put(CatNMK.NMK_WALR, NoticeE10f); 1222 NmkCevni.put(CatNMK.NMK_PEND, NoticeE11); NmkCevni.put(CatNMK.NMK_DWTR, NoticeE13); NmkCevni.put(CatNMK.NMK_TELE, NoticeE14); NmkCevni.put(CatNMK.NMK_MTCP, NoticeE15); 1223 NmkCevni.put(CatNMK.NMK_SPCP, NoticeE16); NmkCevni.put(CatNMK.NMK_WSKP, NoticeE17); NmkCevni.put(CatNMK.NMK_SLCP, NoticeE18); NmkCevni.put(CatNMK.NMK_UPCP, NoticeE19); 1224 NmkCevni.put(CatNMK.NMK_SLBP, NoticeE20); NmkCevni.put(CatNMK.NMK_RADI, NoticeE23); NmkCevni.put(CatNMK.NMK_WTBP, NoticeE24); NmkCevni.put(CatNMK.NMK_HSCP, NoticeE21); 1225 NmkCevni.put(CatNMK.NMK_LBGP, NoticeE22); 1226 } 1227 // CHECKSTYLE.ON: SingleSpaceSeparator 1228 1229 private static final Symbol NoticeBB = new Symbol(); 1230 static { 1231 NoticeBB.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1232 NoticeBB.add(new Instr(Form.LINE, new Line2D.Double(-29, -29, -29, 29))); 1233 NoticeBB.add(new Instr(Form.LINE, new Line2D.Double(29, -29, 29, 29))); 1234 NoticeBB.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1235 NoticeBB.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1236 } 1237 1238 private static final Symbol NoticeBP = new Symbol(); 1239 static { 1240 NoticeBP.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1241 NoticeBP.add(new Instr(Form.FILL, Color.white)); 1242 NoticeBP.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1243 NoticeBP.add(new Instr(Form.FILL, Color.black)); 1244 NoticeBP.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1245 } 1246 1247 private static final Symbol NoticeCR = new Symbol(); 1248 static { 1249 NoticeCR.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1250 NoticeCR.add(new Instr(Form.FILL, Color.white)); 1251 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(-30, 0); p.lineTo(0, 30); p.lineTo(30, 0); p.closePath(); 1252 NoticeCR.add(new Instr(Form.PGON, p)); 1253 NoticeCR.add(new Instr(Form.FILL, Color.black)); 1254 NoticeCR.add(new Instr(Form.PLIN, p)); 1255 } 1256 1257 private static final Symbol NoticeKT = new Symbol(); 1258 static { 1259 NoticeKT.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1260 NoticeKT.add(new Instr(Form.FILL, Color.white)); 1261 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(-30, 30); p.lineTo(30, 30); p.closePath(); 1262 NoticeKT.add(new Instr(Form.PGON, p)); 1263 NoticeKT.add(new Instr(Form.FILL, Color.black)); 1264 NoticeKT.add(new Instr(Form.PLIN, p)); 1265 } 1266 1267 public static final Symbol NoticeBnank = new Symbol(); 1268 static { 1269 NoticeBnank.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1270 Symbol colours = new Symbol(); 1271 Symbol ss = new Symbol(); 1272 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1273 colours.add(new Instr(Form.N1, ss)); 1274 ss = new Symbol(); 1275 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, null, null))); 1276 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 1277 ss.add(new Instr(Form.LINE, new Line2D.Double(-27, -27, 27, 27))); 1278 ss.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1279 ss.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1280 colours.add(new Instr(Form.N2, ss)); 1281 NoticeBnank.add(new Instr(Form.COLR, colours)); 1282 } 1283 1284 public static final Symbol NoticeBlmhr = new Symbol(); 1285 static { 1286 NoticeBlmhr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1287 Symbol colours = new Symbol(); 1288 Symbol ss = new Symbol(); 1289 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1290 colours.add(new Instr(Form.N1, ss)); 1291 ss = new Symbol(); 1292 ss.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 1293 Path2D.Double p = new Path2D.Double(); p.moveTo(-29, -29); p.lineTo(29, -29); p.lineTo(0, 0); p.closePath(); 1294 ss.add(new Instr(Form.PGON, p)); 1295 ss.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1296 ss.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1297 colours.add(new Instr(Form.N2, ss)); 1298 NoticeBlmhr.add(new Instr(Form.COLR, colours)); 1299 } 1300 1301 public static final Symbol NoticeBktpm = new Symbol(); 1302 static { 1303 NoticeBktpm.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1304 Symbol colours = new Symbol(); 1305 Symbol ss = new Symbol(); 1306 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1307 colours.add(new Instr(Form.N1, ss)); 1308 ss = new Symbol(); 1309 Path2D.Double p = new Path2D.Double(); p.moveTo(-14, -26); p.lineTo(-20, -12); p.lineTo(-8, -12); p.closePath(); 1310 ss.add(new Instr(Form.PGON, p)); 1311 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1312 ss.add(new Instr(Form.LINE, new Line2D.Double(-14, -16, -14, 25))); 1313 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1314 colours.add(new Instr(Form.N2, ss)); 1315 NoticeBktpm.add(new Instr(Form.COLR, colours)); 1316 } 1317 1318 public static final Symbol NoticeBktsm = new Symbol(); 1319 static { 1320 NoticeBktsm.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1321 Symbol colours = new Symbol(); 1322 Symbol ss = new Symbol(); 1323 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1324 colours.add(new Instr(Form.N1, ss)); 1325 ss = new Symbol(); 1326 Path2D.Double p = new Path2D.Double(); p.moveTo(14, -26); p.lineTo(20, -12); p.lineTo(8, -12); p.closePath(); 1327 ss.add(new Instr(Form.PGON, p)); 1328 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1329 ss.add(new Instr(Form.LINE, new Line2D.Double(14, -16, 14, 25))); 1330 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1331 colours.add(new Instr(Form.N2, ss)); 1332 NoticeBktsm.add(new Instr(Form.COLR, colours)); 1333 } 1334 1335 public static final Symbol NoticeBktmr = new Symbol(); 1336 static { 1337 NoticeBktmr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1338 Symbol colours = new Symbol(); 1339 Symbol ss = new Symbol(); 1340 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1341 colours.add(new Instr(Form.N1, ss)); 1342 ss = new Symbol(); 1343 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -26); p.lineTo(-6, -12); p.lineTo(6, -12); p.closePath(); 1344 ss.add(new Instr(Form.PGON, p)); 1345 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1346 ss.add(new Instr(Form.LINE, new Line2D.Double(0, -16, 0, 25))); 1347 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1348 colours.add(new Instr(Form.N2, ss)); 1349 NoticeBktmr.add(new Instr(Form.COLR, colours)); 1350 } 1351 1352 public static final Symbol NoticeBcrtp = new Symbol(); 1353 static { 1354 NoticeBcrtp.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1355 Symbol colours = new Symbol(); 1356 Symbol ss = new Symbol(); 1357 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1358 colours.add(new Instr(Form.N1, ss)); 1359 ss = new Symbol(); 1360 Path2D.Double p = new Path2D.Double(); p.moveTo(-14, -26); p.lineTo(-20, -12); p.lineTo(-8, -12); p.closePath(); 1361 ss.add(new Instr(Form.PGON, p)); 1362 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1363 p = new Path2D.Double(); p.moveTo(-14, -16); p.lineTo(-14, 0); p.lineTo(14, 10); p.lineTo(14, 25); 1364 ss.add(new Instr(Form.PLIN, p)); 1365 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1366 colours.add(new Instr(Form.N2, ss)); 1367 NoticeBcrtp.add(new Instr(Form.COLR, colours)); 1368 } 1369 1370 public static final Symbol NoticeBcrts = new Symbol(); 1371 static { 1372 NoticeBcrts.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1373 Symbol colours = new Symbol(); 1374 Symbol ss = new Symbol(); 1375 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1376 colours.add(new Instr(Form.N1, ss)); 1377 ss = new Symbol(); 1378 Path2D.Double p = new Path2D.Double(); p.moveTo(14, -26); p.lineTo(20, -12); p.lineTo(8, -12); p.closePath(); 1379 ss.add(new Instr(Form.PGON, p)); 1380 ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1381 p = new Path2D.Double(); p.moveTo(14, -16); p.lineTo(14, 0); p.lineTo(-14, 10); p.lineTo(-14, 25); 1382 ss.add(new Instr(Form.PLIN, p)); 1383 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1384 colours.add(new Instr(Form.N2, ss)); 1385 NoticeBcrts.add(new Instr(Form.COLR, colours)); 1386 } 1387 1388 public static final Symbol NoticeBtrbm = new Symbol(); 1389 static { 1390 NoticeBtrbm.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1391 Symbol colours = new Symbol(); 1392 Symbol ss = new Symbol(); 1393 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1394 colours.add(new Instr(Form.N1, ss)); 1395 ss = new Symbol(); 1396 ss.add(new Instr(Form.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1397 ss.add(new Instr(Form.LINE, new Line2D.Double(0, -25, 0, 25))); 1398 ss.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1399 ss.add(new Instr(Form.LINE, new Line2D.Double(-20, 0, 20, 0))); 1400 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1401 colours.add(new Instr(Form.N2, ss)); 1402 NoticeBtrbm.add(new Instr(Form.COLR, colours)); 1403 } 1404 1405 public static final Symbol NoticeBrspd = new Symbol(); 1406 static { 1407 NoticeBrspd.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1408 Symbol colours = new Symbol(); 1409 Symbol ss = new Symbol(); 1410 ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1411 colours.add(new Instr(Form.N1, ss)); 1412 ss = new Symbol(); 1413 ss.add(new Instr(Form.TEXT, new Caption("R", new Font("Arial", Font.BOLD, 60), null, new Delta(Handle.CC, null)))); 1414 ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null))); 1415 colours.add(new Instr(Form.N2, ss)); 1416 NoticeBrspd.add(new Instr(Form.COLR, colours)); 1417 } 1418 1419 static final Symbol NoticePBwral = new Symbol(); 1420 static { 1421 NoticePBwral.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1422 NoticePBwral.add(new Instr(Form.FILL, new Color(0xffff00))); 1423 Path2D.Double p = new Path2D.Double(); p.moveTo(-20, -25); p.lineTo(-8, -5); p.lineTo(-8, 25); p.lineTo(8, 25); p.lineTo(8, -5); 1424 p.lineTo(20, -25); p.lineTo(5, -25); p.lineTo(-5, -10); p.lineTo(-15, -25); p.closePath(); 1425 NoticePBwral.add(new Instr(Form.PGON, p)); 1426 } 1427 1428 public static final Symbol NoticeBwral = new Symbol(); 1429 static { 1430 NoticeBwral.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1431 NoticeBwral.add(new Instr(Form.FILL, Color.black)); 1432 NoticeBwral.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1433 NoticeBwral.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticePBwral, 1.0, 0, 0, null, null))); 1434 } 1435 1436 public static final Symbol NoticeBwlar = new Symbol(); 1437 static { 1438 NoticeBwlar.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1439 NoticeBwlar.add(new Instr(Form.FILL, Color.black)); 1440 NoticeBwlar.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30, -30, 60, 60, 4, 4))); 1441 NoticeBwlar.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticePBwral, 1.0, 0, 0, null, new Delta(Handle.CC, AffineTransform.getScaleInstance(-1, 1))))); 1442 } 1443 1444 public static final Symbol NoticeBoptr = new Symbol(); 1445 static { 1446 NoticeBoptr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1447 NoticeBoptr.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null))); 1448 NoticeBoptr.add(new Instr(Form.FILL, new Color(0x00a000))); 1449 NoticeBoptr.add(new Instr(Form.RSHP, new Rectangle2D.Double(-20, -20, 40, 40))); 1450 } 1451 1452 public static final Symbol NoticeBoptl = new Symbol(); 1453 static { 1454 NoticeBoptl.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1455 NoticeBoptl.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null))); 1456 NoticeBoptl.add(new Instr(Form.FILL, new Color(0xf00000))); 1457 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -20); p.lineTo(-20, 20); p.lineTo(20, 20); p.closePath(); 1458 NoticeBoptl.add(new Instr(Form.PGON, p)); 1459 } 1460 1461 public static final EnumMap<CatNMK, Symbol> NmkBniwr = new EnumMap<>(CatNMK.class); 1462 static { 1463 NmkBniwr.put(CatNMK.NMK_NANK, NoticeBnank); NmkBniwr.put(CatNMK.NMK_LMHR, NoticeBlmhr); NmkBniwr.put(CatNMK.NMK_OPTR, NoticeBoptr); NmkBniwr.put(CatNMK.NMK_OPTL, NoticeBoptl); 1464 NmkBniwr.put(CatNMK.NMK_WRAL, NoticeBwral); NmkBniwr.put(CatNMK.NMK_WLAR, NoticeBwlar); NmkBniwr.put(CatNMK.NMK_KTPM, NoticeBktpm); NmkBniwr.put(CatNMK.NMK_KTSM, NoticeBktsm); 1465 NmkBniwr.put(CatNMK.NMK_KTMR, NoticeBktmr); NmkBniwr.put(CatNMK.NMK_CRTP, NoticeBcrtp); NmkBniwr.put(CatNMK.NMK_CRTS, NoticeBcrts); NmkBniwr.put(CatNMK.NMK_TRBM, NoticeBtrbm); 1466 NmkBniwr.put(CatNMK.NMK_RSPD, NoticeBrspd); 1467 } 1468 1469 public static final Symbol NoticePwralL = new Symbol(); 1470 static { 1471 NoticePwralL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1472 NoticePwralL.add(new Instr(Form.FILL, Color.black)); 1473 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(-30, 30); p.lineTo(30, 30); p.closePath(); 1474 NoticePwralL.add(new Instr(Form.PGON, p)); 1475 NoticePwralL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticePBwral, 1.0, 0, 0, null, new Delta(Handle.TC, AffineTransform.getScaleInstance(0.5, 0.5))))); 1476 } 1477 1478 public static final Symbol NoticePwralR = new Symbol(); 1479 static { 1480 NoticePwralR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1481 NoticePwralR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBwral, 1.0, 0, 0, null, null))); 1482 } 1483 1484 public static final Symbol NoticePwlarL = new Symbol(); 1485 static { 1486 NoticePwlarL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1487 NoticePwlarL.add(new Instr(Form.FILL, Color.black)); 1488 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(-30, 30); p.lineTo(30, 30); p.closePath(); 1489 NoticePwlarL.add(new Instr(Form.PGON, p)); 1490 NoticePwlarL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticePBwral, 1.0, 0, 0, null, new Delta(Handle.TC, AffineTransform.getScaleInstance(-0.5, 0.5))))); 1491 } 1492 1493 public static final Symbol NoticePwlarR = new Symbol(); 1494 static { 1495 NoticePwlarR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1496 NoticePwlarR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBwlar, 1.0, 0, 0, null, null))); 1497 } 1498 1499 public static final Symbol NoticePktmR = new Symbol(); 1500 static { 1501 NoticePktmR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1502 NoticePktmR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null))); 1503 NoticePktmR.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1504 NoticePktmR.add(new Instr(Form.FILL, new Color(0x00d400))); 1505 NoticePktmR.add(new Instr(Form.RECT, new Rectangle2D.Double(-20, -20, 40, 40))); 1506 } 1507 1508 public static final Symbol NoticePktmL = new Symbol(); 1509 static { 1510 NoticePktmL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1511 NoticePktmL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeKT, 1.0, 0, 0, null, null))); 1512 NoticePktmL.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1513 NoticePktmL.add(new Instr(Form.FILL, new Color(0xd40000))); 1514 NoticePktmL.add(new Instr(Form.RECT, new Rectangle2D.Double(-12, 2, 24, 24))); 1515 } 1516 1517 public static final Symbol NoticePktmrL = new Symbol(); 1518 static { 1519 NoticePktmrL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1520 NoticePktmrL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeKT, 1.0, 0, 0, null, null))); 1521 NoticePktmrL.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1522 NoticePktmrL.add(new Instr(Form.FILL, new Color(0xd40000))); 1523 NoticePktmrL.add(new Instr(Form.LINE, new Line2D.Double(-12, 2, -12, 28))); 1524 NoticePktmrL.add(new Instr(Form.LINE, new Line2D.Double(12, 2, 12, 28))); 1525 NoticePktmrL.add(new Instr(Form.LINE, new Line2D.Double(-12, 15, 12, 15))); 1526 } 1527 1528 public static final Symbol NoticePktmrR = new Symbol(); 1529 static { 1530 NoticePktmrR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1531 NoticePktmrR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null))); 1532 NoticePktmrR.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1533 NoticePktmrR.add(new Instr(Form.FILL, new Color(0x00d400))); 1534 NoticePktmrR.add(new Instr(Form.LINE, new Line2D.Double(-15, -20, -15, 20))); 1535 NoticePktmrR.add(new Instr(Form.LINE, new Line2D.Double(15, -20, 15, 20))); 1536 NoticePktmrR.add(new Instr(Form.LINE, new Line2D.Double(-15, 0, 15, 0))); 1537 } 1538 1539 public static final Symbol NoticePcrL = new Symbol(); 1540 static { 1541 NoticePcrL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1542 NoticePcrL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1543 NoticePcrL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null))); 1544 NoticePcrL.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1545 NoticePcrL.add(new Instr(Form.FILL, new Color(0xd40000))); 1546 NoticePcrL.add(new Instr(Form.LINE, new Line2D.Double(-12, -12, 12, 12))); 1547 NoticePcrL.add(new Instr(Form.LINE, new Line2D.Double(-12, 12, 12, -12))); 1548 } 1549 1550 public static final Symbol NoticePcrR = new Symbol(); 1551 static { 1552 NoticePcrR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1553 NoticePcrR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null))); 1554 NoticePcrR.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1555 NoticePcrR.add(new Instr(Form.FILL, new Color(0x00d400))); 1556 NoticePcrR.add(new Instr(Form.LINE, new Line2D.Double(-12, -12, 12, 12))); 1557 NoticePcrR.add(new Instr(Form.LINE, new Line2D.Double(-12, 12, 12, -12))); 1558 } 1559 1560 static final Symbol NoticeRphib = new Symbol(); 1561 static { 1562 NoticeRphib.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1563 NoticeRphib.add(new Instr(Form.FILL, new Color(0xd40000))); 1564 NoticeRphib.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30, -30, 60, 60))); 1565 NoticeRphib.add(new Instr(Form.LINE, new Line2D.Double(-20, -20, 20, 20))); 1566 } 1567 1568 static final Symbol NoticeRinfo = new Symbol(); 1569 static { 1570 NoticeRinfo.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1571 NoticeRinfo.add(new Instr(Form.FILL, new Color(0xd40000))); 1572 NoticeRinfo.add(new Instr(Form.RECT, new Rectangle2D.Double(-30, -30, 60, 60))); 1573 } 1574 1575 public static final Symbol NoticeRnpas = new Symbol(); 1576 static { 1577 NoticeRnpas.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1578 NoticeRnpas.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null))); 1579 NoticeRnpas.add(new Instr(Form.FILL, Color.black)); 1580 Path2D.Double p = new Path2D.Double(); p.moveTo(-10, -15); p.lineTo(-10, 8); p.lineTo(-6, 8); p.lineTo(-12.5, 16); p.lineTo(-19, 8); p.lineTo(-15, 8); p.lineTo(-15, -15); 1581 p.closePath(); p.moveTo(10, 15); p.lineTo(10, -8); p.lineTo(6, -8); p.lineTo(12.5, -16); p.lineTo(19, -8); p.lineTo(15, -8); p.lineTo(15, 15); p.closePath(); 1582 NoticeRnpas.add(new Instr(Form.PGON, p)); 1583 } 1584 1585 public static final Symbol NoticeRnank = new Symbol(); 1586 static { 1587 NoticeRnank.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1588 NoticeRnank.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null))); 1589 NoticeRnank.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, new Scheme(Color.black), null))); 1590 } 1591 1592 public static final Symbol NoticeRnwsh = new Symbol(); 1593 static { 1594 NoticeRnwsh.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1595 NoticeRnwsh.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null))); 1596 NoticeRnwsh.add(new Instr(Form.FILL, Color.black)); 1597 Path2D.Double p = new Path2D.Double(); p.moveTo(-23, 10); p.curveTo(-11, 10, -12, 4, 0, 4); p.curveTo(12, 4, 11, 10, 23, 10); 1598 p.moveTo(-23, -3); p.curveTo(-11, -3, -12, -9, 0, -9); p.curveTo(12, -9, 11, -3, 23, -3); 1599 NoticeRnwsh.add(new Instr(Form.PLIN, p)); 1600 } 1601 1602 public static final Symbol NoticeRlmhr = new Symbol(); 1603 static { 1604 NoticeRlmhr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1605 NoticeRlmhr.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRinfo, 1.0, 0, 0, null, null))); 1606 NoticeRlmhr.add(new Instr(Form.FILL, Color.black)); 1607 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -10); p.lineTo(27, -27); p.lineTo(-27, -27); p.closePath(); 1608 NoticeRlmhr.add(new Instr(Form.PGON, p)); 1609 } 1610 1611 public static final Symbol NoticeRtrna = new Symbol(); 1612 static { 1613 NoticeRtrna.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1614 NoticeRtrna.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null))); 1615 NoticeRtrna.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1616 NoticeRtrna.add(new Instr(Form.EARC, new Arc2D.Double(-15.0, -15.0, 30.0, 30.0, 315.0, -280.0, Arc2D.OPEN))); 1617 Path2D.Double p = new Path2D.Double(); p.moveTo(18.8, -2.0); p.lineTo(15.8, -13.2); p.lineTo(7.5, -5.0); p.closePath(); 1618 NoticeRtrna.add(new Instr(Form.PGON, p)); 1619 } 1620 1621 public static final Symbol NoticeRncps = new Symbol(); 1622 static { 1623 NoticeRncps.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1624 NoticeRncps.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null))); 1625 NoticeRncps.add(new Instr(Form.FILL, Color.black)); 1626 Path2D.Double p = new Path2D.Double(); p.moveTo(-10, 0); p.lineTo(-10, 8); p.lineTo(-6, 8); p.lineTo(-12.5, 16); p.lineTo(-19, 8); p.lineTo(-15, 8); p.lineTo(-15, 0); 1627 p.closePath(); p.moveTo(10, 0); p.lineTo(10, -8); p.lineTo(6, -8); p.lineTo(12.5, -16); p.lineTo(19, -8); p.lineTo(15, -8); p.lineTo(15, 0); p.closePath(); 1628 NoticeRncps.add(new Instr(Form.PGON, p)); 1629 } 1630 1631 public static final Symbol NoticeRnsmc = new Symbol(); 1632 static { 1633 NoticeRnsmc.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1634 NoticeRnsmc.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null))); 1635 NoticeRnsmc.add(new Instr(Form.FILL, Color.black)); 1636 Path2D.Double p = new Path2D.Double(); p.moveTo(-15, 5); p.lineTo(15, 5); p.lineTo(25, -10); p.lineTo(12, -5); p.lineTo(-18, -1); p.closePath(); 1637 p.moveTo(-23, 2); p.lineTo(-21, 10); p.lineTo(-18, 8); p.lineTo(-20, 0); p.closePath(); 1638 NoticeRnsmc.add(new Instr(Form.PGON, p)); 1639 } 1640 1641 public static final Symbol NoticeRattn = new Symbol(); 1642 static { 1643 NoticeRattn.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1644 NoticeRattn.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRinfo, 1.0, 0, 0, null, null))); 1645 NoticeRattn.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 1646 NoticeRattn.add(new Instr(Form.FILL, Color.black)); 1647 NoticeRattn.add(new Instr(Form.LINE, new Line2D.Double(0, -20, 0, 10))); 1648 NoticeRattn.add(new Instr(Form.LINE, new Line2D.Double(0, 15, 0, 20))); 1649 } 1650 1651 public static final Symbol NoticeRfwcr = new Symbol(); 1652 static { 1653 NoticeRfwcr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1654 NoticeRfwcr.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRinfo, 1.0, 0, 0, null, null))); 1655 NoticeRfwcr.add(new Instr(Form.FILL, Color.black)); 1656 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -25); p.lineTo(-8, -15); p.lineTo(-8, 5); p.lineTo(-20, 5); p.lineTo(-20, 15); p.lineTo(-8, 15); p.lineTo(-8, 25); 1657 p.lineTo(8, 25); p.lineTo(8, 15); p.lineTo(20, 15); p.lineTo(20, 5); p.lineTo(8, 5); p.lineTo(8, -15); p.closePath(); 1658 NoticeRfwcr.add(new Instr(Form.PGON, p)); 1659 } 1660 1661 public static final Symbol NoticeRship = new Symbol(); 1662 static { 1663 NoticeRship.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -30, 60, 60))); 1664 NoticeRship.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null))); 1665 NoticeRship.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))); 1666 NoticeRship.add(new Instr(Form.FILL, Color.black)); 1667 NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(-12, -12, 10, 10))); 1668 NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(-12, -8, -8, -12))); 1669 NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(12, -12, -10, 10))); 1670 NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(12, -8, 8, -12))); 1671 NoticeRship.add(new Instr(Form.EARC, new Arc2D.Double(-17, -13, 30, 30, 185, 80, Arc2D.OPEN))); 1672 NoticeRship.add(new Instr(Form.EARC, new Arc2D.Double(-13, -13, 30, 30, 275, 80, Arc2D.OPEN))); 1673 } 1674 1675 public static final EnumMap<CatNMK, Symbol> NmkPpwbcl = new EnumMap<>(CatNMK.class); 1676 static { 1677 NmkPpwbcl.put(CatNMK.NMK_WRAL, NoticePwralL); NmkPpwbcl.put(CatNMK.NMK_WLAR, NoticePwlarL); NmkPpwbcl.put(CatNMK.NMK_KTPM, NoticePktmL); NmkPpwbcl.put(CatNMK.NMK_KTSM, NoticePktmL); 1678 NmkPpwbcl.put(CatNMK.NMK_KTMR, NoticePktmrL); NmkPpwbcl.put(CatNMK.NMK_CRTP, NoticePcrL); NmkPpwbcl.put(CatNMK.NMK_CRTS, NoticePcrL); 1679 } 1680 1681 public static final EnumMap<CatNMK, Symbol> NmkPpwbcr = new EnumMap<>(CatNMK.class); 1682 static { 1683 NmkPpwbcr.put(CatNMK.NMK_WRAL, NoticePwralR); NmkPpwbcr.put(CatNMK.NMK_WLAR, NoticePwlarR); NmkPpwbcr.put(CatNMK.NMK_KTPM, NoticePktmR); NmkPpwbcr.put(CatNMK.NMK_KTSM, NoticePktmR); 1684 NmkPpwbcr.put(CatNMK.NMK_KTMR, NoticePktmrR); NmkPpwbcr.put(CatNMK.NMK_CRTP, NoticePcrR); NmkPpwbcr.put(CatNMK.NMK_CRTS, NoticePcrR); 1685 } 1686 1687 public static final EnumMap<CatNMK, Symbol> NmkRiwr = new EnumMap<>(CatNMK.class); 1688 static { 1689 NmkRiwr.put(CatNMK.NMK_NPAS, NoticeRnpas); NmkRiwr.put(CatNMK.NMK_NANK, NoticeRnank); NmkRiwr.put(CatNMK.NMK_NWSH, NoticeRnwsh); NmkRiwr.put(CatNMK.NMK_LMHR, NoticeRlmhr); NmkRiwr.put(CatNMK.NMK_TRNA, NoticeRtrna); 1690 NmkRiwr.put(CatNMK.NMK_NCPS, NoticeRncps); NmkRiwr.put(CatNMK.NMK_NSMC, NoticeRnsmc); NmkRiwr.put(CatNMK.NMK_ATTN, NoticeRattn); NmkRiwr.put(CatNMK.NMK_FWCR, NoticeRfwcr); NmkRiwr.put(CatNMK.NMK_SHIP, NoticeRship); 1691 } 1692 1693 public static Scheme getScheme(MarSYS sys, BnkWTW bank) { 1694 ArrayList<Color> colours = new ArrayList<>(); 1695 Scheme scheme = new Scheme(colours); 1696 switch (sys) { 1697 case SYS_BNWR: 1698 case SYS_BWR2: 1699 switch (bank) { 1700 case BWW_LEFT: 1701 colours.add(Color.white); 1702 colours.add(new Color(0xf00000)); 1703 break; 1704 case BWW_RGHT: 1705 colours.add(Color.white); 1706 colours.add(new Color(0x00a000)); 1707 break; 1708 default: 1709 colours.add(new Color(0xff8040)); 1710 colours.add(Color.black); 1711 break; 1712 } 1713 break; 1714 default: 1715 break; 1716 } 1717 return scheme; 1718 } 1719 1720 public static Symbol getNotice(CatNMK cat, MarSYS sys, BnkWTW bank) { 1721 Symbol symbol = null; 1722 switch (sys) { 1723 case SYS_CEVN: 1724 symbol = NmkCevni.get(cat); 1725 break; 1726 case SYS_BNWR: 1727 case SYS_BWR2: 1728 symbol = NmkBniwr.get(cat); 1729 break; 1730 case SYS_PPWB: 1731 switch (bank) { 1732 case BWW_LEFT: 1733 symbol = NmkPpwbcl.get(cat); 1734 break; 1735 case BWW_RGHT: 1736 symbol = NmkPpwbcr.get(cat); 1737 break; 1738 default: 1739 break; 1740 } 1741 break; 1742 case SYS_RIWR: 1743 symbol = NmkRiwr.get(cat); 1744 break; 1745 default: 1746 break; 1747 } 1748 return symbol; 1749 } 1579 1750 } -
applications/editors/josm/plugins/seachart/src/symbols/Symbols.java
r32393 r32394 15 15 import java.awt.Graphics2D; 16 16 import java.awt.font.TextLayout; 17 import java.awt.geom.*; 17 import java.awt.geom.AffineTransform; 18 import java.awt.geom.Arc2D; 19 import java.awt.geom.Ellipse2D; 20 import java.awt.geom.Line2D; 21 import java.awt.geom.Path2D; 22 import java.awt.geom.Rectangle2D; 23 import java.awt.geom.RectangularShape; 24 import java.awt.geom.RoundRectangle2D; 18 25 import java.util.ArrayList; 19 26 20 27 public class Symbols { 21 22 public static final Color Yland = new Color(0xedbc0c); 23 // public static final Color Bwater = new Color(0x78acd2); 24 public static final Color Bwater = new Color(0x9bc5e3); 25 public static final Color Gdries = new Color(0x689868); 26 public static final Color Mline = new Color(0x9a6078); 27 public static final Color Msymb = new Color(0xa30075); 28 public static final Color Mtss = new Color(0xc0c480ff, true); 29 30 public enum Form { 31 BBOX, STRK, COLR, FILL, LINE, RECT, RRCT, ELPS, EARC, PLIN, PGON, RSHP, TEXT, SYMB, N1, N2, P1, P2, H2, H3, H4, H5, V2, V3, D2, D3, D4, B1, S2, S3, S4, C2, X2 32 } 33 34 public enum Patt { 35 Z, H, V, D, B, S, C, X 36 } 37 38 public enum Handle { 39 CC, TL, TR, TC, LC, RC, BL, BR, BC 40 } 41 42 public static class Instr { 43 public Form type; 44 public Object params; 45 46 public Instr(Form itype, Object iparams) { 47 type = itype; 48 params = iparams; 49 } 50 } 51 52 public static class Delta { 53 public Handle h; 54 public AffineTransform t; 55 56 public Delta(Handle ih, AffineTransform it) { 57 h = ih; 58 t = it; 59 } 60 public Delta(Handle ih) { 61 h = ih; 62 t = new AffineTransform(); 63 } 64 } 65 66 public static class Scheme { 67 public ArrayList<Patt> pat; 68 public ArrayList<Color> col; 69 70 public Scheme(ArrayList<Color> icol) { 71 pat = new ArrayList<>(); 72 col = icol; 73 } 74 public Scheme(ArrayList<Patt> ipat, ArrayList<Color> icol) { 75 pat = ipat; 76 col = icol; 77 } 78 public Scheme(Color icol) { 79 pat = new ArrayList<>(); 80 col = new ArrayList<>(); 81 col.add(icol); 82 } 83 public Scheme() { 84 pat = new ArrayList<>(); 85 col = new ArrayList<>(); 86 } 87 } 88 89 public static class Caption { 90 public String string; 91 public Font font; 92 public Color colour; 93 public Delta dd; 94 95 public Caption(String istr, Font ifont, Color icolour, Delta idd) { 96 string = istr; 97 font = ifont; 98 colour = icolour; 99 dd = idd; 100 } 101 } 102 103 public static class LineStyle { 104 public Color line; 105 public float width; 106 public float[] dash; 107 public Color fill; 108 109 public LineStyle(Color ifill) { 110 line = null; 111 width = 0; 112 dash = null; 113 fill = ifill; 114 } 115 public LineStyle(Color iline, float iwidth) { 116 line = iline; 117 width = iwidth; 118 dash = null; 119 fill = null; 120 } 121 public LineStyle(Color iline, float iwidth, float[] idash) { 122 line = iline; 123 width = iwidth; 124 dash = idash; 125 fill = null; 126 } 127 public LineStyle(Color iline, float iwidth, Color ifill) { 128 line = iline; 129 width = iwidth; 130 dash = null; 131 fill = ifill; 132 } 133 public LineStyle(Color iline, float iwidth, float[] idash, Color ifill) { 134 line = iline; 135 width = iwidth; 136 dash = idash; 137 fill = ifill; 138 } 139 } 140 141 public static class Symbol extends ArrayList<Instr> { 142 143 public Symbol() { 144 super(); 145 } 146 } 147 148 public static class SubSymbol { 149 public Symbol instr; 150 public double scale; 151 public double x; 152 public double y; 153 public Delta delta; 154 public Scheme scheme; 155 156 public SubSymbol(Symbol iinstr, double iscale, double ix, double iy, Scheme ischeme, Delta idelta) { 157 instr = iinstr; 158 scale = iscale; 159 x = ix; 160 y = iy; 161 delta = idelta; 162 scheme = ischeme; 163 } 164 } 165 166 public static void drawSymbol(Graphics2D g2, Symbol symbol, double scale, double x, double y, Scheme cs, Delta dd) { 167 int pn = 0; 168 int cn = 0; 169 Patt bpat = Patt.Z; 170 Color bcol = null; 171 g2.setPaint(Color.black); 172 if (cs != null) { 173 if ((cs.pat.size() > 0) && (cs.col.size() > 0) && (cs.pat.get(0) == Patt.B)) { 174 bpat = (cs.pat.remove(0)); 175 bcol = (cs.col.remove(0)); 176 } 177 pn = cs.pat.size(); 178 cn = cs.col.size() - ((pn != 0) ? pn - 1 : 0); 179 if ((pn == 0) && (cs.col.size() == 1)) { 180 g2.setPaint(cs.col.get(0)); 181 } 182 } 183 AffineTransform savetr = g2.getTransform(); 184 g2.translate(x, y); 185 g2.scale(scale, scale); 186 if (symbol != null) { 187 for (Instr item : symbol) { 188 switch (item.type) { 189 case BBOX: 190 Rectangle2D.Double bbox = (Rectangle2D.Double) item.params; 191 double dx = 0.0; 192 double dy = 0.0; 193 if (dd != null) { 194 g2.transform(dd.t); 195 switch (dd.h) { 196 case CC: 197 dx -= bbox.x + (bbox.width / 2.0); 198 dy -= bbox.y + (bbox.height / 2.0); 199 break; 200 case TL: 201 dx -= bbox.x; 202 dy -= bbox.y; 203 break; 204 case TR: 205 dx -= bbox.x + bbox.width; 206 dy -= bbox.y; 207 break; 208 case TC: 209 dx -= bbox.x + (bbox.width / 2.0); 210 dy -= bbox.y; 211 break; 212 case LC: 213 dx -= bbox.x; 214 dy -= bbox.y + (bbox.height / 2.0); 215 break; 216 case RC: 217 dx -= bbox.x + bbox.width; 218 dy -= bbox.y + (bbox.height / 2.0); 219 break; 220 case BL: 221 dx -= bbox.x; 222 dy -= bbox.y + bbox.height; 223 break; 224 case BR: 225 dx -= bbox.x + bbox.width; 226 dy -= bbox.y + bbox.height; 227 break; 228 case BC: 229 dx -= bbox.x + (bbox.width / 2.0); 230 dy -= bbox.y + bbox.height; 231 break; 232 } 233 g2.translate(dx, dy); 234 } 235 break; 236 case COLR: 237 if ((cs != null) && (cs.col != null)) { 238 for (Instr patch : (Symbol) item.params) { 239 switch (patch.type) { 240 case N1: 241 if (cn > 0) { 242 Symbol s = (Symbol) patch.params; 243 drawSymbol(g2, s, 1.0, 0, 0, new Scheme(cs.col.get(0)), null); 244 } 245 break; 246 case N2: 247 if (cn > 0) { 248 Symbol s = (Symbol) patch.params; 249 drawSymbol(g2, s, 1.0, 0, 0, new Scheme((cn > 1) ? cs.col.get(1) : cs.col.get(0)), null); 250 } 251 break; 252 case P1: 253 if (cn > 0) { 254 g2.setPaint(cs.col.get(0)); 255 g2.fill((Path2D.Double) patch.params); 256 } 257 break; 258 case P2: 259 if (cn > 0) { 260 if (cn > 1) { 261 g2.setPaint(cs.col.get(1)); 262 } else { 263 g2.setPaint(cs.col.get(0)); 264 } 265 g2.fill((Path2D.Double) patch.params); 266 } 267 break; 268 case H2: 269 if ((cn > 1) && (pn > 0) && (cs.pat.get(0) == Patt.H)) { 270 g2.setPaint(cs.col.get(cs.col.size() - pn)); 271 g2.fill((Path2D.Double) patch.params); 272 } 273 break; 274 case H3: 275 if ((cn == 3) && (pn > 0) && (cs.pat.get(0) == Patt.H)) { 276 g2.setPaint(cs.col.get(1)); 277 g2.fill((Path2D.Double) patch.params); 278 } 279 break; 280 case H4: 281 if ((cn == 4) && (pn > 0) && (cs.pat.get(0) == Patt.H)) { 282 g2.setPaint(cs.col.get(1)); 283 g2.fill((Path2D.Double) patch.params); 284 } 285 break; 286 case H5: 287 if ((cn == 4) && (pn > 0) && (cs.pat.get(0) == Patt.H)) { 288 g2.setPaint(cs.col.get(2)); 289 g2.fill((Path2D.Double) patch.params); 290 } 291 break; 292 case V2: 293 if ((cn > 1) && (pn > 0) && (cs.pat.get(0) == Patt.V)) { 294 g2.setPaint(cs.col.get(cs.col.size() - pn)); 295 g2.fill((Path2D.Double) patch.params); 296 } 297 break; 298 case V3: 299 if ((cn == 3) && (pn > 0) && (cs.pat.get(0) == Patt.V)) { 300 g2.setPaint(cs.col.get(1)); 301 g2.fill((Path2D.Double) patch.params); 302 } 303 break; 304 case B1: 305 if (bpat == Patt.B) { 306 g2.setPaint(bcol); 307 g2.fill((Path2D.Double) patch.params); 308 } 309 break; 310 case S2: 311 if ((cn > 1) && (pn > 0) && (cs.pat.get(0) == Patt.S)) { 312 g2.setPaint(cs.col.get(1)); 313 g2.fill((Path2D.Double) patch.params); 314 } 315 break; 316 case S3: 317 if ((cn > 2) && (pn > 0) && (cs.pat.get(0) == Patt.S)) { 318 g2.setPaint(cs.col.get(2)); 319 g2.fill((Path2D.Double) patch.params); 320 } 321 break; 322 case S4: 323 if ((cn == 4) && (pn > 0) && (cs.pat.get(0) == Patt.S)) { 324 g2.setPaint(cs.col.get(3)); 325 g2.fill((Path2D.Double) patch.params); 326 } 327 break; 328 default: 329 break; 330 } 331 } 332 } 333 break; 334 case STRK: 335 g2.setStroke((BasicStroke) item.params); 336 break; 337 case FILL: 338 g2.setPaint((Color) item.params); 339 break; 340 case LINE: 341 g2.draw((Line2D.Double) item.params); 342 break; 343 case RECT: 344 g2.draw((Rectangle2D.Double) item.params); 345 break; 346 case RRCT: 347 g2.draw((RoundRectangle2D.Double) item.params); 348 break; 349 case ELPS: 350 g2.draw((Ellipse2D.Double) item.params); 351 break; 352 case EARC: 353 g2.draw((Arc2D.Double) item.params); 354 break; 355 case PLIN: 356 g2.draw((Path2D.Double) item.params); 357 break; 358 case PGON: 359 g2.fill((Path2D.Double) item.params); 360 break; 361 case RSHP: 362 g2.fill((RectangularShape) item.params); 363 break; 364 case SYMB: 365 SubSymbol s = (SubSymbol) item.params; 366 drawSymbol(g2, s.instr, s.scale, s.x, s.y, (s.scheme != null ? s.scheme : cs), s.delta); 367 break; 368 case TEXT: 369 Caption c = (Caption) item.params; 370 g2.setPaint(c.colour); 371 TextLayout layout = new TextLayout(c.string, c.font, g2.getFontRenderContext()); 372 Rectangle2D bb = layout.getBounds(); 373 dx = 0; 374 dy = 0; 375 if (c.dd != null) { 376 if (c.dd.t != null) g2.transform(c.dd.t); 377 switch (c.dd.h) { 378 case CC: 379 dx -= bb.getX() + (bb.getWidth() / 2.0); 380 dy -= bb.getY() + (bb.getHeight() / 2.0); 381 break; 382 case TL: 383 dx -= bb.getX(); 384 dy -= bb.getY(); 385 break; 386 case TR: 387 dx -= bb.getX() + bb.getWidth(); 388 dy -= bb.getY(); 389 break; 390 case TC: 391 dx -= bb.getX() + (bb.getWidth() / 2.0); 392 dy -= bb.getY(); 393 break; 394 case LC: 395 dx -= bb.getX(); 396 dy -= bb.getY() + (bb.getHeight() / 2.0); 397 break; 398 case RC: 399 dx -= bb.getX() + bb.getWidth(); 400 dy -= bb.getY() + (bb.getHeight() / 2.0); 401 break; 402 case BL: 403 dx -= bb.getX(); 404 dy -= bb.getY() + bb.getHeight(); 405 break; 406 case BR: 407 dx -= bb.getX() + bb.getWidth(); 408 dy -= bb.getY() + bb.getHeight(); 409 break; 410 case BC: 411 dx -= bb.getX() + (bb.getWidth() / 2.0); 412 dy -= bb.getY() + bb.getHeight(); 413 break; 414 } 415 } 416 layout.draw(g2, (float)dx, (float)dy); 417 break; 418 default: 419 break; 420 } 421 } 422 } 423 g2.setTransform(savetr); 424 } 28 // CHECKSTYLE.OFF: LineLength 29 public static final Color Yland = new Color(0xedbc0c); 30 // public static final Color Bwater = new Color(0x78acd2); 31 public static final Color Bwater = new Color(0x9bc5e3); 32 public static final Color Gdries = new Color(0x689868); 33 public static final Color Mline = new Color(0x9a6078); 34 public static final Color Msymb = new Color(0xa30075); 35 public static final Color Mtss = new Color(0xc0c480ff, true); 36 37 public enum Form { 38 BBOX, STRK, COLR, FILL, LINE, RECT, RRCT, ELPS, EARC, PLIN, PGON, RSHP, TEXT, SYMB, N1, N2, P1, P2, H2, H3, H4, H5, V2, V3, D2, D3, D4, B1, S2, S3, S4, C2, X2 39 } 40 41 public enum Patt { 42 Z, H, V, D, B, S, C, X 43 } 44 45 public enum Handle { 46 CC, TL, TR, TC, LC, RC, BL, BR, BC 47 } 48 49 public static class Instr { 50 public Form type; 51 public Object params; 52 53 public Instr(Form itype, Object iparams) { 54 type = itype; 55 params = iparams; 56 } 57 } 58 59 public static class Delta { 60 public Handle h; 61 public AffineTransform t; 62 63 public Delta(Handle ih, AffineTransform it) { 64 h = ih; 65 t = it; 66 } 67 68 public Delta(Handle ih) { 69 h = ih; 70 t = new AffineTransform(); 71 } 72 } 73 74 public static class Scheme { 75 public ArrayList<Patt> pat; 76 public ArrayList<Color> col; 77 78 public Scheme(ArrayList<Color> icol) { 79 pat = new ArrayList<>(); 80 col = icol; 81 } 82 83 public Scheme(ArrayList<Patt> ipat, ArrayList<Color> icol) { 84 pat = ipat; 85 col = icol; 86 } 87 88 public Scheme(Color icol) { 89 pat = new ArrayList<>(); 90 col = new ArrayList<>(); 91 col.add(icol); 92 } 93 94 public Scheme() { 95 pat = new ArrayList<>(); 96 col = new ArrayList<>(); 97 } 98 } 99 100 public static class Caption { 101 public String string; 102 public Font font; 103 public Color colour; 104 public Delta dd; 105 106 public Caption(String istr, Font ifont, Color icolour, Delta idd) { 107 string = istr; 108 font = ifont; 109 colour = icolour; 110 dd = idd; 111 } 112 } 113 114 public static class LineStyle { 115 public Color line; 116 public float width; 117 public float[] dash; 118 public Color fill; 119 120 public LineStyle(Color ifill) { 121 line = null; 122 width = 0; 123 dash = null; 124 fill = ifill; 125 } 126 127 public LineStyle(Color iline, float iwidth) { 128 line = iline; 129 width = iwidth; 130 dash = null; 131 fill = null; 132 } 133 134 public LineStyle(Color iline, float iwidth, float[] idash) { 135 line = iline; 136 width = iwidth; 137 dash = idash; 138 fill = null; 139 } 140 141 public LineStyle(Color iline, float iwidth, Color ifill) { 142 line = iline; 143 width = iwidth; 144 dash = null; 145 fill = ifill; 146 } 147 148 public LineStyle(Color iline, float iwidth, float[] idash, Color ifill) { 149 line = iline; 150 width = iwidth; 151 dash = idash; 152 fill = ifill; 153 } 154 } 155 156 public static class Symbol extends ArrayList<Instr> { 157 158 public Symbol() { 159 super(); 160 } 161 } 162 163 public static class SubSymbol { 164 public Symbol instr; 165 public double scale; 166 public double x; 167 public double y; 168 public Delta delta; 169 public Scheme scheme; 170 171 public SubSymbol(Symbol iinstr, double iscale, double ix, double iy, Scheme ischeme, Delta idelta) { 172 instr = iinstr; 173 scale = iscale; 174 x = ix; 175 y = iy; 176 delta = idelta; 177 scheme = ischeme; 178 } 179 } 180 181 public static void drawSymbol(Graphics2D g2, Symbol symbol, double scale, double x, double y, Scheme cs, Delta dd) { 182 int pn = 0; 183 int cn = 0; 184 Patt bpat = Patt.Z; 185 Color bcol = null; 186 g2.setPaint(Color.black); 187 if (cs != null) { 188 if ((cs.pat.size() > 0) && (cs.col.size() > 0) && (cs.pat.get(0) == Patt.B)) { 189 bpat = (cs.pat.remove(0)); 190 bcol = (cs.col.remove(0)); 191 } 192 pn = cs.pat.size(); 193 cn = cs.col.size() - ((pn != 0) ? pn - 1 : 0); 194 if ((pn == 0) && (cs.col.size() == 1)) { 195 g2.setPaint(cs.col.get(0)); 196 } 197 } 198 AffineTransform savetr = g2.getTransform(); 199 g2.translate(x, y); 200 g2.scale(scale, scale); 201 if (symbol != null) { 202 for (Instr item : symbol) { 203 switch (item.type) { 204 case BBOX: 205 Rectangle2D.Double bbox = (Rectangle2D.Double) item.params; 206 double dx = 0.0; 207 double dy = 0.0; 208 if (dd != null) { 209 g2.transform(dd.t); 210 switch (dd.h) { 211 case CC: 212 dx -= bbox.x + (bbox.width / 2.0); 213 dy -= bbox.y + (bbox.height / 2.0); 214 break; 215 case TL: 216 dx -= bbox.x; 217 dy -= bbox.y; 218 break; 219 case TR: 220 dx -= bbox.x + bbox.width; 221 dy -= bbox.y; 222 break; 223 case TC: 224 dx -= bbox.x + (bbox.width / 2.0); 225 dy -= bbox.y; 226 break; 227 case LC: 228 dx -= bbox.x; 229 dy -= bbox.y + (bbox.height / 2.0); 230 break; 231 case RC: 232 dx -= bbox.x + bbox.width; 233 dy -= bbox.y + (bbox.height / 2.0); 234 break; 235 case BL: 236 dx -= bbox.x; 237 dy -= bbox.y + bbox.height; 238 break; 239 case BR: 240 dx -= bbox.x + bbox.width; 241 dy -= bbox.y + bbox.height; 242 break; 243 case BC: 244 dx -= bbox.x + (bbox.width / 2.0); 245 dy -= bbox.y + bbox.height; 246 break; 247 } 248 g2.translate(dx, dy); 249 } 250 break; 251 case COLR: 252 if ((cs != null) && (cs.col != null)) { 253 for (Instr patch : (Symbol) item.params) { 254 switch (patch.type) { 255 case N1: 256 if (cn > 0) { 257 Symbol s = (Symbol) patch.params; 258 drawSymbol(g2, s, 1.0, 0, 0, new Scheme(cs.col.get(0)), null); 259 } 260 break; 261 case N2: 262 if (cn > 0) { 263 Symbol s = (Symbol) patch.params; 264 drawSymbol(g2, s, 1.0, 0, 0, new Scheme((cn > 1) ? cs.col.get(1) : cs.col.get(0)), null); 265 } 266 break; 267 case P1: 268 if (cn > 0) { 269 g2.setPaint(cs.col.get(0)); 270 g2.fill((Path2D.Double) patch.params); 271 } 272 break; 273 case P2: 274 if (cn > 0) { 275 if (cn > 1) { 276 g2.setPaint(cs.col.get(1)); 277 } else { 278 g2.setPaint(cs.col.get(0)); 279 } 280 g2.fill((Path2D.Double) patch.params); 281 } 282 break; 283 case H2: 284 if ((cn > 1) && (pn > 0) && (cs.pat.get(0) == Patt.H)) { 285 g2.setPaint(cs.col.get(cs.col.size() - pn)); 286 g2.fill((Path2D.Double) patch.params); 287 } 288 break; 289 case H3: 290 if ((cn == 3) && (pn > 0) && (cs.pat.get(0) == Patt.H)) { 291 g2.setPaint(cs.col.get(1)); 292 g2.fill((Path2D.Double) patch.params); 293 } 294 break; 295 case H4: 296 if ((cn == 4) && (pn > 0) && (cs.pat.get(0) == Patt.H)) { 297 g2.setPaint(cs.col.get(1)); 298 g2.fill((Path2D.Double) patch.params); 299 } 300 break; 301 case H5: 302 if ((cn == 4) && (pn > 0) && (cs.pat.get(0) == Patt.H)) { 303 g2.setPaint(cs.col.get(2)); 304 g2.fill((Path2D.Double) patch.params); 305 } 306 break; 307 case V2: 308 if ((cn > 1) && (pn > 0) && (cs.pat.get(0) == Patt.V)) { 309 g2.setPaint(cs.col.get(cs.col.size() - pn)); 310 g2.fill((Path2D.Double) patch.params); 311 } 312 break; 313 case V3: 314 if ((cn == 3) && (pn > 0) && (cs.pat.get(0) == Patt.V)) { 315 g2.setPaint(cs.col.get(1)); 316 g2.fill((Path2D.Double) patch.params); 317 } 318 break; 319 case B1: 320 if (bpat == Patt.B) { 321 g2.setPaint(bcol); 322 g2.fill((Path2D.Double) patch.params); 323 } 324 break; 325 case S2: 326 if ((cn > 1) && (pn > 0) && (cs.pat.get(0) == Patt.S)) { 327 g2.setPaint(cs.col.get(1)); 328 g2.fill((Path2D.Double) patch.params); 329 } 330 break; 331 case S3: 332 if ((cn > 2) && (pn > 0) && (cs.pat.get(0) == Patt.S)) { 333 g2.setPaint(cs.col.get(2)); 334 g2.fill((Path2D.Double) patch.params); 335 } 336 break; 337 case S4: 338 if ((cn == 4) && (pn > 0) && (cs.pat.get(0) == Patt.S)) { 339 g2.setPaint(cs.col.get(3)); 340 g2.fill((Path2D.Double) patch.params); 341 } 342 break; 343 default: 344 break; 345 } 346 } 347 } 348 break; 349 case STRK: 350 g2.setStroke((BasicStroke) item.params); 351 break; 352 case FILL: 353 g2.setPaint((Color) item.params); 354 break; 355 case LINE: 356 g2.draw((Line2D.Double) item.params); 357 break; 358 case RECT: 359 g2.draw((Rectangle2D.Double) item.params); 360 break; 361 case RRCT: 362 g2.draw((RoundRectangle2D.Double) item.params); 363 break; 364 case ELPS: 365 g2.draw((Ellipse2D.Double) item.params); 366 break; 367 case EARC: 368 g2.draw((Arc2D.Double) item.params); 369 break; 370 case PLIN: 371 g2.draw((Path2D.Double) item.params); 372 break; 373 case PGON: 374 g2.fill((Path2D.Double) item.params); 375 break; 376 case RSHP: 377 g2.fill((RectangularShape) item.params); 378 break; 379 case SYMB: 380 SubSymbol s = (SubSymbol) item.params; 381 drawSymbol(g2, s.instr, s.scale, s.x, s.y, (s.scheme != null ? s.scheme : cs), s.delta); 382 break; 383 case TEXT: 384 Caption c = (Caption) item.params; 385 g2.setPaint(c.colour); 386 TextLayout layout = new TextLayout(c.string, c.font, g2.getFontRenderContext()); 387 Rectangle2D bb = layout.getBounds(); 388 dx = 0; 389 dy = 0; 390 if (c.dd != null) { 391 if (c.dd.t != null) g2.transform(c.dd.t); 392 switch (c.dd.h) { 393 case CC: 394 dx -= bb.getX() + (bb.getWidth() / 2.0); 395 dy -= bb.getY() + (bb.getHeight() / 2.0); 396 break; 397 case TL: 398 dx -= bb.getX(); 399 dy -= bb.getY(); 400 break; 401 case TR: 402 dx -= bb.getX() + bb.getWidth(); 403 dy -= bb.getY(); 404 break; 405 case TC: 406 dx -= bb.getX() + (bb.getWidth() / 2.0); 407 dy -= bb.getY(); 408 break; 409 case LC: 410 dx -= bb.getX(); 411 dy -= bb.getY() + (bb.getHeight() / 2.0); 412 break; 413 case RC: 414 dx -= bb.getX() + bb.getWidth(); 415 dy -= bb.getY() + (bb.getHeight() / 2.0); 416 break; 417 case BL: 418 dx -= bb.getX(); 419 dy -= bb.getY() + bb.getHeight(); 420 break; 421 case BR: 422 dx -= bb.getX() + bb.getWidth(); 423 dy -= bb.getY() + bb.getHeight(); 424 break; 425 case BC: 426 dx -= bb.getX() + (bb.getWidth() / 2.0); 427 dy -= bb.getY() + bb.getHeight(); 428 break; 429 } 430 } 431 layout.draw(g2, (float) dx, (float) dy); 432 break; 433 default: 434 break; 435 } 436 } 437 } 438 g2.setTransform(savetr); 439 } 425 440 } -
applications/editors/josm/plugins/seachart/src/symbols/Topmarks.java
r32393 r32394 12 12 import java.awt.BasicStroke; 13 13 import java.awt.Color; 14 import java.awt.geom.*; 14 import java.awt.geom.AffineTransform; 15 import java.awt.geom.Ellipse2D; 16 import java.awt.geom.GeneralPath; 17 import java.awt.geom.Line2D; 18 import java.awt.geom.Path2D; 19 import java.awt.geom.Rectangle2D; 15 20 import java.util.EnumMap; 16 21 17 import s57.S57val.*; 18 import symbols.Symbols.*; 22 import s57.S57val.BoySHP; 23 import s57.S57val.TopSHP; 24 import symbols.Symbols.Delta; 25 import symbols.Symbols.Form; 26 import symbols.Symbols.Handle; 27 import symbols.Symbols.Instr; 28 import symbols.Symbols.Symbol; 19 29 20 30 public 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 31 // CHECKSTYLE.OFF: LineLength 32 public static final Symbol RadarReflector = new Symbol(); 33 static { 34 RadarReflector.add(new Instr(Form.BBOX, new Rectangle2D.Double(-50, -40, 100, 40))); 35 RadarReflector.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 36 RadarReflector.add(new Instr(Form.FILL, Color.black)); 37 Path2D.Double p = new Path2D.Double(); p.moveTo(-30, -3); p.quadTo(0, -40, 30, -3); p.moveTo(0, -20); p.lineTo(0, -37); 38 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); 39 RadarReflector.add(new Instr(Form.PLIN, p)); 40 } 41 42 public static final Symbol TopBesom = new Symbol(); 43 static { 44 TopBesom.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 45 TopBesom.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 46 TopBesom.add(new Instr(Form.FILL, Color.black)); 47 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); 48 TopBesom.add(new Instr(Form.PLIN, p)); 49 } 50 51 public static final Symbol TopIBesom = new Symbol(); 52 static { 53 TopIBesom.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 54 TopIBesom.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 55 TopIBesom.add(new Instr(Form.FILL, Color.black)); 56 Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0, -30.0); p.lineTo(0.0, 0.0); p.lineTo(15.0, -30.0); 57 TopIBesom.add(new Instr(Form.PLIN, p)); 58 } 59 60 public static final Symbol TopBoard = new Symbol(); 61 static { 62 TopBoard.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -60, 60, 60))); 63 Symbol colours = new Symbol(); 64 Path2D.Double p = new Path2D.Double(); p.moveTo(-29, -1); p.lineTo(-29, -59); p.lineTo(29, -59); p.lineTo(29, -1); p.closePath(); 65 colours.add(new Instr(Form.P1, p)); 66 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 67 p.moveTo(-29, -1); p.lineTo(-29, -59); p.lineTo(29, -59); p.lineTo(29, -1); p.closePath(); 68 p.moveTo(-19, -10); p.lineTo(-19, -49); p.lineTo(19, -49); p.lineTo(19, -10); p.closePath(); 69 colours.add(new Instr(Form.B1, p)); 70 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 71 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(); 72 colours.add(new Instr(Form.S2, p)); 73 p = new Path2D.Double(); p.moveTo(-29, -1); p.lineTo(-29, -30); p.lineTo(0, -30); p.lineTo(0, -1); p.closePath(); 74 colours.add(new Instr(Form.S3, p)); 75 p = new Path2D.Double(); p.moveTo(0, -1); p.lineTo(0, -30); p.lineTo(29, -30); p.lineTo(29, -1); p.closePath(); 76 colours.add(new Instr(Form.S4, p)); 77 TopBoard.add(new Instr(Form.COLR, colours)); 78 TopBoard.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 79 TopBoard.add(new Instr(Form.FILL, Color.black)); 80 p = new Path2D.Double(); p.moveTo(-29, -1); p.lineTo(-29, -59); p.lineTo(29, -59); p.lineTo(29.0, -1); p.closePath(); 81 TopBoard.add(new Instr(Form.PLIN, p)); 82 } 83 84 public static final Symbol TopCan = new Symbol(); 85 static { 86 TopCan.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 87 Symbol colours = new Symbol(); 88 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(); 89 colours.add(new Instr(Form.P1, p)); 90 TopCan.add(new Instr(Form.COLR, colours)); 91 TopCan.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 92 TopCan.add(new Instr(Form.FILL, Color.black)); 93 TopCan.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -15))); 94 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(); 95 TopCan.add(new Instr(Form.PLIN, p)); 96 } 97 98 public static final Symbol TopCanSphere = new Symbol(); 99 public static final Symbol TopCircle = new Symbol(); 100 public static final Symbol TopCircleTriangle = new Symbol(); 101 public static final Symbol TopCone = new Symbol(); 102 static { 103 TopCone.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 104 Symbol colours = new Symbol(); 105 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(); 106 colours.add(new Instr(Form.P1, p)); 107 TopCone.add(new Instr(Form.COLR, colours)); 108 TopCone.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 109 TopCone.add(new Instr(Form.FILL, Color.black)); 110 TopCone.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -15))); 111 p = new Path2D.Double(); p.moveTo(-15.0, -15.0); p.lineTo(0.0, -45.0); p.lineTo(15.0, -15.0); p.closePath(); 112 TopCone.add(new Instr(Form.PLIN, p)); 113 } 114 115 public static final Symbol TopConeSphere = new Symbol(); 116 static { 117 TopConeSphere.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 118 Symbol colours = new Symbol(); 119 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(); 120 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(); 121 colours.add(new Instr(Form.P1, p)); 122 TopConeSphere.add(new Instr(Form.COLR, colours)); 123 TopConeSphere.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 124 TopConeSphere.add(new Instr(Form.FILL, Color.black)); 125 TopConeSphere.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -15))); 126 TopConeSphere.add(new Instr(Form.LINE, new Line2D.Double(0, -42, 0, -47))); 127 p = new Path2D.Double(); p.moveTo(-15.0, -47.0); p.lineTo(0.0, -77.0); p.lineTo(15.0, -47.0); p.closePath(); 128 TopConeSphere.add(new Instr(Form.ELPS, new Ellipse2D.Double(-14, -42, 28, 28))); 129 TopConeSphere.add(new Instr(Form.PLIN, p)); 130 } 131 132 public static final Symbol TopCross = new Symbol(); 133 static { 134 TopCross.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -80, 60, 80))); 135 Symbol colours = new Symbol(); 136 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); 137 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(); 138 colours.add(new Instr(Form.P1, p)); 139 TopCross.add(new Instr(Form.COLR, colours)); 140 TopCross.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 141 TopCross.add(new Instr(Form.FILL, Color.black)); 142 TopCross.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -15))); 143 TopCross.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 144 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); 145 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(); 146 TopCross.add(new Instr(Form.PLIN, p)); 147 } 148 149 public static final Symbol TopCrosses = new Symbol(); 150 151 public static final Symbol TopCrossCircle = new Symbol(); 152 153 public static final Symbol TopCube = new Symbol(); 154 static { 155 TopCube.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 156 Symbol colours = new Symbol(); 157 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(); 158 colours.add(new Instr(Form.P1, p)); 159 TopCube.add(new Instr(Form.COLR, colours)); 160 TopCube.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 161 TopCube.add(new Instr(Form.FILL, Color.black)); 162 TopCube.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -15))); 163 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); 164 p.moveTo(-15, -37); p.lineTo(-15, -20); p.lineTo(0, -9); p.lineTo(15, -20); p.lineTo(15, -37); 165 TopCube.add(new Instr(Form.PLIN, p)); 166 } 167 168 public static final Symbol TopEast = new Symbol(); 169 static { 170 TopEast.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -80, 60, 80))); 171 Symbol colours = new Symbol(); 172 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(); 173 colours.add(new Instr(Form.P1, p)); 174 p = new Path2D.Double(); p.moveTo(0.0, -10.0); p.lineTo(-15.0, -43.0); p.lineTo(15.0, -43.0); p.closePath(); 175 colours.add(new Instr(Form.P2, p)); 176 TopEast.add(new Instr(Form.COLR, colours)); 177 TopEast.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 178 TopEast.add(new Instr(Form.FILL, Color.black)); 179 TopEast.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -10))); 180 TopEast.add(new Instr(Form.LINE, new Line2D.Double(0, -43, 0, -47))); 181 TopEast.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 182 p = new Path2D.Double(); p.moveTo(0.0, -10.0); p.lineTo(-15.0, -43.0); p.lineTo(15.0, -43.0); p.closePath(); 183 p.moveTo(0.0, -80.0); p.lineTo(-15.0, -47.0); p.lineTo(15.0, -47.0); p.closePath(); 184 TopEast.add(new Instr(Form.PLIN, p)); 185 } 186 187 public static final Symbol TopFlag = new Symbol(); 188 static { 189 TopFlag.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 190 Symbol colours = new Symbol(); 191 Path2D.Double p = new Path2D.Double(); p.moveTo(0, -40); p.lineTo(0, -10); p.lineTo(39, -10); p.lineTo(39, -40); p.closePath(); 192 colours.add(new Instr(Form.P1, p)); 193 p = new Path2D.Double(); p.moveTo(0, -25); p.lineTo(0, -10); p.lineTo(40, -10); p.lineTo(39, -25); p.closePath(); 194 colours.add(new Instr(Form.H2, p)); 195 p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(0, -20); p.lineTo(40, -20); p.lineTo(39, -30); p.closePath(); 196 colours.add(new Instr(Form.H3, p)); 197 p = new Path2D.Double(); p.moveTo(19.5, -40); p.lineTo(19.5, -10); p.lineTo(39, -10); p.lineTo(39, -40); p.closePath(); 198 colours.add(new Instr(Form.V2, p)); 199 p = new Path2D.Double(); p.moveTo(13, -40); p.lineTo(13, -10); p.lineTo(26, -10); p.lineTo(26, -40); p.closePath(); 200 colours.add(new Instr(Form.V3, p)); 201 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 202 p.moveTo(0, -40); p.lineTo(0, -10); p.lineTo(39, -10); p.lineTo(39, -40); p.closePath(); 203 p.moveTo(8, -35); p.lineTo(8, -15); p.lineTo(33, -15); p.lineTo(33, -35); p.closePath(); 204 colours.add(new Instr(Form.B1, p)); 205 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(); 206 colours.add(new Instr(Form.S2, p)); 207 p = new Path2D.Double(); p.moveTo(0, -25); p.lineTo(0, -10); p.lineTo(20, -10); p.lineTo(20, -25); p.closePath(); 208 colours.add(new Instr(Form.S3, p)); 209 p = new Path2D.Double(); p.moveTo(20, -25); p.lineTo(20, -10); p.lineTo(39, -10); p.lineTo(39, -25); p.closePath(); 210 colours.add(new Instr(Form.S4, p)); 211 TopFlag.add(new Instr(Form.COLR, colours)); 212 TopFlag.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 213 TopFlag.add(new Instr(Form.FILL, Color.black)); 214 TopFlag.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -45))); 215 TopFlag.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 216 TopFlag.add(new Instr(Form.RECT, new Rectangle2D.Double(0, -40, 39, 30))); 217 } 218 219 public static final Symbol TopIcone = new Symbol(); 220 static { 221 TopIcone.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 222 Symbol colours = new Symbol(); 223 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(); 224 colours.add(new Instr(Form.P1, p)); 225 TopIcone.add(new Instr(Form.COLR, colours)); 226 TopIcone.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 227 TopIcone.add(new Instr(Form.FILL, Color.black)); 228 TopIcone.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -15))); 229 p = new Path2D.Double(); p.moveTo(-15.0, -45.0); p.lineTo(0.0, -15.0); p.lineTo(15.0, -45.0); p.closePath(); 230 TopIcone.add(new Instr(Form.PLIN, p)); 231 } 232 233 public static final Symbol TopIsol = new Symbol(); 234 static { 235 TopIsol.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -80, 60, 80))); 236 Symbol colours = new Symbol(); 237 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(); 238 colours.add(new Instr(Form.P1, p)); 239 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(); 240 colours.add(new Instr(Form.P2, p)); 241 TopIsol.add(new Instr(Form.COLR, colours)); 242 TopIsol.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 243 TopIsol.add(new Instr(Form.FILL, Color.black)); 244 TopIsol.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -15))); 245 TopIsol.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 246 TopIsol.add(new Instr(Form.ELPS, new Ellipse2D.Double(-13, -41, 26, 26))); 247 TopIsol.add(new Instr(Form.ELPS, new Ellipse2D.Double(-13, -68, 26, 26))); 248 } 249 250 public static final Symbol TopMooring = new Symbol(); 251 static { 252 TopMooring.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -80, 60, 80))); 253 TopMooring.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 254 TopMooring.add(new Instr(Form.FILL, Color.black)); 255 TopMooring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-1.5, -6, 3, 3))); 256 TopMooring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-8.5, -25, 17, 17))); 257 } 258 259 public static final Symbol TopNorth = new Symbol(); 260 static { 261 TopNorth.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -80, 60, 80))); 262 Symbol colours = new Symbol(); 263 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(); 264 colours.add(new Instr(Form.P1, p)); 265 p = new Path2D.Double(); p.moveTo(-15.0, -10.0); p.lineTo(0.0, -43.0); p.lineTo(15.0, -10.0); p.closePath(); 266 colours.add(new Instr(Form.P2, p)); 267 TopNorth.add(new Instr(Form.COLR, colours)); 268 TopNorth.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 269 TopNorth.add(new Instr(Form.FILL, Color.black)); 270 TopNorth.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -10))); 271 TopNorth.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 272 p = new Path2D.Double(); p.moveTo(-15.0, -10.0); p.lineTo(0.0, -43.0); p.lineTo(15.0, -10.0); p.closePath(); 273 p.moveTo(0.0, -78.0); p.lineTo(-15.0, -45.0); p.lineTo(15.0, -45.0); p.closePath(); 274 TopNorth.add(new Instr(Form.PLIN, p)); 275 } 276 277 public static final Symbol TopSouth = new Symbol(); 278 static { 279 TopSouth.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -80, 60, 80))); 280 Symbol colours = new Symbol(); 281 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(); 282 colours.add(new Instr(Form.P1, p)); 283 p = new Path2D.Double(); p.moveTo(0.0, -10.0); p.lineTo(-15.0, -43.0); p.lineTo(15.0, -43.0); p.closePath(); 284 colours.add(new Instr(Form.P2, p)); 285 TopSouth.add(new Instr(Form.COLR, colours)); 286 TopSouth.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 287 TopSouth.add(new Instr(Form.FILL, Color.black)); 288 TopSouth.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -10))); 289 TopSouth.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 290 p = new Path2D.Double(); p.moveTo(0.0, -10.0); p.lineTo(-15.0, -43.0); p.lineTo(15.0, -43.0); p.closePath(); 291 p.moveTo(-15.0, -78.0); p.lineTo(0.0, -45.0); p.lineTo(15.0, -78.0); p.closePath(); 292 TopSouth.add(new Instr(Form.PLIN, p)); 293 } 294 295 public static final Symbol TopSphere = new Symbol(); 296 static { 297 TopSphere.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -80, 60, 80))); 298 Symbol colours = new Symbol(); 299 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(); 300 colours.add(new Instr(Form.P1, p)); 301 TopSphere.add(new Instr(Form.COLR, colours)); 302 TopSphere.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 303 TopSphere.add(new Instr(Form.FILL, Color.black)); 304 TopSphere.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -15))); 305 TopSphere.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 306 TopSphere.add(new Instr(Form.ELPS, new Ellipse2D.Double(-14, -42, 28, 28))); 307 } 308 309 public static final Symbol TopSquare = new Symbol(); 310 static { 311 TopSquare.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 312 Symbol colours = new Symbol(); 313 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(); 314 colours.add(new Instr(Form.P1, p)); 315 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(); 316 colours.add(new Instr(Form.H2, p)); 317 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(); 318 colours.add(new Instr(Form.H3, p)); 319 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(); 320 colours.add(new Instr(Form.V2, p)); 321 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(); 322 colours.add(new Instr(Form.V3, p)); 323 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 324 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(); 325 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(); 326 colours.add(new Instr(Form.B1, p)); 327 TopSquare.add(new Instr(Form.COLR, colours)); 328 TopSquare.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 329 TopSquare.add(new Instr(Form.FILL, Color.black)); 330 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(); 331 TopSquare.add(new Instr(Form.PLIN, p)); 332 } 333 334 public static final Symbol TopRectangleH = new Symbol(); 335 static { 336 TopRectangleH.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(-20.0, -1.0); p.lineTo(-20.0, -27.0); p.lineTo(20.0, -27.0); p.lineTo(20.0, -1.0); p.closePath(); 339 colours.add(new Instr(Form.P1, p)); 340 TopRectangleH.add(new Instr(Form.COLR, colours)); 341 TopRectangleH.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 342 TopRectangleH.add(new Instr(Form.FILL, Color.black)); 343 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(); 344 TopRectangleH.add(new Instr(Form.PLIN, p)); 345 } 346 347 public static final Symbol TopRectangleV = new Symbol(); 348 static { 349 TopRectangleV.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 350 Symbol colours = new Symbol(); 351 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(); 352 colours.add(new Instr(Form.P1, p)); 353 TopRectangleV.add(new Instr(Form.COLR, colours)); 354 TopRectangleV.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 355 TopRectangleV.add(new Instr(Form.FILL, Color.black)); 356 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(); 357 TopRectangleV.add(new Instr(Form.PLIN, p)); 358 } 359 360 public static final Symbol TopRhombus = new Symbol(); 361 static { 362 TopRhombus.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 363 Symbol colours = new Symbol(); 364 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(); 365 colours.add(new Instr(Form.P1, p)); 366 p = new Path2D.Double(); p.moveTo(-15.0, -15.0); p.lineTo(0.0, -1.0); p.lineTo(15.0, -15.0); p.closePath(); 367 colours.add(new Instr(Form.H2, p)); 368 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(); 369 colours.add(new Instr(Form.H3, p)); 370 p = new Path2D.Double(); p.moveTo(0.0, -29.0); p.lineTo(0.0, -1.0); p.lineTo(15.0, -15.0); p.closePath(); 371 colours.add(new Instr(Form.V2, p)); 372 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(); 373 colours.add(new Instr(Form.V3, p)); 374 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 375 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(); 376 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(); 377 colours.add(new Instr(Form.B1, p)); 378 TopRhombus.add(new Instr(Form.COLR, colours)); 379 TopRhombus.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 380 TopRhombus.add(new Instr(Form.FILL, Color.black)); 381 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(); 382 TopRhombus.add(new Instr(Form.PLIN, p)); 383 } 384 385 public static final Symbol TopRhombusCircle = new Symbol(); 386 387 public static final Symbol TopSphereRhombus = new Symbol(); 388 static { 389 TopSphereRhombus.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -80, 60, 80))); 390 TopSphereRhombus.add(new Instr(Form.SYMB, new Symbols.SubSymbol(TopRhombus, 1.0, 0, 0, null, null))); 391 Symbol colours = new Symbol(); 392 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(); 393 colours.add(new Instr(Form.P1, p)); 394 TopSphereRhombus.add(new Instr(Form.COLR, colours)); 395 TopSphereRhombus.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 396 TopSphereRhombus.add(new Instr(Form.FILL, Color.black)); 397 TopSphereRhombus.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 398 TopSphereRhombus.add(new Instr(Form.ELPS, new Ellipse2D.Double(-14, -58, 28, 28))); 399 } 400 401 public static final Symbol TopT = new Symbol(); 402 403 public static final Symbol TopTrapeziumU = new Symbol(); 404 static { 405 TopTrapeziumU.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(-20.0, -1.0); p.lineTo(-13.0, -27.0); p.lineTo(13.0, -27.0); p.lineTo(20.0, -1.0); p.closePath(); 408 colours.add(new Instr(Form.P1, p)); 409 TopTrapeziumU.add(new Instr(Form.COLR, colours)); 410 TopTrapeziumU.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 411 TopTrapeziumU.add(new Instr(Form.FILL, Color.black)); 412 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(); 413 TopTrapeziumU.add(new Instr(Form.PLIN, p)); 414 } 415 416 public static final Symbol TopTrapeziumD = new Symbol(); 417 static { 418 TopTrapeziumD.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 419 Symbol colours = new Symbol(); 420 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(); 421 colours.add(new Instr(Form.P1, p)); 422 TopTrapeziumD.add(new Instr(Form.COLR, colours)); 423 TopTrapeziumD.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 424 TopTrapeziumD.add(new Instr(Form.FILL, Color.black)); 425 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(); 426 TopTrapeziumD.add(new Instr(Form.PLIN, p)); 427 } 428 429 public static final Symbol TopTriangle = new Symbol(); 430 static { 431 TopTriangle.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 432 Symbol colours = new Symbol(); 433 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(); 434 colours.add(new Instr(Form.P1, p)); 435 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 436 p.moveTo(-15.0, -1.0); p.lineTo(0.0, -29.0); p.lineTo(15.0, -1.0); p.closePath(); 437 p.moveTo(-10.0, -6.0); p.lineTo(0.0, -24.0); p.lineTo(10.0, -6.0); p.closePath(); 438 colours.add(new Instr(Form.B1, p)); 439 TopTriangle.add(new Instr(Form.COLR, colours)); 440 TopTriangle.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 441 TopTriangle.add(new Instr(Form.FILL, Color.black)); 442 p = new Path2D.Double(); p.moveTo(-15.0, -1.0); p.lineTo(0.0, -29.0); p.lineTo(15.0, -1.0); p.closePath(); 443 TopTriangle.add(new Instr(Form.PLIN, p)); 444 } 445 446 public static final Symbol TopItriangle = new Symbol(); 447 static { 448 TopItriangle.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80))); 449 Symbol colours = new Symbol(); 450 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(); 451 colours.add(new Instr(Form.P1, p)); 452 p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 453 p.moveTo(-15.0, -29.0); p.lineTo(0.0, -1.0); p.lineTo(15.0, -29.0); p.closePath(); 454 p.moveTo(-10.0, -24.0); p.lineTo(0.0, -6.0); p.lineTo(10.0, -24.0); p.closePath(); 455 colours.add(new Instr(Form.B1, p)); 456 TopItriangle.add(new Instr(Form.COLR, colours)); 457 TopItriangle.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 458 TopItriangle.add(new Instr(Form.FILL, Color.black)); 459 p = new Path2D.Double(); p.moveTo(-15.0, -29.0); p.lineTo(0.0, -1.0); p.lineTo(15.0, -29.0); p.closePath(); 460 TopItriangle.add(new Instr(Form.PLIN, p)); 461 } 462 463 public static final Symbol TopTriangleCircle = new Symbol(); 464 465 public static final Symbol TopWest = new Symbol(); 466 static { 467 TopWest.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -80, 60, 80))); 468 Symbol colours = new Symbol(); 469 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(); 470 colours.add(new Instr(Form.P1, p)); 471 p = new Path2D.Double(); p.moveTo(-15.0, -10.0); p.lineTo(0.0, -43.0); p.lineTo(15.0, -10.0); p.closePath(); 472 colours.add(new Instr(Form.P2, p)); 473 TopWest.add(new Instr(Form.COLR, colours)); 474 TopWest.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 475 TopWest.add(new Instr(Form.FILL, Color.black)); 476 TopWest.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -10))); 477 TopWest.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 478 p = new Path2D.Double(); p.moveTo(-15.0, -10.0); p.lineTo(0.0, -43.0); p.lineTo(15.0, -10.0); p.closePath(); 479 p.moveTo(-15.0, -78.0); p.lineTo(0.0, -45.0); p.lineTo(15.0, -78.0); p.closePath(); 480 TopWest.add(new Instr(Form.PLIN, p)); 481 } 482 483 public static final Symbol TopX = new Symbol(); 484 static { 485 TopX.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30, -80, 60, 80))); 486 Symbol colours = new Symbol(); 487 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); 488 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(); 489 colours.add(new Instr(Form.P1, p)); 490 TopX.add(new Instr(Form.COLR, colours)); 491 TopX.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 492 TopX.add(new Instr(Form.FILL, Color.black)); 493 TopX.add(new Instr(Form.LINE, new Line2D.Double(0, 0, 0, -27))); 494 TopX.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER))); 495 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); 496 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(); 497 TopX.add(new Instr(Form.PLIN, p)); 498 } 499 500 public static final Symbol TopOther = new Symbol(); 501 502 public static final EnumMap<TopSHP, Symbol> Shapes = new EnumMap<>(TopSHP.class); 503 static { 504 Shapes.put(TopSHP.TOP_BESM, TopBesom); Shapes.put(TopSHP.TOP_IBESM, TopIBesom); Shapes.put(TopSHP.TOP_BORD, TopBoard); Shapes.put(TopSHP.TOP_CAN, TopCan); 505 Shapes.put(TopSHP.TOP_CONE, TopCone); Shapes.put(TopSHP.TOP_CROS, TopCross); Shapes.put(TopSHP.TOP_EAST, TopEast); Shapes.put(TopSHP.TOP_ICONE, TopIcone); 506 Shapes.put(TopSHP.TOP_ISD, TopIsol); Shapes.put(TopSHP.TOP_NORTH, TopNorth); Shapes.put(TopSHP.TOP_SOUTH, TopSouth); Shapes.put(TopSHP.TOP_SPHR, TopSphere); 507 Shapes.put(TopSHP.TOP_SQUR, TopSquare); Shapes.put(TopSHP.TOP_TRI, TopTriangle); Shapes.put(TopSHP.TOP_ITRI, TopItriangle); Shapes.put(TopSHP.TOP_WEST, TopWest); 508 Shapes.put(TopSHP.TOP_SALT, TopX); Shapes.put(TopSHP.TOP_RHOM, TopRhombus); Shapes.put(TopSHP.TOP_FLAG, TopFlag); Shapes.put(TopSHP.TOP_CUBE, TopCube); 509 Shapes.put(TopSHP.TOP_SPRH, TopSphereRhombus); Shapes.put(TopSHP.TOP_HRECT, TopRectangleH); Shapes.put(TopSHP.TOP_VRECT, TopRectangleV); 510 Shapes.put(TopSHP.TOP_TRAP, TopTrapeziumU); Shapes.put(TopSHP.TOP_ITRAP, TopTrapeziumD); Shapes.put(TopSHP.TOP_COSP, TopConeSphere); 511 Shapes.put(TopSHP.TOP_CIRC, TopCircle); Shapes.put(TopSHP.TOP_CRSS, TopCrosses); Shapes.put(TopSHP.TOP_T, TopT); Shapes.put(TopSHP.TOP_TRCL, TopTriangleCircle); 512 Shapes.put(TopSHP.TOP_CRCL, TopCrossCircle); Shapes.put(TopSHP.TOP_RHCL, TopRhombusCircle); Shapes.put(TopSHP.TOP_CLTR, TopCircleTriangle); 513 Shapes.put(TopSHP.TOP_CYSP, TopCanSphere); Shapes.put(TopSHP.TOP_OTHR, TopOther); 514 } 515 516 // CHECKSTYLE.OFF: SingleSpaceSeparator 517 public static final EnumMap<BoySHP, Delta> BuoyDeltas = new EnumMap<>(BoySHP.class); 518 static { 519 BuoyDeltas.put(BoySHP.BOY_PILR, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 31.5, -95.0))); 520 BuoyDeltas.put(BoySHP.BOY_SPAR, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 31.5, -95.0))); 521 BuoyDeltas.put(BoySHP.BOY_CAN, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9))); 522 BuoyDeltas.put(BoySHP.BOY_CONE, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9))); 523 BuoyDeltas.put(BoySHP.BOY_SPHR, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9))); 524 BuoyDeltas.put(BoySHP.BOY_BARL, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9))); 525 BuoyDeltas.put(BoySHP.BOY_SUPR, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0.0, -42.0))); 526 BuoyDeltas.put(BoySHP.BOY_ICE, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0.0, -25.0))); 527 } 528 529 public static final Delta FloatDelta = new Delta(Handle.BC, AffineTransform.getTranslateInstance(0.0, -42.0)); 530 public static final Delta BeaconDelta = new Delta(Handle.BC, AffineTransform.getTranslateInstance(0.0, -70.0)); 531 public static final Delta LightDelta = new Delta(Handle.BC, AffineTransform.getTranslateInstance(0.0, -20.0)); 532 // CHECKSTYLE.ON: SingleSpaceSeparator 506 533 }
Note:
See TracChangeset
for help on using the changeset viewer.