Changeset 32394 in osm for applications/editors/josm/plugins/seachart/src/symbols/Areas.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/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 }
Note:
See TracChangeset
for help on using the changeset viewer.