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