Changeset 32394 in osm for applications/editors/josm/plugins/seachart/src/symbols/Beacons.java
- Timestamp:
- 2016-06-24T03:48:12+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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 }
Note:
See TracChangeset
for help on using the changeset viewer.