Ignore:
Timestamp:
2016-03-08T10:10:33+01:00 (11 years ago)
Author:
malcolmh
Message:

[SeaChart] finish notices

Location:
applications/editors/josm/plugins/seachart/src/symbols
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/seachart/src/symbols/Areas.java

    r31044 r32101  
    5353                LaneArrow.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-240,40,240)));
    5454                LaneArrow.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    55                 LaneArrow.add(new Instr(Form.FILL, Symbols.Mline));
     55                LaneArrow.add(new Instr(Form.FILL, Symbols.Mtss));
    5656                Path2D.Double p = new Path2D.Double(); p.moveTo(15,0); p.lineTo(15,-195); p.lineTo(40,-195);
    5757                p.lineTo(0,-240); p.lineTo(-40,-195); p.lineTo(-15,-195); p.lineTo(-15,0); p.closePath();
     
    204204                g2.draw(p);
    205205        }
     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        }
    206228}
  • applications/editors/josm/plugins/seachart/src/symbols/Harbours.java

    r32088 r32101  
    159159                LandingSteps.add(new Instr(Form.PGON, p));
    160160        }
    161         public static final Symbol Lock_Gate = new Symbol();
    162         public static final Symbol Lock = new Symbol();
    163161        public static final Symbol Marina = new Symbol();
    164162        static {
  • applications/editors/josm/plugins/seachart/src/symbols/Notices.java

    r30894 r32101  
    10711071  };
    10721072
     1073  private static final Symbol NoticeBB = new Symbol();
     1074  static {
     1075        NoticeBB.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1076        NoticeBB.add(new Instr(Form.LINE, new Line2D.Double(-29,-29,-29,29)));
     1077        NoticeBB.add(new Instr(Form.LINE, new Line2D.Double(29,-29,29,29)));
     1078        NoticeBB.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1079        NoticeBB.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1080  }
     1081 
     1082  private static final Symbol NoticeBP = new Symbol();
     1083        static {
     1084                NoticeBP.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1085                NoticeBP.add(new Instr(Form.FILL, Color.white));
     1086                NoticeBP.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1087                NoticeBP.add(new Instr(Form.FILL, Color.black));
     1088                NoticeBP.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1089        }
     1090
     1091  private static final Symbol NoticeCR = new Symbol();
     1092        static {
     1093                NoticeCR.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1094                NoticeCR.add(new Instr(Form.FILL, Color.white));
     1095                Path2D.Double p = new Path2D.Double(); p.moveTo(0, -30); p.lineTo(-30, 0); p.lineTo(0, 30); p.lineTo(30, 0); p.closePath();
     1096                NoticeCR.add(new Instr(Form.PGON, p));
     1097                NoticeCR.add(new Instr(Form.FILL, Color.black));
     1098                NoticeCR.add(new Instr(Form.PLIN, p));
     1099        }
     1100
     1101  private static final Symbol NoticeKT = new Symbol();
     1102        static {
     1103                NoticeKT.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1104                NoticeKT.add(new Instr(Form.FILL, Color.white));
     1105                Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,30); p.lineTo(30,30); p.closePath();
     1106                NoticeKT.add(new Instr(Form.PGON, p));
     1107                NoticeKT.add(new Instr(Form.FILL, Color.black));
     1108                NoticeKT.add(new Instr(Form.PLIN, p));
     1109        }
     1110
    10731111        public static final Symbol NoticeBnank = new Symbol();
    10741112        static {
    10751113                NoticeBnank.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    10761114                Symbol colours = new Symbol();
    1077                 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();
    1078                 colours.add(new Instr(Form.P1, p));
    1079                 p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
    1080                 colours.add(new Instr(Form.P2, p));
     1115                Symbol ss = new Symbol();
     1116                ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1117                colours.add(new Instr(Form.N1, ss));
     1118                ss = new Symbol();
     1119                ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, null, null)));
     1120                ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     1121                ss.add(new Instr(Form.LINE, new Line2D.Double(-27,-27,27,27)));
     1122                ss.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1123                ss.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1124                colours.add(new Instr(Form.N2, ss));
    10811125                NoticeBnank.add(new Instr(Form.COLR, colours));
    10821126        }
    10831127        public static final Symbol NoticeBlmhr = new Symbol();
     1128        static {
     1129                NoticeBlmhr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1130                Symbol colours = new Symbol();
     1131                Symbol ss = new Symbol();
     1132                ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1133                colours.add(new Instr(Form.N1, ss));
     1134                ss = new Symbol();
     1135                ss.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     1136                Path2D.Double p = new Path2D.Double(); p.moveTo(-29,-29); p.lineTo(29,-29); p.lineTo(0,0); p.closePath();
     1137                ss.add(new Instr(Form.PGON, p));
     1138                ss.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1139                ss.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1140                colours.add(new Instr(Form.N2, ss));
     1141                NoticeBlmhr.add(new Instr(Form.COLR, colours));
     1142        }
     1143        public static final Symbol NoticeBktpm = new Symbol();
     1144        static {
     1145                NoticeBktpm.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1146                Symbol colours = new Symbol();
     1147                Symbol ss = new Symbol();
     1148                ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1149                colours.add(new Instr(Form.N1, ss));
     1150                ss = new Symbol();
     1151                Path2D.Double p = new Path2D.Double(); p.moveTo(-14,-26); p.lineTo(-20,-12); p.lineTo(-8,-12); p.closePath();
     1152                ss.add(new Instr(Form.PGON, p));
     1153        ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1154        ss.add(new Instr(Form.LINE, new Line2D.Double(-14,-16,-14,25)));
     1155                ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null)));
     1156                colours.add(new Instr(Form.N2, ss));
     1157                NoticeBktpm.add(new Instr(Form.COLR, colours));
     1158        }
     1159        public static final Symbol NoticeBktsm = new Symbol();
     1160        static {
     1161                NoticeBktsm.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1162                Symbol colours = new Symbol();
     1163                Symbol ss = new Symbol();
     1164                ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1165                colours.add(new Instr(Form.N1, ss));
     1166                ss = new Symbol();
     1167                Path2D.Double p = new Path2D.Double(); p.moveTo(14,-26); p.lineTo(20,-12); p.lineTo(8,-12); p.closePath();
     1168                ss.add(new Instr(Form.PGON, p));
     1169        ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1170        ss.add(new Instr(Form.LINE, new Line2D.Double(14,-16,14,25)));
     1171                ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null)));
     1172                colours.add(new Instr(Form.N2, ss));
     1173                NoticeBktsm.add(new Instr(Form.COLR, colours));
     1174        }
     1175        public static final Symbol NoticeBktmr = new Symbol();
     1176        static {
     1177                NoticeBktmr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1178                Symbol colours = new Symbol();
     1179                Symbol ss = new Symbol();
     1180                ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1181                colours.add(new Instr(Form.N1, ss));
     1182                ss = new Symbol();
     1183                Path2D.Double p = new Path2D.Double(); p.moveTo(0,-26); p.lineTo(-6,-12); p.lineTo(6,-12); p.closePath();
     1184                ss.add(new Instr(Form.PGON, p));
     1185        ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1186        ss.add(new Instr(Form.LINE, new Line2D.Double(0,-16,0,25)));
     1187                ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null)));
     1188                colours.add(new Instr(Form.N2, ss));
     1189                NoticeBktmr.add(new Instr(Form.COLR, colours));
     1190        }
     1191        public static final Symbol NoticeBcrtp = new Symbol();
     1192        static {
     1193                NoticeBcrtp.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1194                Symbol colours = new Symbol();
     1195                Symbol ss = new Symbol();
     1196                ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1197                colours.add(new Instr(Form.N1, ss));
     1198                ss = new Symbol();
     1199                Path2D.Double p = new Path2D.Double(); p.moveTo(-14,-26); p.lineTo(-20,-12); p.lineTo(-8,-12); p.closePath();
     1200                ss.add(new Instr(Form.PGON, p));
     1201        ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1202                p = new Path2D.Double(); p.moveTo(-14,-16); p.lineTo(-14,0); p.lineTo(14,10); p.lineTo(14,25);
     1203                ss.add(new Instr(Form.PLIN, p));
     1204                ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null)));
     1205                colours.add(new Instr(Form.N2, ss));
     1206                NoticeBcrtp.add(new Instr(Form.COLR, colours));
     1207        }
     1208        public static final Symbol NoticeBcrts = new Symbol();
     1209        static {
     1210                NoticeBcrts.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1211                Symbol colours = new Symbol();
     1212                Symbol ss = new Symbol();
     1213                ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1214                colours.add(new Instr(Form.N1, ss));
     1215                ss = new Symbol();
     1216                Path2D.Double p = new Path2D.Double(); p.moveTo(14,-26); p.lineTo(20,-12); p.lineTo(8,-12); p.closePath();
     1217                ss.add(new Instr(Form.PGON, p));
     1218        ss.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1219                p = new Path2D.Double(); p.moveTo(14,-16); p.lineTo(14,0); p.lineTo(-14,10); p.lineTo(-14,25);
     1220                ss.add(new Instr(Form.PLIN, p));
     1221                ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null)));
     1222                colours.add(new Instr(Form.N2, ss));
     1223                NoticeBcrts.add(new Instr(Form.COLR, colours));
     1224        }
     1225        public static final Symbol NoticeBtrbm = new Symbol();
     1226        static {
     1227                NoticeBtrbm.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1228                Symbol colours = new Symbol();
     1229                Symbol ss = new Symbol();
     1230                ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1231                colours.add(new Instr(Form.N1, ss));
     1232                ss = new Symbol();
     1233        ss.add(new Instr(Form.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1234        ss.add(new Instr(Form.LINE, new Line2D.Double(0,-25,0,25)));
     1235        ss.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1236        ss.add(new Instr(Form.LINE, new Line2D.Double(-20,0,20,0)));
     1237                ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null)));
     1238                colours.add(new Instr(Form.N2, ss));
     1239                NoticeBtrbm.add(new Instr(Form.COLR, colours));
     1240        }
     1241        public static final Symbol NoticeBrspd = new Symbol();
     1242        static {
     1243                NoticeBrspd.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1244                Symbol colours = new Symbol();
     1245                Symbol ss = new Symbol();
     1246                ss.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1247                colours.add(new Instr(Form.N1, ss));
     1248                ss = new Symbol();
     1249                ss.add(new Instr(Form.TEXT, new Caption("R", new Font("Arial", Font.BOLD, 60), null, new Delta(Handle.CC, null))));
     1250                ss.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBB, 1.0, 0, 0, null, null)));
     1251                colours.add(new Instr(Form.N2, ss));
     1252                NoticeBrspd.add(new Instr(Form.COLR, colours));
     1253        }
     1254        static final Symbol NoticePBwral = new Symbol();
     1255        static {
     1256                NoticePBwral.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1257                NoticePBwral.add(new Instr(Form.FILL, new Color(0xffff00)));
     1258                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);
     1259                p.lineTo(20,-25); p.lineTo(5,-25); p.lineTo(-5,-10); p.lineTo(-15,-25); p.closePath();
     1260                NoticePBwral.add(new Instr(Form.PGON, p));
     1261        }
    10841262        public static final Symbol NoticeBwral = new Symbol();
    1085         public static final Symbol NoticeBwrar = new Symbol();
    1086         public static final Symbol NoticeBktpm = new Symbol();
    1087         public static final Symbol NoticeBktsm = new Symbol();
    1088         public static final Symbol NoticeBktmr = new Symbol();
    1089         public static final Symbol NoticeBcrtp = new Symbol();
    1090         public static final Symbol NoticeBcrts = new Symbol();
    1091         public static final Symbol NoticeBtrbm = new Symbol();
    1092         public static final Symbol NoticeBrspd = new Symbol();
     1263        static {
     1264                NoticeBwral.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1265                NoticeBwral.add(new Instr(Form.FILL, Color.black));
     1266                NoticeBwral.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1267                NoticeBwral.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticePBwral, 1.0, 0, 0, null, null)));
     1268        }
     1269        public static final Symbol NoticeBwlar = new Symbol();
     1270        static {
     1271                NoticeBwlar.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1272                NoticeBwlar.add(new Instr(Form.FILL, Color.black));
     1273                NoticeBwlar.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     1274                NoticeBwlar.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticePBwral, 1.0, 0, 0, null, new Delta(Handle.CC, AffineTransform.getScaleInstance(-1, 1)))));
     1275        }
     1276        public static final Symbol NoticeBoptr = new Symbol();
     1277        static {
     1278                NoticeBoptr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1279                NoticeBoptr.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null)));
     1280                NoticeBoptr.add(new Instr(Form.FILL, new Color(0x00a000)));
     1281                NoticeBoptr.add(new Instr(Form.RSHP, new Rectangle2D.Double(-20,-20,40,40)));
     1282        }
     1283        public static final Symbol NoticeBoptl = new Symbol();
     1284        static {
     1285                NoticeBoptl.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1286                NoticeBoptl.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null)));
     1287                NoticeBoptl.add(new Instr(Form.FILL, new Color(0xf00000)));
     1288                Path2D.Double p = new Path2D.Double(); p.moveTo(0,-20); p.lineTo(-20,20); p.lineTo(20,20); p.closePath();
     1289                NoticeBoptl.add(new Instr(Form.PGON, p));
     1290        }
    10931291        public static final EnumMap<CatNMK, Symbol> NmkBniwr = new EnumMap<CatNMK, Symbol>(CatNMK.class);
    10941292        static {
    1095                 NmkBniwr.put(CatNMK.NMK_NANK, NoticeBnank); NmkBniwr.put(CatNMK.NMK_LMHR, NoticeBlmhr); NmkBniwr.put(CatNMK.NMK_OPTR, NoticeD2a); NmkBniwr.put(CatNMK.NMK_OPTL, NoticeD2b);
    1096                 NmkBniwr.put(CatNMK.NMK_WRAL, NoticeBwral); NmkBniwr.put(CatNMK.NMK_WLAR, NoticeBwrar); NmkBniwr.put(CatNMK.NMK_KTPM, NoticeBktpm); NmkBniwr.put(CatNMK.NMK_KTSM, NoticeBktsm);
     1293                NmkBniwr.put(CatNMK.NMK_NANK, NoticeBnank); NmkBniwr.put(CatNMK.NMK_LMHR, NoticeBlmhr); NmkBniwr.put(CatNMK.NMK_OPTR, NoticeBoptr); NmkBniwr.put(CatNMK.NMK_OPTL, NoticeBoptl);
     1294                NmkBniwr.put(CatNMK.NMK_WRAL, NoticeBwral); NmkBniwr.put(CatNMK.NMK_WLAR, NoticeBwlar); NmkBniwr.put(CatNMK.NMK_KTPM, NoticeBktpm); NmkBniwr.put(CatNMK.NMK_KTSM, NoticeBktsm);
    10971295                NmkBniwr.put(CatNMK.NMK_KTMR, NoticeBktmr); NmkBniwr.put(CatNMK.NMK_CRTP, NoticeBcrtp); NmkBniwr.put(CatNMK.NMK_CRTS, NoticeBcrts); NmkBniwr.put(CatNMK.NMK_TRBM, NoticeBtrbm);
    10981296                NmkBniwr.put(CatNMK.NMK_RSPD, NoticeBrspd);
    10991297        }
     1298        public static final Symbol NoticePwralL = new Symbol();
     1299        static {
     1300                NoticePwralL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1301                NoticePwralL.add(new Instr(Form.FILL, Color.black));
     1302                Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,30); p.lineTo(30,30); p.closePath();
     1303                NoticePwralL.add(new Instr(Form.PGON, p));
     1304                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)))));
     1305        }
     1306        public static final Symbol NoticePwralR = new Symbol();
     1307        static {
     1308                NoticePwralR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1309                NoticePwralR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBwral, 1.0, 0, 0, null, null)));
     1310        }
     1311        public static final Symbol NoticePwlarL = new Symbol();
     1312        static {
     1313                NoticePwlarL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1314                NoticePwlarL.add(new Instr(Form.FILL, Color.black));
     1315                Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,30); p.lineTo(30,30); p.closePath();
     1316                NoticePwlarL.add(new Instr(Form.PGON, p));
     1317                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)))));
     1318        }
     1319        public static final Symbol NoticePwlarR = new Symbol();
     1320        static {
     1321                NoticePwlarR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1322                NoticePwlarR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBwlar, 1.0, 0, 0, null, null)));
     1323        }
     1324        public static final Symbol NoticePktmR = new Symbol();
     1325        static {
     1326                NoticePktmR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1327                NoticePktmR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null)));
     1328                NoticePktmR.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1329                NoticePktmR.add(new Instr(Form.FILL, new Color(0x00d400)));
     1330                NoticePktmR.add(new Instr(Form.RECT, new Rectangle2D.Double(-20,-20,40,40)));
     1331        }
     1332        public static final Symbol NoticePktmL = new Symbol();
     1333        static {
     1334                NoticePktmL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1335                NoticePktmL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeKT, 1.0, 0, 0, null, null)));
     1336                NoticePktmL.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1337                NoticePktmL.add(new Instr(Form.FILL, new Color(0xd40000)));
     1338                NoticePktmL.add(new Instr(Form.RECT, new Rectangle2D.Double(-12,2,24,24)));
     1339        }
     1340        public static final Symbol NoticePktmrL = new Symbol();
     1341        static {
     1342                NoticePktmrL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1343                NoticePktmrL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeKT, 1.0, 0, 0, null, null)));
     1344                NoticePktmrL.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1345                NoticePktmrL.add(new Instr(Form.FILL, new Color(0xd40000)));
     1346                NoticePktmrL.add(new Instr(Form.LINE, new Line2D.Double(-12,2,-12,28)));
     1347                NoticePktmrL.add(new Instr(Form.LINE, new Line2D.Double(12,2,12,28)));
     1348                NoticePktmrL.add(new Instr(Form.LINE, new Line2D.Double(-12,15,12,15)));
     1349        }
     1350        public static final Symbol NoticePktmrR = new Symbol();
     1351        static {
     1352                NoticePktmrR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1353                NoticePktmrR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeBP, 1.0, 0, 0, null, null)));
     1354                NoticePktmrR.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1355                NoticePktmrR.add(new Instr(Form.FILL, new Color(0x00d400)));
     1356                NoticePktmrR.add(new Instr(Form.LINE, new Line2D.Double(-15,-20,-15,20)));
     1357                NoticePktmrR.add(new Instr(Form.LINE, new Line2D.Double(15,-20,15,20)));
     1358                NoticePktmrR.add(new Instr(Form.LINE, new Line2D.Double(-15,0,15,0)));
     1359        }
     1360        public static final Symbol NoticePcrL = new Symbol();
     1361        static {
     1362                NoticePcrL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1363                NoticePcrL.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1364                NoticePcrL.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null)));
     1365                NoticePcrL.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1366                NoticePcrL.add(new Instr(Form.FILL, new Color(0xd40000)));
     1367                NoticePcrL.add(new Instr(Form.LINE, new Line2D.Double(-12,-12,12,12)));
     1368                NoticePcrL.add(new Instr(Form.LINE, new Line2D.Double(-12,12,12,-12)));
     1369        }
     1370        public static final Symbol NoticePcrR = new Symbol();
     1371        static {
     1372                NoticePcrR.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1373                NoticePcrR.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null)));
     1374                NoticePcrR.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1375                NoticePcrR.add(new Instr(Form.FILL, new Color(0x00d400)));
     1376                NoticePcrR.add(new Instr(Form.LINE, new Line2D.Double(-12,-12,12,12)));
     1377                NoticePcrR.add(new Instr(Form.LINE, new Line2D.Double(-12,12,12,-12)));
     1378        }
     1379        static final Symbol NoticeRphib = new Symbol();
     1380        static {
     1381                NoticeRphib.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1382                NoticeRphib.add(new Instr(Form.FILL, new Color(0xd40000)));
     1383                NoticeRphib.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30,-30,60,60)));
     1384                NoticeRphib.add(new Instr(Form.LINE, new Line2D.Double(-20,-20,20,20)));
     1385        }
     1386        static final Symbol NoticeRinfo = new Symbol();
     1387        static {
     1388                NoticeRinfo.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1389                NoticeRinfo.add(new Instr(Form.FILL, new Color(0xd40000)));
     1390                NoticeRinfo.add(new Instr(Form.RECT, new Rectangle2D.Double(-30,-30,60,60)));
     1391        }
     1392        public static final Symbol NoticeRnpas = new Symbol();
     1393        static {
     1394                NoticeRnpas.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1395                NoticeRnpas.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null)));
     1396                NoticeRnpas.add(new Instr(Form.FILL, Color.black));
     1397                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);
     1398                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();
     1399                NoticeRnpas.add(new Instr(Form.PGON, p));
     1400        }
     1401        public static final Symbol NoticeRnank = new Symbol();
     1402        static {
     1403                NoticeRnank.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1404                NoticeRnank.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null)));
     1405                NoticeRnank.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, new Scheme(Color.black), null)));
     1406        }
     1407        public static final Symbol NoticeRnwsh = new Symbol();
     1408        static {
     1409                NoticeRnwsh.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1410                NoticeRnwsh.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null)));
     1411                NoticeRnwsh.add(new Instr(Form.FILL, Color.black));
     1412                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);
     1413                p.moveTo(-23,-3); p.curveTo(-11,-3,-12,-9,0,-9); p.curveTo(12,-9,11,-3,23,-3);
     1414                NoticeRnwsh.add(new Instr(Form.PLIN, p));
     1415        }
     1416        public static final Symbol NoticeRlmhr = new Symbol();
     1417        static {
     1418                NoticeRlmhr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1419                NoticeRlmhr.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRinfo, 1.0, 0, 0, null, null)));
     1420                NoticeRlmhr.add(new Instr(Form.FILL, Color.black));
     1421                Path2D.Double p = new Path2D.Double(); p.moveTo(0,-10); p.lineTo(27,-27); p.lineTo(-27,-27); p.closePath();
     1422                NoticeRlmhr.add(new Instr(Form.PGON, p));
     1423        }
     1424        public static final Symbol NoticeRtrna = new Symbol();
     1425        static {
     1426                NoticeRtrna.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1427                NoticeRtrna.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null)));
     1428                NoticeRtrna.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1429                NoticeRtrna.add(new Instr(Form.EARC, new Arc2D.Double(-15.0,-15.0,30.0,30.0,315.0,-280.0,Arc2D.OPEN)));
     1430                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();
     1431                NoticeRtrna.add(new Instr(Form.PGON, p));
     1432        }
     1433        public static final Symbol NoticeRncps = new Symbol();
     1434        static {
     1435                NoticeRncps.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1436                NoticeRncps.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null)));
     1437                NoticeRncps.add(new Instr(Form.FILL, Color.black));
     1438                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);
     1439                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();
     1440                NoticeRncps.add(new Instr(Form.PGON, p));
     1441        }
     1442        public static final Symbol NoticeRnsmc = new Symbol();
     1443        static {
     1444                NoticeRnsmc.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1445                NoticeRnsmc.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRphib, 1.0, 0, 0, null, null)));
     1446                NoticeRnsmc.add(new Instr(Form.FILL, Color.black));
     1447                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();
     1448                p.moveTo(-23,2); p.lineTo(-21,10); p.lineTo(-18,8); p.lineTo(-20,0); p.closePath();
     1449                NoticeRnsmc.add(new Instr(Form.PGON, p));
     1450        }
     1451        public static final Symbol NoticeRattn = new Symbol();
     1452        static {
     1453                NoticeRattn.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1454                NoticeRattn.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRinfo, 1.0, 0, 0, null, null)));
     1455                NoticeRattn.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     1456                NoticeRattn.add(new Instr(Form.FILL, Color.black));
     1457                NoticeRattn.add(new Instr(Form.LINE, new Line2D.Double(0,-20,0,10)));
     1458                NoticeRattn.add(new Instr(Form.LINE, new Line2D.Double(0,15,0,20)));
     1459        }
     1460        public static final Symbol NoticeRfwcr = new Symbol();
     1461        static {
     1462                NoticeRfwcr.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1463                NoticeRfwcr.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeRinfo, 1.0, 0, 0, null, null)));
     1464                NoticeRfwcr.add(new Instr(Form.FILL, Color.black));
     1465                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);
     1466                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();
     1467                NoticeRfwcr.add(new Instr(Form.PGON, p));
     1468        }
     1469        public static final Symbol NoticeRship = new Symbol();
     1470        static {
     1471                NoticeRship.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     1472                NoticeRship.add(new Instr(Form.SYMB, new Symbols.SubSymbol(NoticeCR, 1.0, 0, 0, null, null)));
     1473                NoticeRship.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     1474                NoticeRship.add(new Instr(Form.FILL, Color.black));
     1475                NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(-12,-12,10,10)));
     1476                NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(-12,-8,-8,-12)));
     1477                NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(12,-12,-10,10)));
     1478                NoticeRship.add(new Instr(Form.LINE, new Line2D.Double(12,-8,8,-12)));
     1479                NoticeRship.add(new Instr(Form.EARC, new Arc2D.Double(-17,-13,30,30,185,80,Arc2D.OPEN)));
     1480                NoticeRship.add(new Instr(Form.EARC, new Arc2D.Double(-13,-13,30,30,275,80,Arc2D.OPEN)));
     1481        }
    11001482
    1101         public static final EnumMap<CatNMK, Symbol> NmkPpwbc = new EnumMap<CatNMK, Symbol>(CatNMK.class);
    1102         static {
    1103                 NmkPpwbc.put(CatNMK.NMK_WRAL, Notice); NmkPpwbc.put(CatNMK.NMK_WLAR, Notice); NmkPpwbc.put(CatNMK.NMK_KTPM, Notice); NmkPpwbc.put(CatNMK.NMK_KTSM, Notice);
    1104                 NmkPpwbc.put(CatNMK.NMK_KTMR, Notice); NmkPpwbc.put(CatNMK.NMK_CRTP, Notice); NmkPpwbc.put(CatNMK.NMK_CRTS, Notice);
     1483        public static final EnumMap<CatNMK, Symbol> NmkPpwbcl = new EnumMap<CatNMK, Symbol>(CatNMK.class);
     1484        static {
     1485                NmkPpwbcl.put(CatNMK.NMK_WRAL, NoticePwralL); NmkPpwbcl.put(CatNMK.NMK_WLAR, NoticePwlarL); NmkPpwbcl.put(CatNMK.NMK_KTPM, NoticePktmL); NmkPpwbcl.put(CatNMK.NMK_KTSM, NoticePktmL);
     1486                NmkPpwbcl.put(CatNMK.NMK_KTMR, NoticePktmrL); NmkPpwbcl.put(CatNMK.NMK_CRTP, NoticePcrL); NmkPpwbcl.put(CatNMK.NMK_CRTS, NoticePcrL);
     1487        }
     1488       
     1489        public static final EnumMap<CatNMK, Symbol> NmkPpwbcr = new EnumMap<CatNMK, Symbol>(CatNMK.class);
     1490        static {
     1491                NmkPpwbcr.put(CatNMK.NMK_WRAL, NoticePwralR); NmkPpwbcr.put(CatNMK.NMK_WLAR, NoticePwlarR); NmkPpwbcr.put(CatNMK.NMK_KTPM, NoticePktmR); NmkPpwbcr.put(CatNMK.NMK_KTSM, NoticePktmR);
     1492                NmkPpwbcr.put(CatNMK.NMK_KTMR, NoticePktmrR); NmkPpwbcr.put(CatNMK.NMK_CRTP, NoticePcrR); NmkPpwbcr.put(CatNMK.NMK_CRTS, NoticePcrR);
     1493        }
     1494       
     1495        public static final EnumMap<CatNMK, Symbol> NmkRiwr = new EnumMap<CatNMK, Symbol>(CatNMK.class);
     1496        static {
     1497                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);
     1498                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);
    11051499        }
    11061500       
    11071501        public static Scheme getScheme(MarSYS sys, BnkWTW bank) {
    11081502                ArrayList<Color> colours = new ArrayList<Color>();
    1109                 Scheme scheme = new Scheme(null, colours);
     1503                Scheme scheme = new Scheme(colours);
    11101504                switch (sys) {
    11111505                case SYS_BNWR:
     1506                case SYS_BWR2:
    11121507                        switch (bank) {
    11131508                        case BWW_LEFT:
     
    11251520                        }
    11261521                        break;
    1127                 case SYS_PPWB:
    1128                         switch (bank) {
    1129                         case BWW_LEFT:
    1130                                 colours.add(Color.white);
    1131                                 colours.add(new Color(0xd40000));
    1132                                 break;
    1133                         case BWW_RGHT:
    1134                                 colours.add(Color.white);
    1135                                 colours.add(new Color(0x00d400));
    1136                                 break;
    1137                         default:
    1138                                 break;
    1139                         }
    1140                         break;
    11411522                default:
    11421523                        break;
     
    11451526        }
    11461527       
    1147         public static Symbol getNotice(CatNMK cat, MarSYS sys) {
     1528        public static Symbol getNotice(CatNMK cat, MarSYS sys, BnkWTW bank) {
    11481529                Symbol symbol = null;
    11491530                switch (sys) {
     
    11521533                        break;
    11531534                case SYS_BNWR:
     1535                case SYS_BWR2:
    11541536                        symbol = NmkBniwr.get(cat);
    11551537                        break;
    11561538                case SYS_PPWB:
    1157                         symbol = NmkPpwbc.get(cat);
     1539                        switch (bank) {
     1540                        case BWW_LEFT:
     1541                                symbol = NmkPpwbcl.get(cat);
     1542                                break;
     1543                        case BWW_RGHT:
     1544                                symbol = NmkPpwbcr.get(cat);
     1545                                break;
     1546                        default:
     1547                                break;
     1548                        }
     1549                        break;
     1550                case SYS_RIWR:
     1551                        symbol = NmkRiwr.get(cat);
    11581552                        break;
    11591553                default:
  • applications/editors/josm/plugins/seachart/src/symbols/Symbols.java

    r32090 r32101  
    2525        public static final Color Mline = new Color(0x9a6078);
    2626        public static final Color Msymb = new Color(0xa30075);
    27         public static final Color Mtss = new Color(0x80c480ff, true);
     27        public static final Color Mtss = new Color(0xc0c480ff, true);
    2828       
    2929        public enum Form {
    30                 BBOX, STRK, COLR, FILL, LINE, RECT, RRCT, ELPS, EARC, PLIN, PGON, RSHP, TEXT, SYMB, P1, P2, H2, H3, H4, H5, V2, V3, D2, D3, D4, B1, S2, S3, S4, C2, X2
     30                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
    3131        }
    3232
     
    6767                public ArrayList<Color> col;
    6868
     69                public Scheme(ArrayList<Color> icol) {
     70                        pat = new ArrayList<Patt>();
     71                        col = icol;
     72                }
    6973                public Scheme(ArrayList<Patt> ipat, ArrayList<Color> icol) {
    7074                        pat = ipat;
     
    233237                                                for (Instr patch : (Symbol) item.params) {
    234238                                                        switch (patch.type) {
     239                                                        case N1:
     240                                                                if (cn > 0) {
     241                                                                        Symbol s = (Symbol) patch.params;
     242                                                                        drawSymbol(g2, s, 1.0, 0, 0, new Scheme(cs.col.get(0)), null);
     243                                                                }
     244                                                                break;
     245                                                        case N2:
     246                                                                if (cn > 0) {
     247                                                                        Symbol s = (Symbol) patch.params;
     248                                                                        drawSymbol(g2, s, 1.0, 0, 0, new Scheme((cn > 1) ? cs.col.get(1) : cs.col.get(0)), null);
     249                                                                }
     250                                                                break;
    235251                                                        case P1:
    236252                                                                if (cn > 0) {
     
    288304                                                                if (bpat == Patt.B) {
    289305                                                                        g2.setPaint(bcol);
     306                                                                        g2.fill((Path2D.Double) patch.params);
     307                                                                }
     308                                                                break;
     309                                                        case S2:
     310                                                                if ((cn > 1) && (pn > 0) && (cs.pat.get(0) == Patt.S)) {
     311                                                                        g2.setPaint(cs.col.get(1));
     312                                                                        g2.fill((Path2D.Double) patch.params);
     313                                                                }
     314                                                                break;
     315                                                        case S3:
     316                                                                if ((cn > 2) && (pn > 0) && (cs.pat.get(0) == Patt.S)) {
     317                                                                        g2.setPaint(cs.col.get(2));
     318                                                                        g2.fill((Path2D.Double) patch.params);
     319                                                                }
     320                                                                break;
     321                                                        case S4:
     322                                                                if ((cn == 4) && (pn > 0) && (cs.pat.get(0) == Patt.S)) {
     323                                                                        g2.setPaint(cs.col.get(3));
    290324                                                                        g2.fill((Path2D.Double) patch.params);
    291325                                                                }
  • applications/editors/josm/plugins/seachart/src/symbols/Topmarks.java

    r32090 r32101  
    117117                TopEast.add(new Instr(Form.PLIN, p));
    118118        }
     119        public static final Symbol TopFlag = new Symbol();
     120        static {
     121                TopFlag.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
     122                Symbol colours = new Symbol();
     123                Path2D.Double p = new Path2D.Double(); p.moveTo(0,-40); p.lineTo(0,-10); p.lineTo(39,-10); p.lineTo(39,-40); p.closePath();
     124                colours.add(new Instr(Form.P1, p));
     125                p = new Path2D.Double(); p.moveTo(0,-25); p.lineTo(0,-10); p.lineTo(40,-10); p.lineTo(39,-25); p.closePath();
     126                colours.add(new Instr(Form.H2, p));
     127                p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(0,-20); p.lineTo(40,-20); p.lineTo(39,-30); p.closePath();
     128                colours.add(new Instr(Form.H3, p));
     129                p = new Path2D.Double(); p.moveTo(19.5,-40); p.lineTo(19.5,-10); p.lineTo(39,-10); p.lineTo(39,-40); p.closePath();
     130                colours.add(new Instr(Form.V2, p));
     131                p = new Path2D.Double(); p.moveTo(13,-40); p.lineTo(13,-10); p.lineTo(26,-10); p.lineTo(26,-40); p.closePath();
     132                colours.add(new Instr(Form.V3, p));
     133                p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
     134                p.moveTo(0,-40); p.lineTo(0,-10); p.lineTo(39,-10); p.lineTo(39,-40); p.closePath();
     135                p.moveTo(8,-35); p.lineTo(8,-15); p.lineTo(33,-15); p.lineTo(33,-35); p.closePath();
     136                colours.add(new Instr(Form.B1, p));
     137                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();
     138                colours.add(new Instr(Form.S2, p));
     139                p = new Path2D.Double(); p.moveTo(0,-25); p.lineTo(0,-10); p.lineTo(20,-10); p.lineTo(20,-25); p.closePath();
     140                colours.add(new Instr(Form.S3, p));
     141                p = new Path2D.Double(); p.moveTo(20,-25); p.lineTo(20,-10); p.lineTo(39,-10); p.lineTo(39,-25); p.closePath();
     142                colours.add(new Instr(Form.S4, p));
     143                TopFlag.add(new Instr(Form.COLR, colours));
     144                TopFlag.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     145                TopFlag.add(new Instr(Form.FILL, Color.black));
     146                TopFlag.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-45)));
     147                TopFlag.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     148                TopFlag.add(new Instr(Form.RECT, new Rectangle2D.Double(0,-40,39,30)));
     149        }
    119150        public static final Symbol TopIcone = new Symbol();
    120151        static {
     
    321352                Shapes.put(TopSHP.TOP_ISD, TopIsol); Shapes.put(TopSHP.TOP_NORTH, TopNorth); Shapes.put(TopSHP.TOP_SOUTH, TopSouth); Shapes.put(TopSHP.TOP_SPHR, TopSphere);
    322353                Shapes.put(TopSHP.TOP_SQUR, TopSquare); Shapes.put(TopSHP.TOP_TRI, TopTriangle); Shapes.put(TopSHP.TOP_ITRI, TopItriangle); Shapes.put(TopSHP.TOP_WEST, TopWest);
    323                 Shapes.put(TopSHP.TOP_SALT, TopX); Shapes.put(TopSHP.TOP_RHOM, TopRhombus);
    324         }
     354                Shapes.put(TopSHP.TOP_SALT, TopX); Shapes.put(TopSHP.TOP_RHOM, TopRhombus); Shapes.put(TopSHP.TOP_FLAG, TopFlag);
     355        }
     356        /*
     357         TOP_CUBE, TOP_SPRH, TOP_HRECT, TOP_VRECT, TOP_TRAP, TOP_ITRAP, TOP_CIRC, TOP_CRSS, TOP_T, TOP_TRCL, TOP_CRCL, TOP_RHCL, TOP_CLTR, TOP_OTHR, TOP_CYSP, TOP_COSP
     358         */
    325359        public static final EnumMap<BoySHP, Delta> BuoyDeltas = new EnumMap<BoySHP, Delta>(BoySHP.class);
    326360        static {
Note: See TracChangeset for help on using the changeset viewer.