Changeset 30215 in osm for applications


Ignore:
Timestamp:
2014-01-19T14:52:39+01:00 (11 years ago)
Author:
malcolmh
Message:

new model structure

Location:
applications/editors/josm/plugins/smed2
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/smed2/js57toosm/src/js57toosm/Js57toosm.java

    r30189 r30215  
    1111
    1212import java.io.*;
    13 
     13import java.util.Map;
     14
     15import s57.S57obj;
     16import s57.S57att;
     17import s57.S57att.*;
     18import s57.S57val;
     19import s57.S57val.*;
    1420import s57.S57dat;
    1521import s57.S57dat.*;
     
    3440                int len;
    3541                int pos;
     42                boolean inFeature = false;
    3643               
    3744                double comf = 1;
     
    3946                long name = 0;
    4047                S57map.Nflag nflag = Nflag.ANON;
     48                S57map.Pflag prim = S57map.Pflag.NOSP;
     49                long objl = 0;
    4150                S57map map = new S57map();
    4251                double minlat = 90, minlon = 180, maxlat = -90, maxlon = -180;
     
    6776                                                }
    6877                                                break;
    69                                         case "DSID":
    70                                                 break;
    71                                         case "DSSI":
    72                                                 break;
    7378                                        case "DSPM":
    7479                                                comf = (double) (Long) S57dat.getSubf(record, fields + pos, S57field.DSPM, S57subf.COMF);
     
    7681                                                break;
    7782                                        case "FRID":
     83                                                inFeature = true;
     84                                                switch ((int)((long)S57dat.getSubf(record, fields + pos, S57field.FRID, S57subf.PRIM))) {
     85                                                case 1:
     86                                                        prim = S57map.Pflag.POINT;
     87                                                        break;
     88                                                case 2:
     89                                                        prim = S57map.Pflag.LINE;
     90                                                        break;
     91                                                case 3:
     92                                                        prim = S57map.Pflag.AREA;
     93                                                        break;
     94                                                default:
     95                                                        prim = S57map.Pflag.NOSP;
     96                                                }
     97                                                objl = (long)S57dat.getSubf(S57subf.OBJL);
    7898                                                break;
    7999                                        case "FOID":
     100                                                name = (long) S57dat.getSubf(record, fields + pos, S57field.FOID, S57subf.LNAM);
     101                                                map.newFeature(name, prim, objl);
    80102                                                break;
    81103                                        case "ATTF":
    82                                                 break;
    83                                         case "NATF":
    84                                                 break;
    85                                         case "FFPC":
     104                                                S57dat.setField(record, fields + pos, S57field.ATTF, len);
     105                                                do {
     106                                                        long attl = (long) S57dat.getSubf(S57subf.ATTL);
     107                                                        String atvl = (String) S57dat.getSubf(S57subf.ATVL);
     108                                                        map.newAtt(attl, atvl);
     109                                                } while (S57dat.more());
    86110                                                break;
    87111                                        case "FFPT":
    88                                                 break;
    89                                         case "FSPC":
     112                                                name = (long) S57dat.getSubf(record, fields + pos, S57field.FFPT, S57subf.LNAM);
     113                                                int rind = ((Long) S57dat.getSubf(S57subf.RIND)).intValue();
     114                                                map.newObj(name, rind);
    90115                                                break;
    91116                                        case "FSPT":
     117                                                S57dat.setField(record, fields + pos, S57field.FSPT, len);
     118                                                do {
     119                                                        name = (Long) S57dat.getSubf(S57subf.NAME) << 16;
     120                                                        map.newPrim(name, (long) S57dat.getSubf(S57subf.ORNT), (long) S57dat.getSubf(S57subf.USAG));
     121                                                } while (S57dat.more());
    92122                                                break;
    93123                                        case "VRID":
    94                                                 name = (Long) S57dat.getSubf(record, fields + pos, S57field.VRID, S57subf.RCNM);
     124                                                inFeature = false;
     125                                                name = (long) S57dat.getSubf(record, fields + pos, S57field.VRID, S57subf.RCNM);
    95126                                                switch ((int) name) {
    96127                                                case 110:
     
    105136                                                }
    106137                                                name <<= 32;
    107                                                 name += (Long) S57dat.getSubf(record, fields + pos, S57field.VRID, S57subf.RCID);
     138                                                name += (Long) S57dat.getSubf(S57subf.RCID);
    108139                                                name <<= 16;
    109140                                                if (nflag == Nflag.ANON) {
     
    111142                                                }
    112143                                                break;
    113                                         case "ATTV":
    114                                                 break;
    115                                         case "VRPC":
    116                                                 break;
    117144                                        case "VRPT":
    118                                                 name = (Long) S57dat.getSubf(record, fields + pos, S57field.VRPT, S57subf.NAME) << 16;
    119                                                 int topi = ((Long) S57dat.getSubf(S57subf.TOPI)).intValue();
    120                                                 map.addConn(name, topi);
    121                                                 name = (Long) S57dat.getSubf(S57subf.NAME) << 16;
    122                                                 topi = ((Long) S57dat.getSubf(S57subf.TOPI)).intValue();
    123                                                 map.addConn(name, topi);
    124                                                 break;
    125                                         case "SGCC":
     145                                                S57dat.setField(record, fields + pos, S57field.VRPT, len);
     146                                                do {
     147                                                        name = (Long) S57dat.getSubf(S57subf.NAME) << 16;
     148                                                        int topi = ((Long) S57dat.getSubf(S57subf.TOPI)).intValue();
     149                                                        map.addConn(name, topi);
     150                                                } while (S57dat.more());
    126151                                                break;
    127152                                        case "SG2D":
    128153                                                S57dat.setField(record, fields + pos, S57field.SG2D, len);
    129                                                 while (S57dat.more()) {
     154                                                do {
    130155                                                        double lat = (double) ((Long) S57dat.getSubf(S57subf.YCOO)) / comf;
    131156                                                        double lon = (double) ((Long) S57dat.getSubf(S57subf.XCOO)) / comf;
     
    143168                                                        if (lon > maxlon)
    144169                                                                maxlon = lon;
    145                                                 }
     170                                                } while (S57dat.more());
    146171                                                break;
    147172                                        case "SG3D":
    148173                                                S57dat.setField(record, fields + pos, S57field.SG3D, len);
    149                                                 while (S57dat.more()) {
     174                                                do {
    150175                                                        double lat = (double) ((Long) S57dat.getSubf(S57subf.YCOO)) / comf;
    151176                                                        double lon = (double) ((Long) S57dat.getSubf(S57subf.XCOO)) / comf;
     
    160185                                                        if (lon > maxlon)
    161186                                                                maxlon = lon;
    162                                                 }
     187                                                } while (S57dat.more());
    163188                                                break;
    164189                                        }
    165190                                }
    166                         }
    167                 }
     191                                if (inFeature) {
     192                                        map.endFeature();
     193                                        inFeature = false;
     194                                }
     195                        }
     196                }
     197                map.endFile();
    168198                in.close();
    169199               
     
    172202                out.println("<bounds minlat='" + minlat +"' minlon='" + minlon + "' maxlat='" + maxlat + "' maxlon='" + maxlon + "'/>");
    173203               
     204                for (long id : map.index.keySet()) {
     205                        Feature feature = map.index.get(id);
     206                        if (feature.reln != Rflag.SLAVE) {
     207                                if (feature.geom.prim == Pflag.POINT) {
     208                                        Snode node = map.nodes.get(feature.geom.elems.get(0).id);
     209                                        String type = S57obj.stringType(feature.type);
     210                                        out.format("  <node id='%d' lat='%f' lon='%f' version='1'>%n",-id,  Math.toDegrees(node.lat), Math.toDegrees(node.lon));
     211                                        out.format("    <tag k='seamark:type' v=\"%s\"/>%n", type);
     212                                        for (Map.Entry<Att, AttVal<?>> item : feature.atts.entrySet()) {
     213                                                out.format("    <tag k='seamark:%s:%s' v=\"%s\"/>%n", type, S57att.stringAttribute(item.getKey()), S57val.stringValue(item.getValue()));
     214                                        }
     215                                        for (Reln rel : feature.rels) {
     216                                                if (rel.reln == Rflag.SLAVE) {
     217                                                        Feature slave = map.index.get(rel.id);
     218                                                        type = S57obj.stringType(slave.type);
     219                                                        for (Map.Entry<Att, AttVal<?>> item : slave.atts.entrySet()) {
     220                                                                out.format("    <tag k='seamark:%s:%s' v=\"%s\"/>%n", type, S57att.stringAttribute(item.getKey()), S57val.stringValue(item.getValue()));
     221                                                        }
     222                                                }
     223                                        }
     224                                        out.format("  </node>%n");
     225                                }
     226                        }
     227                }
     228/*             
    174229                for (long id : map.nodes.keySet()) {
    175230                        Snode node = map.nodes.get(id);
     
    194249                        out.format("  </way>%n");
    195250                }
    196                
     251*/             
    197252                out.println("</osm>\n");
    198253        }
  • applications/editors/josm/plugins/smed2/src/panels/PanelMain.java

    r30150 r30215  
    2222import s57.S57att.Att;
    2323import s57.S57obj.Obj;
     24import s57.S57val.*;
    2425import s57.S57map.*;
    2526import render.Renderer;
     
    148149                                for (AttMap atts : feature.objs.get(obj).values()) {
    149150                                        for (Att att : atts.keySet()) {
    150                                                 AttItem item = atts.get(att);
     151                                                AttVal<?> item = atts.get(att);
    151152                                                switch (item.conv) {
    152153                                                case E:
  • applications/editors/josm/plugins/smed2/src/panels/ShowFrame.java

    r30150 r30215  
    3333                        showMap.nodes = map.nodes;
    3434                        showMap.edges = map.edges;
    35                         showMap.areas = map.areas;
    3635                        showMap.index = map.index;
    3736                        if (feature != null) {
  • applications/editors/josm/plugins/smed2/src/render/Renderer.java

    r30190 r30215  
    1919import s57.S57map;
    2020import s57.S57map.*;
    21 import s57.S57map.Area;
    2221import symbols.Areas;
    2322import symbols.Symbols;
     
    102101                if (symbols.size() > 4) {
    103102                        for (Instr instr : symbols.get(0)) {
    104                                 if (instr.type == Prim.BBOX) {
     103                                if (instr.type == Form.BBOX) {
    105104                                        bbox = (Rectangle2D.Double) instr.params;
    106105                                        break;
     
    180179                while (ssymb != null) {
    181180                        for (Instr item : symbol) {
    182                                 if (item.type == Prim.BBOX) {
     181                                if (item.type == Form.BBOX) {
    183182                                        return (Rectangle2D.Double) item.params;
    184183                                }
    185                                 if (item.type == Prim.SYMB) {
     184                                if (item.type == Form.SYMB) {
    186185                                        ssymb = ((SubSymbol) item.params).instr;
    187186                                        break;
     
    195194
    196195        public static void lineSymbols(Feature feature, Symbol prisymb, double space, Symbol secsymb, Symbol tersymb, int ratio, Color col) {
    197                 Area area;
    198                 switch (feature.flag) {
    199                 case LINE:
    200                         Edge edge = map.edges.get(feature.refs);
    201                         area = map.new Area();
    202                         area.add(map.new Bound(map.new Side(edge, true), true));
    203                         break;
    204                 case AREA:
    205                         area = map.areas.get(feature.refs);
    206                         break;
    207                 default:
     196                if ((feature.geom.prim == Pflag.NOSP) || (feature.geom.prim == Pflag.POINT))
    208197                        return;
    209                 }
    210198                Rectangle2D.Double prect = symbolSize(prisymb);
    211199                Rectangle2D.Double srect = symbolSize(secsymb);
     
    228216                        boolean stflag = false;
    229217                        Symbol symbol = prisymb;
    230                         for (Bound bound : area) {
    231                                 BoundIterator bit = map.new BoundIterator(bound);
     218                        GeomIterator git = map.new GeomIterator(feature.geom);
     219                        while (git.hasMore()) {
     220                                git.more();
    232221                                boolean first = true;
    233                                 while (bit.hasNext()) {
     222                                while (git.hasNext()) {
    234223                                        prev = next;
    235                                         next = context.getPoint(bit.next());
     224                                        next = context.getPoint(git.next());
    236225                                        angle = Math.atan2(next.getY() - prev.getY(), next.getX() - prev.getX());
    237226                                        piv = true;
     
    286275                p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    287276                Point2D point;
    288                 switch (feature.flag) {
    289                 case LINE:
    290                         EdgeIterator eit = map.new EdgeIterator(map.edges.get(feature.refs), true);
    291                         point = context.getPoint(eit.next());
     277                GeomIterator git = map.new GeomIterator(feature.geom);
     278                while (git.hasMore()) {
     279                        git.more();
     280                        point = context.getPoint(git.next());
    292281                        p.moveTo(point.getX(), point.getY());
    293                         while (eit.hasNext()) {
    294                                 point = context.getPoint(eit.next());
     282                        while (git.hasNext()) {
     283                                point = context.getPoint(git.next());
    295284                                p.lineTo(point.getX(), point.getY());
    296285                        }
    297                         break;
    298                 case AREA:
    299                         for (Bound bound : map.areas.get(feature.refs)) {
    300                                 BoundIterator bit = map.new BoundIterator(bound);
    301                                 point = context.getPoint(bit.next());
    302                                 p.moveTo(point.getX(), point.getY());
    303                                 while (bit.hasNext()) {
    304                                         point = context.getPoint(bit.next());
    305                                         p.lineTo(point.getX(), point.getY());
    306                                 }
    307                         }
    308                         break;
    309                 default:
    310                         break;
    311286                }
    312287                if (style.line != null) {
     
    353328                Symbol circle = new Symbol();
    354329                if (style.fill != null) {
    355                         circle.add(new Instr(Prim.FILL, style.fill));
    356                         circle.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-radius,-radius,radius*2,radius*2)));
    357                 }
    358                 circle.add(new Instr(Prim.FILL, style.line));
    359                 circle.add(new Instr(Prim.STRK, new BasicStroke(style.width, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, style.dash, 0)));
    360                 circle.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-radius,-radius,radius*2,radius*2)));
     330                        circle.add(new Instr(Form.FILL, style.fill));
     331                        circle.add(new Instr(Form.RSHP, new Ellipse2D.Double(-radius,-radius,radius*2,radius*2)));
     332                }
     333                circle.add(new Instr(Form.FILL, style.line));
     334                circle.add(new Instr(Form.STRK, new BasicStroke(style.width, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, style.dash, 0)));
     335                circle.add(new Instr(Form.ELPS, new Ellipse2D.Double(-radius,-radius,radius*2,radius*2)));
    361336                Point2D point = context.getPoint(feature.centre);
    362337                Symbols.drawSymbol(g2, circle, 1, point.getX(), point.getY(), null, null);
     
    368343                p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    369344                Point2D point;
    370                 switch (feature.flag) {
     345                switch (feature.geom.prim) {
    371346                case POINT:
    372347                        point = context.getPoint(feature.centre);
     
    375350                        break;
    376351                case AREA:
    377                         for (Bound bound : map.areas.get(feature.refs)) {
    378                                 BoundIterator bit = map.new BoundIterator(bound);
    379                                 point = context.getPoint(bit.next());
     352                        GeomIterator git = map.new GeomIterator(feature.geom);
     353                        while (git.hasMore()) {
     354                                git.more();
     355                                point = context.getPoint(git.next());
    380356                                p.moveTo(point.getX(), point.getY());
    381                                 while (bit.hasNext()) {
    382                                         point = context.getPoint(bit.next());
     357                                while (git.hasNext()) {
     358                                        point = context.getPoint(git.next());
    383359                                        p.lineTo(point.getX(), point.getY());
    384360                                }
     
    427403            tx = lx + (height * 0.34);
    428404            ty = ly + (height * 0.17);
    429                         label.add(new Instr(Prim.BBOX, new Rectangle2D.Double(lx,ly,width,height)));
    430                         label.add(new Instr(Prim.FILL, bg));
    431                         label.add(new Instr(Prim.RSHP, new RoundRectangle2D.Double(lx,ly,width,height,height,height)));
    432                         label.add(new Instr(Prim.FILL, fg));
    433                         label.add(new Instr(Prim.STRK, new BasicStroke(1 + (int)(height/10), BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    434                         label.add(new Instr(Prim.RRCT, new RoundRectangle2D.Double(lx,ly,width,height,height,height)));
     405                        label.add(new Instr(Form.BBOX, new Rectangle2D.Double(lx,ly,width,height)));
     406                        label.add(new Instr(Form.FILL, bg));
     407                        label.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(lx,ly,width,height,height,height)));
     408                        label.add(new Instr(Form.FILL, fg));
     409                        label.add(new Instr(Form.STRK, new BasicStroke(1 + (int)(height/10), BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     410                        label.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(lx,ly,width,height,height,height)));
    435411                        break;
    436412                case VCLR:
     
    442418            tx = lx + (height * 0.27);
    443419            ty = ly + (height * 0.25);
    444                         label.add(new Instr(Prim.BBOX, new Rectangle2D.Double(lx,ly,width,height)));
    445                         label.add(new Instr(Prim.FILL, bg));
    446                         label.add(new Instr(Prim.RSHP, new RoundRectangle2D.Double(lx,ly,width,height,height,height)));
    447                         label.add(new Instr(Prim.FILL, fg));
     420                        label.add(new Instr(Form.BBOX, new Rectangle2D.Double(lx,ly,width,height)));
     421                        label.add(new Instr(Form.FILL, bg));
     422                        label.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(lx,ly,width,height,height,height)));
     423                        label.add(new Instr(Form.FILL, fg));
    448424                        int sw = 1 + (int)(height/10);
    449425                        double po = sw / 2;
    450                         label.add(new Instr(Prim.STRK, new BasicStroke(sw, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     426                        label.add(new Instr(Form.STRK, new BasicStroke(sw, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    451427                        Path2D.Double p = new Path2D.Double(); p.moveTo(-height*0.2,-ly-po); p.lineTo(height*0.2,-ly-po); p.moveTo(0,-ly-po); p.lineTo(0,-ly-po-(height*0.15));
    452428                        p.moveTo(-height*0.2,ly+po); p.lineTo((height*0.2),ly+po); p.moveTo(0,ly+po); p.lineTo(0,ly+po+(height*0.15));
    453                         label.add(new Instr(Prim.PLIN, p));
     429                        label.add(new Instr(Form.PLIN, p));
    454430                        break;
    455431                case PCLR:
     
    461437            tx = lx + (height * 0.27);
    462438            ty = ly + (height * 0.25);
    463                         label.add(new Instr(Prim.BBOX, new Rectangle2D.Double(lx,ly,width,height)));
    464                         label.add(new Instr(Prim.FILL, bg));
    465                         label.add(new Instr(Prim.RSHP, new RoundRectangle2D.Double(lx,ly,width,height,height,height)));
    466                         label.add(new Instr(Prim.FILL, fg));
     439                        label.add(new Instr(Form.BBOX, new Rectangle2D.Double(lx,ly,width,height)));
     440                        label.add(new Instr(Form.FILL, bg));
     441                        label.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(lx,ly,width,height,height,height)));
     442                        label.add(new Instr(Form.FILL, fg));
    467443                        sw = 1 + (int)(height/10);
    468444                        po = sw / 2;
    469                         label.add(new Instr(Prim.STRK, new BasicStroke(sw, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     445                        label.add(new Instr(Form.STRK, new BasicStroke(sw, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    470446                        p = new Path2D.Double(); p.moveTo(-height*0.2,-ly-po); p.lineTo(height*0.2,-ly-po); p.moveTo(0,-ly-po); p.lineTo(0,-ly-po-(height*0.15));
    471447                        p.moveTo(-height*0.2,ly+po); p.lineTo((height*0.2),ly+po); p.moveTo(0,ly+po); p.lineTo(0,ly+po+(height*0.15));
    472                         label.add(new Instr(Prim.PLIN, p));
    473                         label.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Areas.CableFlash, 1, 0, 0, null, new Delta(Handle.CC, new AffineTransform(0,-1,1,0,-width/2,0)))));
    474                         label.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Areas.CableFlash, 1, 0, 0, null, new Delta(Handle.CC, new AffineTransform(0,-1,1,0,width/2,0)))));
     448                        label.add(new Instr(Form.PLIN, p));
     449                        label.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Areas.CableFlash, 1, 0, 0, null, new Delta(Handle.CC, new AffineTransform(0,-1,1,0,-width/2,0)))));
     450                        label.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Areas.CableFlash, 1, 0, 0, null, new Delta(Handle.CC, new AffineTransform(0,-1,1,0,width/2,0)))));
    475451                        break;
    476452                case HCLR:
     
    482458            tx = lx + (height * 0.5);
    483459            ty = ly + (height * 0.17);
    484                         label.add(new Instr(Prim.BBOX, new Rectangle2D.Double(lx,ly,width,height)));
    485                         label.add(new Instr(Prim.FILL, bg));
    486                         label.add(new Instr(Prim.RSHP, new RoundRectangle2D.Double(lx,ly,width,height,height,height)));
    487                         label.add(new Instr(Prim.FILL, fg));
     460                        label.add(new Instr(Form.BBOX, new Rectangle2D.Double(lx,ly,width,height)));
     461                        label.add(new Instr(Form.FILL, bg));
     462                        label.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(lx,ly,width,height,height,height)));
     463                        label.add(new Instr(Form.FILL, fg));
    488464                        sw = 1 + (int)(height/10);
    489465                        double vo = height / 4;
    490                         label.add(new Instr(Prim.STRK, new BasicStroke(sw, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     466                        label.add(new Instr(Form.STRK, new BasicStroke(sw, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    491467                        p = new Path2D.Double(); p.moveTo(-width*0.4-sw,-ly-vo); p.lineTo(-width*0.4-sw,ly+vo); p.moveTo(-width*0.4-sw,0); p.lineTo(-width*0.4+sw,0);
    492468                        p.moveTo(width*0.4+sw,-ly-vo); p.lineTo(width*0.4+sw,ly+vo); p.moveTo(width*0.4-sw,0); p.lineTo(width*0.4+sw,0);
    493                         label.add(new Instr(Prim.PLIN, p));
     469                        label.add(new Instr(Form.PLIN, p));
    494470                        break;
    495471                default:
     
    498474                        tx = lx;
    499475                        ty = ly;
    500                         label.add(new Instr(Prim.BBOX, new Rectangle2D.Double(lx,ly,width,height)));
    501                         break;
    502                 }
    503                 label.add(new Instr(Prim.TEXT, new Caption(str, font, tc, new Delta(Handle.TL, AffineTransform.getTranslateInstance(tx, ty)))));
     476                        label.add(new Instr(Form.BBOX, new Rectangle2D.Double(lx,ly,width,height)));
     477                        break;
     478                }
     479                label.add(new Instr(Form.TEXT, new Caption(str, font, tc, new Delta(Handle.TL, AffineTransform.getTranslateInstance(tx, ty)))));
    504480                Point2D point = context.getPoint(feature.centre);
    505481                Symbols.drawSymbol(g2, label, sScale, point.getX(), point.getY(), null, delta);
     
    507483
    508484        public static void lineText(Feature feature, String str, Font font, Color colour, double offset, double dy) {
    509                 Area area;
    510                 switch (feature.flag) {
    511                 case LINE:
    512                         Edge edge = map.edges.get(feature.refs);
    513                         area = map.new Area();
    514                         area.add(map.new Bound(map.new Side(edge, true), true));
    515                         break;
    516                 case AREA:
    517                         area = map.areas.get(feature.refs);
    518                         break;
    519                 default:
    520                         return;
    521                 }
    522485//              Rectangle prect = symbolSize(prisymb);
    523486                if (!str.isEmpty()) {
     
    533496                        double len = 0;
    534497                        double angle = 0;
    535                         for (Bound bound : area) {
    536                                 BoundIterator bit = map.new BoundIterator(bound);
     498                        GeomIterator git = map.new GeomIterator(feature.geom);
     499                        while (git.hasMore()) {
     500                                git.more();
    537501                                boolean first = true;
    538                                 while (bit.hasNext()) {
     502                                while (git.hasNext()) {
    539503                                        prev = next;
    540                                         next = context.getPoint(bit.next());
     504                                        next = context.getPoint(git.next());
    541505                                        angle = Math.atan2(next.getY() - prev.getY(), next.getX() - prev.getX());
    542506                                        piv = true;
  • applications/editors/josm/plugins/smed2/src/render/Rules.java

    r30157 r30215  
    3232       
    3333        static String getName(Feature feature) {
    34                 AttItem name = feature.atts.get(Att.OBJNAM);
     34                AttVal<?> name = feature.atts.get(Att.OBJNAM);
    3535                if (name == null) {
    3636                        AttMap atts = feature.objs.get(feature.type).get(0);
     
    5858                        return S57val.nullVal(att);
    5959                else {
    60                         AttItem item = atts.get(att);
     60                        AttVal<?> item = atts.get(att);
    6161                        if (item == null)
    6262                                return S57val.nullVal(att);
     
    8989                AttMap atts = getAtts(feature, obj, 0);
    9090                if (atts != null) {
    91                         AttItem item = atts.get(att);
     91                        AttVal item = atts.get(att);
    9292                        if (item != null) {
    9393                                switch (item.conv) {
     
    233233                        case SEA_RECH:
    234234                                if ((Renderer.zoom >= 10) && (name != null))
    235                                         if (feature.flag == Fflag.LINE) {
     235                                        if (feature.geom.prim == Pflag.LINE) {
    236236                                                Renderer.lineText(feature, name, new Font("Arial", Font.PLAIN, 150), Color.black, 0.5, -40);
    237237                                        } else {
     
    241241                        case SEA_BAY:
    242242                                if ((Renderer.zoom >= 12) && (name != null))
    243                                         if (feature.flag == Fflag.LINE) {
     243                                        if (feature.geom.prim == Pflag.LINE) {
    244244                                                Renderer.lineText(feature, name, new Font("Arial", Font.PLAIN, 150), Color.black, 0.5, -40);
    245245                                        } else {
     
    249249                        case SEA_SHOL:
    250250                                if (Renderer.zoom >= 14) {
    251                                         if (feature.flag == Fflag.AREA) {
     251                                        if (feature.geom.prim == Pflag.AREA) {
    252252                                                Renderer.lineVector(feature, new LineStyle(new Color(0xc480ff), 4, new float[] { 25, 25 }));
    253253                                                if (name != null) {
     
    255255                                                        Renderer.labelText(feature, "(Shoal)", new Font("Arial", Font.PLAIN, 60), Color.black, new Delta(Handle.BC));
    256256                                                }
    257                                         } else if (feature.flag == Fflag.LINE) {
     257                                        } else if (feature.geom.prim == Pflag.LINE) {
    258258                                                if (name != null) {
    259259                                                        Renderer.lineText(feature, name, new Font("Arial", Font.ITALIC, 75), Color.black, 0.5, -40);
     
    489489                case ACHARE:
    490490                        if (Renderer.zoom >= 12) {
    491                                 if (feature.flag != Fflag.AREA) {
     491                                if (feature.geom.prim != Pflag.AREA) {
    492492                                        Renderer.symbol(feature, Harbours.Anchorage, new Scheme(Color.black));
    493493                                } else {
     
    683683                        MarSYS sys = MarSYS.SYS_CEVN;
    684684                        BnkWTW bnk = BnkWTW.BWW_UNKN;
    685                         AttItem att = feature.atts.get(Att.MARSYS);
     685                        AttVal att = feature.atts.get(Att.MARSYS);
    686686                        if (att != null) sys = (MarSYS)att.val;
    687687                        ObjTab objs = feature.objs.get(Obj.NOTMRK);
  • applications/editors/josm/plugins/smed2/src/s57/S57att.java

    r30119 r30215  
    2424          APTREF, SHPTYP, UPDMSG, ADDMRK, CATBNK, CATNMK, CATBRT, CATBUN, CATCCL, CATCOM, CATHBR, CATRFD, CATTML, CATGAG, CATVTR, CATTAB, CATEXS, CATWWM, LG_SPD, LG_SPR,
    2525          LG_BME, LG_LGS, LG_DRT, LG_WDP, LG_WDU, LG_REL, LG_FNC, LG_DES, LG_PBR, LC_CSI, LC_CSE, LC_ASI, LC_ASE, LC_CCI, LC_CCE, LC_BM1, LC_BM2, LC_LG1, LC_LG2, LC_DR1,
    26           LC_DR2, LC_SP1, LC_SP2, LC_WD1, LC_WD2, LITRAD
     26          LC_DR2, LC_SP1, LC_SP2, LC_WD1, LC_WD2, LITRAD, CATCVR
    2727        }
    2828
     
    3232                AttS57.put(Att.CALSGN, 6); AttS57.put(Att.CATAIR, 7); AttS57.put(Att.CATACH, 8); AttS57.put(Att.CATBRG, 9); AttS57.put(Att.CATBUA, 10); AttS57.put(Att.CATCBL, 11);
    3333                AttS57.put(Att.CATCAN, 12); AttS57.put(Att.CATCAM, 13); AttS57.put(Att.CATCHP, 14); AttS57.put(Att.CATCOA, 15); AttS57.put(Att.CATCTR, 16); AttS57.put(Att.CATCON, 17);
     34                AttS57.put(Att.CATCVR, 18);
    3435                AttS57.put(Att.CATCRN, 19); AttS57.put(Att.CATDAM, 20); AttS57.put(Att.CATDIS, 21); AttS57.put(Att.CATDOC, 22); AttS57.put(Att.CATDPG, 23);     AttS57.put(Att.CATFNC, 24);
    3536                AttS57.put(Att.CATFRY, 25); AttS57.put(Att.CATFIF, 26); AttS57.put(Att.CATFOG, 27); AttS57.put(Att.CATFOR, 28); AttS57.put(Att.CATGAT, 29); AttS57.put(Att.CATHAF, 30);
     
    4950                AttS57.put(Att.ORIENT, 117); AttS57.put(Att.PEREND, 118);       AttS57.put(Att.PERSTA, 119); AttS57.put(Att.PICREP, 120);       AttS57.put(Att.PILDST, 121); AttS57.put(Att.PRCTRY, 122);
    5051                AttS57.put(Att.PRODCT, 123); AttS57.put(Att.PUBREF, 124);       AttS57.put(Att.QUASOU, 125); AttS57.put(Att.RADWAL, 126);       AttS57.put(Att.RADIUS, 127); AttS57.put(Att.RECDAT, 128);
    51                 AttS57.put(Att.RECIND, 129); AttS57.put(Att.RYRMGV, 130);       AttS57.put(Att.RESTRN, 131); AttS57.put(Att.SECTR1, 136);       AttS57.put(Att.SECTR2, 137); AttS57.put(Att.SHIPAM, 138);
     52                AttS57.put(Att.RECIND, 129); AttS57.put(Att.RYRMGV, 130);       AttS57.put(Att.RESTRN, 131);    AttS57.put(Att.SCAMIN, 133);
     53                AttS57.put(Att.SECTR1, 136);    AttS57.put(Att.SECTR2, 137); AttS57.put(Att.SHIPAM, 138);
    5254                AttS57.put(Att.SIGFRQ, 139); AttS57.put(Att.SIGGEN, 140);       AttS57.put(Att.SIGGRP, 141); AttS57.put(Att.SIGPER, 142);       AttS57.put(Att.SIGSEQ, 143); AttS57.put(Att.SOUACC, 144);
    5355                AttS57.put(Att.SDISMX, 145); AttS57.put(Att.SDISMN, 146);       AttS57.put(Att.SORDAT, 147); AttS57.put(Att.SORIND, 148);       AttS57.put(Att.STATUS, 149); AttS57.put(Att.SURATH, 150);
     
    150152                AttStr.put(Att.CATVTR, "category");     AttStr.put(Att.CATTAB, "operation"); AttStr.put(Att.SCHREF, "schedule"); AttStr.put(Att.USESHP, "use"); AttStr.put(Att.CURVHW, "high_velocity");
    151153                AttStr.put(Att.CURVLW, "low_velocity"); AttStr.put(Att.CURVMW, "mean_velocity"); AttStr.put(Att.CURVOW, "other_velocity"); AttStr.put(Att.APTREF, "passing_time");
    152                 AttStr.put(Att.CATCOM, "category");
     154                AttStr.put(Att.CATCOM, "category"); AttStr.put(Att.CATCVR, "category"); AttStr.put(Att.SCAMIN, "scale_minimum");
    153155                AttStr.put(Att.CATEXS, "category"); AttStr.put(Att.CATWWM, "category"); AttStr.put(Att.SHPTYP, "ship"); AttStr.put(Att.UPDMSG, "message"); AttStr.put(Att.LITRAD, "radius");
    154156        }
     
    205207          objatt.add(new ObjAtt(Obj.DEPCNT, Att.VALDCO)); objatt.add(new ObjAtt(Obj.SOUNDG, Att.VALSOU)); objatt.add(new ObjAtt(Obj.NOTMRK, Att.BNKWTW));
    206208          objatt.add(new ObjAtt(Obj.WTWAXS, Att.CATCCL)); objatt.add(new ObjAtt(Obj.WTWARE, Att.CATCCL)); objatt.add(new ObjAtt(Obj.COMARE, Att.CATCOM));
    207           objatt.add(new ObjAtt(Obj.RDOCAL, Att.CATCOM)); objatt.add(new ObjAtt(Obj.WTWGAG, Att.CATGAG));
     209          objatt.add(new ObjAtt(Obj.RDOCAL, Att.CATCOM)); objatt.add(new ObjAtt(Obj.WTWGAG, Att.CATGAG)); objatt.add(new ObjAtt(Obj.M_COVR, Att.CATCVR));
    208210          objatt.add(new ObjAtt(Obj.ACHBRT, Att.RADIUS)); objatt.add(new ObjAtt(Obj.LIGHTS, Att.LITRAD));
    209211        }
     
    224226        }
    225227
    226         public static Att decodeAttribute(Integer attribute) {  // Convert S57 attribute code to OSeaM attribute enumeration
    227                 Att att = S57Att.get(attribute);
     228        public static Att decodeAttribute(long attribute) {     // Convert S57 attribute code to OSeaM attribute enumeration
     229                Att att = S57Att.get((int)attribute);
    228230                return (att != null) ? att : Att.UNKATT;
    229231        }
  • applications/editors/josm/plugins/smed2/src/s57/S57dat.java

    r30190 r30215  
    100100        private static ArrayList<S57subf> S57ddsc = new ArrayList<S57subf>(Arrays.asList(S57subf.ATLB, S57subf.ASET, S57subf.AUTH ));
    101101        private static ArrayList<S57subf> S57frid = new ArrayList<S57subf>(Arrays.asList(S57subf.RCNM, S57subf.RCID, S57subf.PRIM, S57subf.GRUP, S57subf.OBJL, S57subf.RVER, S57subf.RUIN ));
    102         private static ArrayList<S57subf> S57foid = new ArrayList<S57subf>(Arrays.asList(S57subf.AGEN, S57subf.FIDN, S57subf.FIDS ));
     102//      private static ArrayList<S57subf> S57foid = new ArrayList<S57subf>(Arrays.asList(S57subf.AGEN, S57subf.FIDN, S57subf.FIDS ));
     103        private static ArrayList<S57subf> S57foid = new ArrayList<S57subf>(Arrays.asList(S57subf.LNAM));
    103104        private static ArrayList<S57subf> S57attf = new ArrayList<S57subf>(Arrays.asList(S57subf.ATTL, S57subf.ATVL ));
    104105        private static ArrayList<S57subf> S57natf = new ArrayList<S57subf>(Arrays.asList(S57subf.ATTL, S57subf.ATVL ));
     
    140141        public static int rnum;
    141142       
    142         public static void setField(byte[] buf, int off, S57field fld, int len) {
    143                 buffer = buf;
    144                 offset = off;
    145                 maxoff = off + len - 1;
    146                 field = fld;
    147                 index = 0;
    148         }
    149        
    150         public static boolean more() {
    151                 return (offset < maxoff);
    152         }
    153        
    154         public static Object getSubf(byte[] buf, int off, S57field fld, S57subf subf) {
    155                 buffer = buf;
    156                 offset = off;
    157                 index = 0;
    158                 return getSubf(fld, subf);
    159         }
    160        
    161         public static Object getSubf(S57field fld, S57subf subf) {
    162                 field = fld;
    163                 index = 0;
    164                 return getSubf(subf);
    165         }
    166 
    167143        private static S57conv findSubf(S57subf subf) {
    168144                ArrayList<S57subf> subs = fields.get(field);
     
    188164        }
    189165       
     166        public static void setField(byte[] buf, int off, S57field fld, int len) {
     167                buffer = buf;
     168                offset = off;
     169                maxoff = off + len - 1;
     170                field = fld;
     171                index = 0;
     172        }
     173       
     174        public static boolean more() {
     175                return ((offset < maxoff) && (buffer[offset+1] != 0x1e));
     176        }
     177       
     178        public static Object getSubf(byte[] buf, int off, S57field fld, S57subf subf) {
     179                buffer = buf;
     180                offset = off;
     181                index = 0;
     182                return getSubf(fld, subf);
     183        }
     184       
     185        public static Object getSubf(S57field fld, S57subf subf) {
     186                field = fld;
     187                index = 0;
     188                return getSubf(subf);
     189        }
     190
    190191        public static Object getSubf(S57subf subf) {
    191192                S57conv conv = findSubf(subf);
     
    194195                        if (conv.asc == 0) {
    195196                                while (buffer[offset] != 0x1f) {
    196                                         str += buffer[offset++];
    197                                 }
     197                                        str += (char)(buffer[offset++]);
     198                                }
     199                                offset++;
    198200                        } else {
    199201                                str = new String(buffer, offset, conv.asc);
  • applications/editors/josm/plugins/smed2/src/s57/S57map.java

    r30186 r30215  
    1212import java.util.*;
    1313
     14import s57.S57obj;
     15import s57.S57obj.*;
    1416import s57.S57att;
    1517import s57.S57att.*;
    16 import s57.S57obj;
    17 import s57.S57obj.*;
    1818import s57.S57val;
    1919import s57.S57val.*;
     
    7878                }
    7979        }
    80 
    81         public class Side {     // An edge as used in a line or area feature
    82                 Edge edge;                              // Side is formed by this Edge...
    83                 boolean forward;        // ... in this direction
    84 
    85                 public Side(Edge iedge, boolean ifwd) {
    86                         edge = iedge;
    87                         forward = ifwd;
    88                 }
    89         }
    90 
    91         public class Bound { // A single closed area
    92                 public boolean outer;           // Role
    93                 ArrayList<Side> sides;  // Sides that make up this area
    94 
    95                 public Bound() {
    96                         outer = true;
    97                         sides = new ArrayList<Side>();
    98                 }
    99                 public Bound(Side iside, boolean irole) {
    100                         outer = irole;
    101                         sides = new ArrayList<Side>();
    102                         sides.add(iside);
    103                 }
    104         }
    105 
    106         public class Area extends ArrayList<Bound> {    // The collection of bounds for an area.
    107                 public Area() {
     80       
     81        public enum Rflag {
     82                UNKN, AGGR, MASTER, SLAVE, PEER
     83        }
     84       
     85        public class Reln {
     86                public long id;
     87                public Rflag reln;
     88                public Reln(long i, Rflag r) {
     89                        id = i;
     90                        reln = r;
     91                }
     92        }
     93
     94        public class AttMap extends HashMap<Att, AttVal<?>> {
     95                public AttMap() {
    10896                        super();
    10997                }
    11098        }
    11199
    112         public class AttItem {
    113                 public Conv conv;
    114                 public Object val;
    115 
    116                 AttItem(Conv iconv, Object ival) {
    117                         conv = iconv;
    118                         val = ival;
    119                 }
    120         }
    121 
    122         public class AttMap extends EnumMap<Att, AttItem> {
    123                 public AttMap() {
    124                         super(Att.class);
     100        public class RelTab extends ArrayList<Reln> {
     101                public RelTab() {
     102                        super();
    125103                }
    126104        }
     
    150128        }
    151129
    152         public class AreaTab extends HashMap<Long, Area> {
    153                 public AreaTab() {
    154                         super();
    155                 }
    156         }
    157 
    158130        public class FtrMap extends EnumMap<Obj, ArrayList<Feature>> {
    159131                public FtrMap() {
     
    168140        }
    169141
    170         public enum Fflag {
    171                 UNKN, POINT, LINE, AREA
    172         }
    173 
     142        public class Prim {                             // Spatial element
     143                public long id;                                 // ID
     144                public boolean forward; // Direction of vector used (LINEs & AREAs)
     145                public boolean outer;           // Exterior/Interior boundary (AREAs)
     146                public Prim() {
     147                        id = 0; forward = true; outer = true;
     148                }
     149                public Prim(long i) {
     150                        id = i; forward = true; outer = true;
     151                }
     152                public Prim(long i, boolean o) {
     153                        id = i; forward = true; outer = o;
     154                }
     155                public Prim(long i, boolean f, boolean o) {
     156                        id = i; forward = f; outer = o;
     157                }
     158        }
     159       
     160        public enum Pflag {
     161                NOSP, POINT, LINE, AREA
     162        }
     163       
     164        public class Geom {                                                     // Geometric structure of feature
     165                public Pflag prim;                                              // Geometry type
     166                public ArrayList<Prim> elems;   // Ordered list of elements
     167                public Geom(Pflag p) {
     168                        prim = p;
     169                        elems = new ArrayList<Prim>();
     170                }
     171        }
     172       
    174173        public class Feature {
    175                 public Fflag flag;
    176                 public long refs;
    177                 public Obj type;
    178                 public AttMap atts;
    179                 public ObjMap objs;
    180                 public double area;
    181                 public double length;
    182                 public Snode centre;
     174                public Rflag reln;              // Relationship status
     175                public Geom geom;                       // Geometry data
     176                public Obj type;                        // Feature type
     177                public AttMap atts;             // Feature attributes
     178                public RelTab rels;             // Related objects
     179                public ObjMap objs;             // Slave objects
     180                public double area;             // Area of feature
     181                public double length;   // Length of feature
     182                public Snode centre;    // Centre of feature
    183183
    184184                Feature() {
    185                         flag = Fflag.UNKN;
    186                         refs = 0;
    187                         type = Obj.UNKOBJ;
     185                        reln = Rflag.UNKN;
     186                        geom = new Geom(Pflag.NOSP);
     187                        type = Obj.C_AGGR;
    188188                        atts = new AttMap();
     189                        rels = new RelTab();
    189190                        objs = new ObjMap();
    190191                        area = 0;
     
    196197        public NodeTab nodes;
    197198        public EdgeTab edges;
    198         public AreaTab areas;
    199199
    200200        public FtrMap features;
     
    203203        private Feature feature;
    204204        private Edge edge;
    205         private ArrayList<Long> outers;
    206         private ArrayList<Long> inners;
    207 
    208         public class EdgeIterator {
    209                 Edge edge;
    210                 boolean forward;
    211                 ListIterator<Long> it;
    212 
    213                 public EdgeIterator(Edge iedge, boolean dir) {
    214                         edge = iedge;
    215                         forward = dir;
    216                         it = null;
    217                 }
    218 
    219                 public boolean hasNext() {
    220                         return (edge != null);
    221                 }
    222 
    223                 public Snode next() {
    224                         long ref = 0;
    225                         if (forward) {
    226                                 if (it == null) {
    227                                         ref = edge.first;
    228                                         it = edge.nodes.listIterator();
    229                                 } else {
    230                                         if (it.hasNext()) {
    231                                                 ref = it.next();
    232                                         } else {
    233                                                 ref = edge.last;
    234                                                 edge = null;
    235                                         }
    236                                 }
    237                         } else {
    238                                 if (it == null) {
    239                                         ref = edge.last;
    240                                         it = edge.nodes.listIterator(edge.nodes.size());
    241                                 } else {
    242                                         if (it.hasPrevious()) {
    243                                                 ref = it.previous();
    244                                         } else {
    245                                                 ref = edge.first;
    246                                                 edge = null;
    247                                         }
    248                                 }
    249                         }
    250                         return nodes.get(ref);
    251                 }
    252         }
    253 
    254         public class BoundIterator {
    255                 Bound bound;
    256                 Side side;
    257                 ListIterator<Side> sit;
    258                 EdgeIterator eit;
    259 
    260                 public BoundIterator(Bound ibound) {
    261                         bound = ibound;
    262                         sit = bound.sides.listIterator();
    263                         if (sit.hasNext()) {
    264                                 side = sit.next();
    265                                 eit = new EdgeIterator(side.edge, side.forward);
    266                         } else {
    267                                 side = null;
    268                         }
    269                 }
    270 
    271                 public boolean hasNext() {
    272                         return (side != null) && ((sit.hasNext()) || (eit.hasNext()));
    273                 }
    274 
    275                 public Snode next() {
    276                         Snode node = null;
    277                         if (side != null) {
    278                                 if (eit.hasNext()) {
    279                                         node = eit.next();
    280                                 } else {
    281                                         if (sit.hasNext()) {
    282                                                 side = sit.next();
    283                                                 eit = new EdgeIterator(side.edge, side.forward);
    284                                                 node = eit.next();
    285                                         } else {
    286                                                 side = null;
    287                                         }
    288                                 }
    289                         }
    290                         return node;
    291                 }
    292         }
    293        
     205
    294206        public S57map() {
    295                 nodes = new NodeTab();
    296                 edges = new EdgeTab();
    297                 areas = new AreaTab();
    298                 feature = new Feature();
    299                 features = new FtrMap();
    300                 index = new FtrTab();
    301         }
    302 
    303         public void addNode(long id, double lat, double lon) {
    304                 nodes.put(id, new Snode(Math.toRadians(lat), Math.toRadians(lon)));
    305                 feature = new Feature();
    306                 feature.refs = id;
    307                 feature.flag = Fflag.POINT;
    308                 edge = null;
    309         }
    310 
     207                nodes = new NodeTab();          // All nodes in map
     208                edges = new EdgeTab();          // All edges in map
     209                feature = new Feature();        // Current feature being built
     210                features = new FtrMap();        // All features in map, grouped by type
     211                index = new FtrTab();                   // Feature look-up table
     212        }
     213
     214        // S57 map building methods
     215       
    311216        public void newNode(long id, double lat, double lon, Nflag flag) {
    312217                nodes.put(id, new Snode(Math.toRadians(lat), Math.toRadians(lon), flag));
     
    320225        }
    321226
    322         public void newEdge(long id) {
    323                 edge = new Edge();
    324                 edges.put(id, edge);
     227        public void newFeature(long id, Pflag p, long objl) {
     228                feature = new Feature();
     229                Obj obj = S57obj.decodeType(objl);
     230                if (obj == Obj.C_AGGR) {
     231                        feature.reln = Rflag.AGGR;
     232                }
     233                feature.geom = new Geom(p);
     234                feature.type = obj;
     235                index.put(id, feature);
     236        }
     237       
     238        public void newObj(long id, int rind) {
     239                Rflag r = Rflag.AGGR;
     240                switch (rind) {
     241                case 1:
     242                        r = Rflag.MASTER;
     243                        break;
     244                case 2:
     245                        r = Rflag.SLAVE;
     246                        break;
     247                case 3:
     248                        r = Rflag.PEER;
     249                        break;
     250                }
     251                feature.rels.add(new Reln(id, r));
     252        }
     253       
     254        public void endFeature() {
     255               
     256        }
     257       
     258        public void newAtt(long attl, String atvl) {
     259                Att att = S57att.decodeAttribute(attl);
     260                AttVal<?> val = S57val.decodeValue(atvl, att);
     261                feature.atts.put(att, val);
     262        }
     263
     264        public void newPrim(long id, long ornt, long usag) {
     265                feature.geom.elems.add(new Prim(id, (ornt != 2), (usag != 2)));
    325266        }
    326267
     
    333274        }
    334275
     276        public void newEdge(long id) {
     277                edge = new Edge();
     278                edges.put(id, edge);
     279        }
     280
     281        public void endFile() {
     282                for (long id : index.keySet()) {
     283                        Feature feature = index.get(id);
     284                        for (Reln rel : feature.rels) {
     285                                Feature reln = index.get(rel.id);
     286                                reln.reln = rel.reln;
     287                                if (feature.reln == Rflag.UNKN) {
     288                                        switch (rel.reln) {
     289                                        case MASTER:
     290                                                feature.reln = Rflag.AGGR;
     291                                                break;
     292                                        case SLAVE:
     293                                                feature.reln = Rflag.MASTER;
     294                                        case PEER:
     295                                                feature.reln = Rflag.PEER;
     296                                                break;
     297                                        default:
     298                                                break;
     299                                        }
     300                                }
     301                                ObjTab tab = feature.objs.get(reln.type);
     302                                if (tab == null) {
     303                                        tab = new ObjTab();
     304                                        feature.objs.put(reln.type, tab);
     305                                }
     306                                tab.put(tab.size(), reln.atts);
     307                        }
     308                }
     309                for (long id : index.keySet()) {
     310                        Feature feature = index.get(id);
     311                        if (feature.reln == Rflag.UNKN) {
     312                                feature.reln = Rflag.MASTER;
     313                        }
     314                        if ((feature.type != Obj.UNKOBJ) && ((feature.reln == Rflag.MASTER) || (feature.reln == Rflag.PEER))) {
     315                                if (features.get(feature.type) == null) {
     316                                        features.put(feature.type, new ArrayList<Feature>());
     317                                }
     318                                features.get(feature.type).add(feature);
     319                        }
     320                }
     321        }
     322
     323        // OSM map building methods
     324       
     325        public void addNode(long id, double lat, double lon) {
     326                Snode node = new Snode(Math.toRadians(lat), Math.toRadians(lon));
     327                nodes.put(id, node);
     328                feature = new Feature();
     329                feature.reln = Rflag.AGGR;
     330                feature.geom.prim = Pflag.POINT;
     331                feature.geom.elems.add(new Prim(id));
     332                edge = null;
     333        }
     334
    335335        public void addEdge(long id) {
    336336                feature = new Feature();
    337                 feature.refs = id;
    338                 feature.flag = Fflag.LINE;
     337                feature.reln = Rflag.AGGR;
     338                feature.geom.prim = Pflag.LINE;
     339                feature.geom.elems.add(new Prim(id));
    339340                edge = new Edge();
    340341        }
     
    343344                if (edge.first == 0) {
    344345                        edge.first = node;
     346                        nodes.get(node).flg = Nflag.CONN;
    345347                } else {
    346348                        if (edge.last != 0) {
     
    353355        public void addArea(long id) {
    354356                feature = new Feature();
    355                 feature.refs = id;
    356                 feature.flag = Fflag.AREA;
    357                 outers = new ArrayList<Long>();
    358                 inners = new ArrayList<Long>();
     357                feature.reln = Rflag.AGGR;
     358                feature.geom.prim = Pflag.AREA;
     359                feature.geom.elems.add(new Prim(id));
    359360                edge = null;
    360361        }
    361362
    362363        public void addToArea(long id, boolean outer) {
    363                 if (outer) {
    364                         outers.add(id);
    365                 } else {
    366                         inners.add(id);
    367                 }
     364                feature.geom.elems.add(new Prim(id, outer));
    368365        }
    369366
     
    395392                                AttVal<?> attval = S57val.convertValue(val, att);
    396393                                if (attval.val != null)
    397                                         atts.put(att, new AttItem(attval.conv, attval.val));
     394                                        atts.put(att, attval);
    398395                        } else {
    399396                                if (subkeys[1].equals("type")) {
     
    407404                                                AttVal<?> attval = S57val.convertValue(val, att);
    408405                                                if (attval.val != null)
    409                                                         feature.atts.put(att, new AttItem(attval.conv, attval.val));
     406                                                        feature.atts.put(att, attval);
    410407                                        }
    411408                                }
     
    415412
    416413        public void tagsDone(long id) {
    417                 switch (feature.flag) {
     414                switch (feature.geom.prim) {
    418415                case POINT:
    419416                        Snode node = nodes.get(id);
     
    428425                        nodes.get(edge.first).flg = Nflag.CONN;
    429426                        nodes.get(edge.last).flg = Nflag.CONN;
    430                         Bound ebound = (new Bound(new Side(edge, true), true));
    431                         feature.length = calcLength(ebound);
     427                        feature.length = calcLength(feature.geom);
    432428                        if (edge.first == edge.last) {
    433                                 feature.flag = Fflag.AREA;
    434                                 Area area = new Area();
    435                                 area.add(ebound);
    436                                 feature.area = calcArea(ebound);
    437                                 areas.put(id, area);
     429                                feature.geom.prim = Pflag.AREA;
     430                                feature.area = calcArea(feature.geom);
    438431                        } else {
    439432                                feature.area = 0;
     
    441434                        break;
    442435                case AREA:
    443                         Bound bound = null;
    444                         Area area = new Area();
    445                         ArrayList<Long> role = outers;
    446                         while (role != null) {
    447                                 while (!role.isEmpty()) {
    448                                         Edge edge = edges.get(role.remove(0));
    449                                         long node1 = edge.first;
    450                                         long node2 = edge.last;
    451                                         bound = new Bound(new Side(edge, true), (role == outers));
    452                                         if (node1 != node2) {
    453                                                 for (ListIterator<Long> it = role.listIterator(0); it.hasNext();) {
    454                                                         Edge nedge = edges.get(it.next());
    455                                                         if (nedge.first == node2) {
    456                                                                 bound.sides.add(new Side(nedge, true));
    457                                                                 it.remove();
    458                                                                 if (nedge.last == node2)
    459                                                                         break;
    460                                                         } else if (nedge.last == node2) {
    461                                                                 bound.sides.add(new Side(nedge, false));
    462                                                                 it.remove();
    463                                                                 if (nedge.first == node2)
    464                                                                         break;
    465                                                         }
    466                                                 }
    467                                         }
    468                                         area.add(bound);
    469                                 }
    470                                 if (role == outers) {
    471                                         feature.length = calcLength(bound);
    472                                         feature.area = calcArea(bound);
    473                                         role = inners;
    474                                 } else {
    475                                         role = null;
    476                                 }
    477                         }
    478                         areas.put(id, area);
    479436                        break;
    480                 case UNKN:
    481437                default:
    482438                        break;
     
    492448        }
    493449
    494         double signedArea(Bound bound) {
     450        // Utility methods
     451       
     452        public class EdgeIterator {
     453                Edge edge;
     454                boolean forward;
     455                ListIterator<Long> it;
     456
     457                public EdgeIterator(Edge e, boolean dir) {
     458                        edge = e;
     459                        forward = dir;
     460                        it = null;
     461                }
     462
     463                public boolean hasNext() {
     464                        return (edge != null);
     465                }
     466
     467                public Snode next() {
     468                        long ref = 0;
     469                        if (forward) {
     470                                if (it == null) {
     471                                        ref = edge.first;
     472                                        it = edge.nodes.listIterator();
     473                                } else {
     474                                        if (it.hasNext()) {
     475                                                ref = it.next();
     476                                        } else {
     477                                                ref = edge.last;
     478                                                edge = null;
     479                                        }
     480                                }
     481                        } else {
     482                                if (it == null) {
     483                                        ref = edge.last;
     484                                        it = edge.nodes.listIterator(edge.nodes.size());
     485                                } else {
     486                                        if (it.hasPrevious()) {
     487                                                ref = it.previous();
     488                                        } else {
     489                                                ref = edge.first;
     490                                                edge = null;
     491                                        }
     492                                }
     493                        }
     494                        return nodes.get(ref);
     495                }
     496        }
     497
     498        public class GeomIterator {
     499                Geom geom;
     500                Prim prim;
     501                EdgeIterator eit;
     502                ListIterator<S57map.Prim> it;
     503                Snode first;
     504                Snode last;
     505               
     506                public GeomIterator(Geom g) {
     507                        geom = g;
     508                        eit = null;
     509                        first = last = null;
     510                        if ((geom.prim != Pflag.NOSP) && (geom.prim != Pflag.POINT)) {
     511                                it = geom.elems.listIterator();
     512                        } else {
     513                                it = null;
     514                        }
     515                }
     516               
     517                public boolean hasMore() {
     518                        return (it != null) && it.hasNext();
     519                }
     520               
     521                public boolean more() {
     522                        if ((it != null) && it.hasNext()) {
     523                                prim = it.next();
     524                                return prim.outer;
     525                        }
     526                        return false;
     527                }
     528               
     529                public boolean hasNext() {
     530                        return (first != last) && (eit.hasNext() || it.hasNext());
     531                }
     532               
     533                public Snode next() {
     534                        if (!eit.hasNext()) {
     535                                if (it.hasNext()) {
     536                                        prim = it.next();
     537                                        eit = new EdgeIterator(edges.get(prim.id), prim.forward);
     538                                } else {
     539                                        return null;
     540                                }
     541                        }
     542                        last = eit.next();
     543                        return last;
     544                }
     545        }
     546       
     547        double signedArea(Geom geom) {
    495548                Snode node;
    496549                double lat, lon, llon, llat;
    497550                lat = lon = llon = llat = 0;
    498551                double sigma = 0;
    499                 BoundIterator it = new BoundIterator(bound);
     552/*              BoundIterator it = new BoundIterator(bound);
    500553                while (it.hasNext()) {
    501554                        llon = lon;
     
    506559                        sigma += (lon * Math.sin(llat)) - (llon * Math.sin(lat));
    507560                }
    508                 return sigma / 2.0;
    509         }
    510 
    511         public boolean handOfArea(Bound bound) {
    512                 return (signedArea(bound) < 0);
    513         }
    514 
    515         public double calcArea(Bound bound) {
    516                 return Math.abs(signedArea(bound)) * 3444 * 3444;
    517         }
    518 
    519         public double calcLength(Bound bound) {
    520                 Snode node;
     561*/              return sigma / 2.0;
     562        }
     563
     564        public boolean handOfArea(Geom geom) {
     565                return (signedArea(geom) < 0);
     566        }
     567
     568        public double calcArea(Geom geom) {
     569                return Math.abs(signedArea(geom)) * 3444 * 3444;
     570        }
     571
     572        public double calcLength(Geom geom) {
     573/*              Snode node;
    521574                double lat, lon, llon, llat;
    522575                lat = lon = llon = llat = 0;
     
    537590                }
    538591                return sigma * 3444;
     592*/              return 0;
    539593        }
    540594
    541595        public Snode findCentroid(Feature feature) {
    542                 double lat, lon, slat, slon, llat, llon;
     596/*              double lat, lon, slat, slon, llat, llon;
    543597                llat = llon = lat = lon = slat = slon = 0;
    544598                double sarc = 0;
    545599                boolean first = true;
    546                 switch (feature.flag) {
     600                switch (feature.geom.prim) {
    547601                case POINT:
    548                         return nodes.get(feature.refs);
     602                        return nodes.get(feature.geom);
    549603                case LINE:
    550                         Edge edge = edges.get(feature.refs);
     604                        Edge edge = edges.get(feature.geom);
    551605                        EdgeIterator eit = new EdgeIterator(edge, true);
    552606                        while (eit.hasNext()) {
     
    583637                        return new Snode(llat + ((lat - llat) * harc / sarc), llon + ((lon - llon) * harc / sarc));
    584638                case AREA:
    585                         Bound bound = areas.get(feature.refs).get(0);
     639                        Bound bound = areas.get(feature.geom).get(0);
    586640                        BoundIterator bit = new BoundIterator(bound);
    587641                        while (bit.hasNext()) {
     
    603657                default:
    604658                }
    605                 return null;
     659*/              return null;
    606660        }
    607661
  • applications/editors/josm/plugins/smed2/src/s57/S57obj.java

    r30028 r30215  
    1919                TIDEWY, TOPMAR, TSELNE, TSSBND, TSSCRS, TSSLPT, TSSRON, TSEZNE, TUNNEL, TWRTPT, UWTROC, UNSARE, VEGATN, WATTUR, WATFAL, WEDKLP,
    2020                WRECKS, TS_FEB, NOTMRK, WTWAXS, WTWPRF, BRGARE, BUNSTA, COMARE, HRBBSN, LOKARE, LKBSPT, PRTARE, BCNWTW, BOYWTW, REFDMP, RTPLPT,
    21                 TERMNL, TRNBSN, WTWARE, WTWGAG, TISDGE, VEHTRF, EXCNST, LG_SDM, LG_VSP, LITMIN, LITMAJ
     21                TERMNL, TRNBSN, WTWARE, WTWGAG, TISDGE, VEHTRF, EXCNST, LG_SDM, LG_VSP, LITMIN, LITMAJ, C_AGGR, M_COVR
    2222        }
    2323
    2424        private static final EnumMap<Obj, Integer> ObjS57 = new EnumMap<Obj, Integer>(Obj.class);
    2525        static {
    26                 ObjS57.put(Obj.UNKOBJ,0); ObjS57.put(Obj.ADMARE,1); ObjS57.put(Obj.AIRARE,2); ObjS57.put(Obj.ACHBRT,3); ObjS57.put(Obj.ACHARE,4);
    27                 ObjS57.put(Obj.BCNCAR,5); ObjS57.put(Obj.BCNISD,6); ObjS57.put(Obj.BCNLAT,7); ObjS57.put(Obj.BCNSAW,8); ObjS57.put(Obj.BCNSPP,9);
    28                 ObjS57.put(Obj.BERTHS,10); ObjS57.put(Obj.BRIDGE,11); ObjS57.put(Obj.BUISGL,12); ObjS57.put(Obj.BUAARE,13); ObjS57.put(Obj.BOYCAR,14);
    29                 ObjS57.put(Obj.BOYINB,15); ObjS57.put(Obj.BOYISD,16); ObjS57.put(Obj.BOYLAT,17); ObjS57.put(Obj.BOYSAW,18); ObjS57.put(Obj.BOYSPP,19);
    30                 ObjS57.put(Obj.CBLARE,20); ObjS57.put(Obj.CBLOHD,21); ObjS57.put(Obj.CBLSUB,22); ObjS57.put(Obj.CANALS,23);     ObjS57.put(Obj.CANBNK,24);
    31                 ObjS57.put(Obj.CTSARE,25); ObjS57.put(Obj.CAUSWY,26);   ObjS57.put(Obj.CTNARE,27); ObjS57.put(Obj.CHKPNT,28); ObjS57.put(Obj.CGUSTA,29);
    32                 ObjS57.put(Obj.COALNE,30); ObjS57.put(Obj.CONZNE,31); ObjS57.put(Obj.COSARE,32); ObjS57.put(Obj.CTRPNT,33); ObjS57.put(Obj.CONVYR,34);
    33                 ObjS57.put(Obj.CRANES,35); ObjS57.put(Obj.CURENT,36); ObjS57.put(Obj.CUSZNE,37); ObjS57.put(Obj.DAMCON,38);     ObjS57.put(Obj.DAYMAR,39);
    34                 ObjS57.put(Obj.DWRTCL,40); ObjS57.put(Obj.DWRTPT,41); ObjS57.put(Obj.DEPARE,42); ObjS57.put(Obj.DEPCNT,43);     ObjS57.put(Obj.DISMAR,44);
    35                 ObjS57.put(Obj.DOCARE,45); ObjS57.put(Obj.DRGARE,46); ObjS57.put(Obj.DRYDOC,47); ObjS57.put(Obj.DMPGRD,48); ObjS57.put(Obj.DYKCON,49);
    36                 ObjS57.put(Obj.EXEZNE,50); ObjS57.put(Obj.FAIRWY,51); ObjS57.put(Obj.FNCLNE,52); ObjS57.put(Obj.FERYRT,53); ObjS57.put(Obj.FSHZNE,54);
    37                 ObjS57.put(Obj.FSHFAC,55); ObjS57.put(Obj.FSHGRD,56); ObjS57.put(Obj.FLODOC,57); ObjS57.put(Obj.FOGSIG,58); ObjS57.put(Obj.FORSTC,59);
    38                 ObjS57.put(Obj.FRPARE,60); ObjS57.put(Obj.GATCON,61); ObjS57.put(Obj.GRIDRN,62); ObjS57.put(Obj.HRBARE,63); ObjS57.put(Obj.HRBFAC,64);
    39                 ObjS57.put(Obj.HULKES,65); ObjS57.put(Obj.ICEARE,66); ObjS57.put(Obj.ICNARE,67); ObjS57.put(Obj.ISTZNE,68); ObjS57.put(Obj.LAKARE,69);
    40                 ObjS57.put(Obj.LAKSHR,70); ObjS57.put(Obj.LNDARE,71);   ObjS57.put(Obj.LNDELV,72); ObjS57.put(Obj.LNDRGN,73); ObjS57.put(Obj.LNDMRK,74);
    41                 ObjS57.put(Obj.LIGHTS,75); ObjS57.put(Obj.LITFLT,76); ObjS57.put(Obj.LITVES,77); ObjS57.put(Obj.LOCMAG,78); ObjS57.put(Obj.LOKBSN,79);
    42                 ObjS57.put(Obj.LOGPON,80); ObjS57.put(Obj.MAGVAR,81); ObjS57.put(Obj.MARCUL,82); ObjS57.put(Obj.MIPARE,83); ObjS57.put(Obj.MORFAC,84);
    43                 ObjS57.put(Obj.NAVLNE,85); ObjS57.put(Obj.OBSTRN,86); ObjS57.put(Obj.OFSPLF,87); ObjS57.put(Obj.OSPARE,88); ObjS57.put(Obj.OILBAR,89);
    44                 ObjS57.put(Obj.PILPNT,90); ObjS57.put(Obj.PILBOP,91);   ObjS57.put(Obj.PIPARE,92); ObjS57.put(Obj.PIPOHD,93); ObjS57.put(Obj.PIPSOL,94);
    45                 ObjS57.put(Obj.PONTON,95); ObjS57.put(Obj.PRCARE,96); ObjS57.put(Obj.PRDARE,97); ObjS57.put(Obj.PYLONS,98); ObjS57.put(Obj.RADLNE,99);
    46                 ObjS57.put(Obj.RADRNG,100); ObjS57.put(Obj.RADRFL,101); ObjS57.put(Obj.RADSTA,102); ObjS57.put(Obj.RTPBCN,103); ObjS57.put(Obj.RDOCAL,104);
    47                 ObjS57.put(Obj.RDOSTA,105);     ObjS57.put(Obj.RAILWY,106);     ObjS57.put(Obj.RAPIDS,107);     ObjS57.put(Obj.RCRTCL,108);     ObjS57.put(Obj.RECTRC,109);
    48                 ObjS57.put(Obj.RCTLPT,110);     ObjS57.put(Obj.RSCSTA,111);     ObjS57.put(Obj.RESARE,112);     ObjS57.put(Obj.RETRFL,113);     ObjS57.put(Obj.RIVERS,114);
    49                 ObjS57.put(Obj.RIVBNK,115);     ObjS57.put(Obj.ROADWY,116);     ObjS57.put(Obj.RUNWAY,117);     ObjS57.put(Obj.SNDWAV,118);     ObjS57.put(Obj.SEAARE,119);
    50                 ObjS57.put(Obj.SPLARE,120);     ObjS57.put(Obj.SBDARE,121);     ObjS57.put(Obj.SLCONS,122);     ObjS57.put(Obj.SISTAT,123);     ObjS57.put(Obj.SISTAW,124);
    51                 ObjS57.put(Obj.SILTNK,125);     ObjS57.put(Obj.SLOTOP,126);     ObjS57.put(Obj.SLOGRD,127);     ObjS57.put(Obj.SMCFAC,128);     ObjS57.put(Obj.SOUNDG,129);
    52                 ObjS57.put(Obj.SPRING,130);     ObjS57.put(Obj.SQUARE,131);     ObjS57.put(Obj.STSLNE,132);     ObjS57.put(Obj.SUBTLN,133);     ObjS57.put(Obj.SWPARE,134);
    53                 ObjS57.put(Obj.TESARE,135); ObjS57.put(Obj.TS_PRH,136); ObjS57.put(Obj.TS_PNH,137); ObjS57.put(Obj.TS_PAD,138); ObjS57.put(Obj.TS_TIS,139);
    54                 ObjS57.put(Obj.T_HMON,140);     ObjS57.put(Obj.T_NHMN,141);     ObjS57.put(Obj.T_TIMS,142);     ObjS57.put(Obj.TIDEWY,143);     ObjS57.put(Obj.TOPMAR,144);
    55                 ObjS57.put(Obj.TSELNE,145);     ObjS57.put(Obj.TSSBND,146);     ObjS57.put(Obj.TSSCRS,147);     ObjS57.put(Obj.TSSLPT,148);     ObjS57.put(Obj.TSSRON,149);
    56                 ObjS57.put(Obj.TSEZNE,150);     ObjS57.put(Obj.TUNNEL,151);     ObjS57.put(Obj.TWRTPT,152);     ObjS57.put(Obj.UWTROC,153);     ObjS57.put(Obj.UNSARE,154);
    57                 ObjS57.put(Obj.VEGATN,155);     ObjS57.put(Obj.WATTUR,156);     ObjS57.put(Obj.WATFAL,157);     ObjS57.put(Obj.WEDKLP,158);     ObjS57.put(Obj.WRECKS,159);
    58                 ObjS57.put(Obj.TS_FEB,160); ObjS57.put(Obj.MPAARE,199);
     26                ObjS57.put(Obj.UNKOBJ,0);
     27                ObjS57.put(Obj.ADMARE,1); ObjS57.put(Obj.AIRARE,2); ObjS57.put(Obj.ACHBRT,3); ObjS57.put(Obj.ACHARE,4); ObjS57.put(Obj.BCNCAR,5);
     28                ObjS57.put(Obj.BCNISD,6); ObjS57.put(Obj.BCNLAT,7); ObjS57.put(Obj.BCNSAW,8); ObjS57.put(Obj.BCNSPP,9); ObjS57.put(Obj.BERTHS,10);
     29                ObjS57.put(Obj.BRIDGE,11); ObjS57.put(Obj.BUISGL,12); ObjS57.put(Obj.BUAARE,13); ObjS57.put(Obj.BOYCAR,14); ObjS57.put(Obj.BOYINB,15);
     30                ObjS57.put(Obj.BOYISD,16); ObjS57.put(Obj.BOYLAT,17); ObjS57.put(Obj.BOYSAW,18); ObjS57.put(Obj.BOYSPP,19); ObjS57.put(Obj.CBLARE,20);
     31                ObjS57.put(Obj.CBLOHD,21); ObjS57.put(Obj.CBLSUB,22); ObjS57.put(Obj.CANALS,23); ObjS57.put(Obj.CANBNK,24); ObjS57.put(Obj.CTSARE,25);
     32                ObjS57.put(Obj.CAUSWY,26); ObjS57.put(Obj.CTNARE,27); ObjS57.put(Obj.CHKPNT,28); ObjS57.put(Obj.CGUSTA,29); ObjS57.put(Obj.COALNE,30);
     33                ObjS57.put(Obj.CONZNE,31); ObjS57.put(Obj.COSARE,32); ObjS57.put(Obj.CTRPNT,33); ObjS57.put(Obj.CONVYR,34); ObjS57.put(Obj.CRANES,35);
     34                ObjS57.put(Obj.CURENT,36); ObjS57.put(Obj.CUSZNE,37); ObjS57.put(Obj.DAMCON,38); ObjS57.put(Obj.DAYMAR,39); ObjS57.put(Obj.DWRTCL,40);
     35                ObjS57.put(Obj.DWRTPT,41); ObjS57.put(Obj.DEPARE,42); ObjS57.put(Obj.DEPCNT,43); ObjS57.put(Obj.DISMAR,44); ObjS57.put(Obj.DOCARE,45);
     36                ObjS57.put(Obj.DRGARE,46); ObjS57.put(Obj.DRYDOC,47); ObjS57.put(Obj.DMPGRD,48); ObjS57.put(Obj.DYKCON,49); ObjS57.put(Obj.EXEZNE,50);
     37                ObjS57.put(Obj.FAIRWY,51); ObjS57.put(Obj.FNCLNE,52); ObjS57.put(Obj.FERYRT,53); ObjS57.put(Obj.FSHZNE,54); ObjS57.put(Obj.FSHFAC,55);
     38                ObjS57.put(Obj.FSHGRD,56); ObjS57.put(Obj.FLODOC,57); ObjS57.put(Obj.FOGSIG,58); ObjS57.put(Obj.FORSTC,59); ObjS57.put(Obj.FRPARE,60);
     39                ObjS57.put(Obj.GATCON,61); ObjS57.put(Obj.GRIDRN,62); ObjS57.put(Obj.HRBARE,63); ObjS57.put(Obj.HRBFAC,64); ObjS57.put(Obj.HULKES,65);
     40                ObjS57.put(Obj.ICEARE,66); ObjS57.put(Obj.ICNARE,67); ObjS57.put(Obj.ISTZNE,68); ObjS57.put(Obj.LAKARE,69); ObjS57.put(Obj.LAKSHR,70);
     41                ObjS57.put(Obj.LNDARE,71); ObjS57.put(Obj.LNDELV,72); ObjS57.put(Obj.LNDRGN,73); ObjS57.put(Obj.LNDMRK,74); ObjS57.put(Obj.LIGHTS,75);
     42                ObjS57.put(Obj.LITFLT,76); ObjS57.put(Obj.LITVES,77); ObjS57.put(Obj.LOCMAG,78); ObjS57.put(Obj.LOKBSN,79); ObjS57.put(Obj.LOGPON,80);
     43                ObjS57.put(Obj.MAGVAR,81); ObjS57.put(Obj.MARCUL,82); ObjS57.put(Obj.MIPARE,83); ObjS57.put(Obj.MORFAC,84); ObjS57.put(Obj.NAVLNE,85);
     44                ObjS57.put(Obj.OBSTRN,86); ObjS57.put(Obj.OFSPLF,87); ObjS57.put(Obj.OSPARE,88); ObjS57.put(Obj.OILBAR,89); ObjS57.put(Obj.PILPNT,90);
     45                ObjS57.put(Obj.PILBOP,91); ObjS57.put(Obj.PIPARE,92); ObjS57.put(Obj.PIPOHD,93); ObjS57.put(Obj.PIPSOL,94); ObjS57.put(Obj.PONTON,95);
     46                ObjS57.put(Obj.PRCARE,96); ObjS57.put(Obj.PRDARE,97); ObjS57.put(Obj.PYLONS,98); ObjS57.put(Obj.RADLNE,99); ObjS57.put(Obj.RADRNG,100);
     47                ObjS57.put(Obj.RADRFL,101); ObjS57.put(Obj.RADSTA,102); ObjS57.put(Obj.RTPBCN,103);     ObjS57.put(Obj.RDOCAL,104); ObjS57.put(Obj.RDOSTA,105);
     48                ObjS57.put(Obj.RAILWY,106);     ObjS57.put(Obj.RAPIDS,107);     ObjS57.put(Obj.RCRTCL,108);     ObjS57.put(Obj.RECTRC,109); ObjS57.put(Obj.RCTLPT,110);
     49                ObjS57.put(Obj.RSCSTA,111);     ObjS57.put(Obj.RESARE,112);     ObjS57.put(Obj.RETRFL,113);     ObjS57.put(Obj.RIVERS,114); ObjS57.put(Obj.RIVBNK,115);
     50                ObjS57.put(Obj.ROADWY,116);     ObjS57.put(Obj.RUNWAY,117);     ObjS57.put(Obj.SNDWAV,118);     ObjS57.put(Obj.SEAARE,119); ObjS57.put(Obj.SPLARE,120);
     51                ObjS57.put(Obj.SBDARE,121);     ObjS57.put(Obj.SLCONS,122);     ObjS57.put(Obj.SISTAT,123);     ObjS57.put(Obj.SISTAW,124); ObjS57.put(Obj.SILTNK,125);
     52                ObjS57.put(Obj.SLOTOP,126);     ObjS57.put(Obj.SLOGRD,127);     ObjS57.put(Obj.SMCFAC,128);     ObjS57.put(Obj.SOUNDG,129); ObjS57.put(Obj.SPRING,130);
     53                ObjS57.put(Obj.SQUARE,131);     ObjS57.put(Obj.STSLNE,132);     ObjS57.put(Obj.SUBTLN,133);     ObjS57.put(Obj.SWPARE,134); ObjS57.put(Obj.TESARE,135);
     54                ObjS57.put(Obj.TS_PRH,136);     ObjS57.put(Obj.TS_PNH,137); ObjS57.put(Obj.TS_PAD,138); ObjS57.put(Obj.TS_TIS,139); ObjS57.put(Obj.T_HMON,140);
     55                ObjS57.put(Obj.T_NHMN,141);     ObjS57.put(Obj.T_TIMS,142);     ObjS57.put(Obj.TIDEWY,143);     ObjS57.put(Obj.TOPMAR,144); ObjS57.put(Obj.TSELNE,145);
     56                ObjS57.put(Obj.TSSBND,146);     ObjS57.put(Obj.TSSCRS,147);     ObjS57.put(Obj.TSSLPT,148);     ObjS57.put(Obj.TSSRON,149); ObjS57.put(Obj.TSEZNE,150);
     57                ObjS57.put(Obj.TUNNEL,151);     ObjS57.put(Obj.TWRTPT,152);     ObjS57.put(Obj.UWTROC,153);     ObjS57.put(Obj.UNSARE,154); ObjS57.put(Obj.VEGATN,155);
     58                ObjS57.put(Obj.WATTUR,156);     ObjS57.put(Obj.WATFAL,157);     ObjS57.put(Obj.WEDKLP,158);     ObjS57.put(Obj.WRECKS,159); ObjS57.put(Obj.TS_FEB,160);
     59                ObjS57.put(Obj.MPAARE,199); ObjS57.put(Obj.C_AGGR,400); ObjS57.put(Obj.M_COVR,302);
    5960        }
    6061
    6162        private static final EnumMap<Obj, Integer> ObjIENC = new EnumMap<Obj, Integer>(Obj.class);
    6263        static {
    63                 ObjIENC.put(Obj.UNKOBJ, 0);     ObjIENC.put(Obj.ACHBRT, 17000); ObjIENC.put(Obj.ACHARE, 17001); ObjIENC.put(Obj.CANBNK, 17002); ObjIENC.put(Obj.DEPARE, 17003);
    64                 ObjIENC.put(Obj.DISMAR, 17004); ObjIENC.put(Obj.RESARE, 17005); ObjIENC.put(Obj.RIVBNK, 17006); ObjIENC.put(Obj.SISTAT, 17007); ObjIENC.put(Obj.SISTAW, 17008);
    65                 ObjIENC.put(Obj.TOPMAR, 17009); ObjIENC.put(Obj.BERTHS, 17010); ObjIENC.put(Obj.BRIDGE, 17011); ObjIENC.put(Obj.CBLOHD, 17012); ObjIENC.put(Obj.FERYRT, 17013);
    66                 ObjIENC.put(Obj.HRBARE, 17014); ObjIENC.put(Obj.HRBFAC, 17015); ObjIENC.put(Obj.LOKBSN, 17016); ObjIENC.put(Obj.RDOCAL, 17017); ObjIENC.put(Obj.CURENT, 17019);
    67                 ObjIENC.put(Obj.HULKES, 17020); ObjIENC.put(Obj.PONTON, 17021); ObjIENC.put(Obj.PIPOHD, 17024); ObjIENC.put(Obj.FLODOC, 17025); ObjIENC.put(Obj.CHKPNT, 17027);
    68                 ObjIENC.put(Obj.BCNLAT, 17028); ObjIENC.put(Obj.BOYLAT, 17029); ObjIENC.put(Obj.CRANES, 17030); ObjIENC.put(Obj.GATCON, 17031); ObjIENC.put(Obj.SLCONS, 17032);
    69                 ObjIENC.put(Obj.UWTROC, 17033); ObjIENC.put(Obj.CONVYR, 17034); ObjIENC.put(Obj.NOTMRK, 17050); ObjIENC.put(Obj.WTWAXS, 17051); ObjIENC.put(Obj.WTWPRF, 17052);
    70                 ObjIENC.put(Obj.BRGARE, 17053); ObjIENC.put(Obj.BUNSTA, 17054); ObjIENC.put(Obj.COMARE, 17055); ObjIENC.put(Obj.HRBBSN, 17056); ObjIENC.put(Obj.LOKARE, 17057);
    71                 ObjIENC.put(Obj.LKBSPT, 17058); ObjIENC.put(Obj.PRTARE, 17059); ObjIENC.put(Obj.BCNWTW, 17060); ObjIENC.put(Obj.BOYWTW, 17061); ObjIENC.put(Obj.REFDMP, 17062);
    72                 ObjIENC.put(Obj.RTPLPT, 17063); ObjIENC.put(Obj.TERMNL, 17064); ObjIENC.put(Obj.TRNBSN, 17065); ObjIENC.put(Obj.WTWARE, 17066); ObjIENC.put(Obj.WTWGAG, 17067);
    73                 ObjIENC.put(Obj.TISDGE, 17068); ObjIENC.put(Obj.VEHTRF, 17069); ObjIENC.put(Obj.EXCNST, 17070); ObjIENC.put(Obj.LG_SDM, 18001); ObjIENC.put(Obj.LG_VSP, 18002);
     64                ObjIENC.put(Obj.UNKOBJ, 0);
     65                ObjIENC.put(Obj.ACHBRT, 17000); ObjIENC.put(Obj.ACHARE, 17001); ObjIENC.put(Obj.CANBNK, 17002); ObjIENC.put(Obj.DEPARE, 17003); ObjIENC.put(Obj.DISMAR, 17004);
     66                ObjIENC.put(Obj.RESARE, 17005); ObjIENC.put(Obj.RIVBNK, 17006); ObjIENC.put(Obj.SISTAT, 17007); ObjIENC.put(Obj.SISTAW, 17008); ObjIENC.put(Obj.TOPMAR, 17009);
     67                ObjIENC.put(Obj.BERTHS, 17010); ObjIENC.put(Obj.BRIDGE, 17011); ObjIENC.put(Obj.CBLOHD, 17012); ObjIENC.put(Obj.FERYRT, 17013); ObjIENC.put(Obj.HRBARE, 17014);
     68                ObjIENC.put(Obj.HRBFAC, 17015); ObjIENC.put(Obj.LOKBSN, 17016); ObjIENC.put(Obj.RDOCAL, 17017); ObjIENC.put(Obj.CURENT, 17019); ObjIENC.put(Obj.HULKES, 17020);
     69                ObjIENC.put(Obj.PONTON, 17021); ObjIENC.put(Obj.PIPOHD, 17024); ObjIENC.put(Obj.FLODOC, 17025); ObjIENC.put(Obj.CHKPNT, 17027); ObjIENC.put(Obj.BCNLAT, 17028);
     70                ObjIENC.put(Obj.BOYLAT, 17029); ObjIENC.put(Obj.CRANES, 17030); ObjIENC.put(Obj.GATCON, 17031); ObjIENC.put(Obj.SLCONS, 17032); ObjIENC.put(Obj.UWTROC, 17033);
     71                ObjIENC.put(Obj.CONVYR, 17034); ObjIENC.put(Obj.NOTMRK, 17050); ObjIENC.put(Obj.WTWAXS, 17051); ObjIENC.put(Obj.WTWPRF, 17052); ObjIENC.put(Obj.BRGARE, 17053);
     72                ObjIENC.put(Obj.BUNSTA, 17054); ObjIENC.put(Obj.COMARE, 17055); ObjIENC.put(Obj.HRBBSN, 17056); ObjIENC.put(Obj.LOKARE, 17057); ObjIENC.put(Obj.LKBSPT, 17058);
     73                ObjIENC.put(Obj.PRTARE, 17059); ObjIENC.put(Obj.BCNWTW, 17060); ObjIENC.put(Obj.BOYWTW, 17061); ObjIENC.put(Obj.REFDMP, 17062); ObjIENC.put(Obj.RTPLPT, 17063);
     74                ObjIENC.put(Obj.TERMNL, 17064); ObjIENC.put(Obj.TRNBSN, 17065); ObjIENC.put(Obj.WTWARE, 17066); ObjIENC.put(Obj.WTWGAG, 17067); ObjIENC.put(Obj.TISDGE, 17068);
     75                ObjIENC.put(Obj.VEHTRF, 17069); ObjIENC.put(Obj.EXCNST, 17070); ObjIENC.put(Obj.LG_SDM, 18001); ObjIENC.put(Obj.LG_VSP, 18002);
    7476        }
    7577
     
    134136                ObjStr.put(Obj.TRNBSN, "turning_basin"); ObjStr.put(Obj.WTWARE, "waterway_area"); ObjStr.put(Obj.WTWGAG, "waterway_gauge"); ObjStr.put(Obj.TISDGE, "time_schedule");
    135137                ObjStr.put(Obj.VEHTRF, "vehicle_transfer"); ObjStr.put(Obj.EXCNST, "exceptional_structure"); ObjStr.put(Obj.LG_SDM, ""); ObjStr.put(Obj.LG_VSP, "");
    136                 ObjStr.put(Obj.MPAARE, "protected_area"); ObjStr.put(Obj.LITMAJ, "light_major"); ObjStr.put(Obj.LITMIN, "light_minor");
     138                ObjStr.put(Obj.MPAARE, "protected_area"); ObjStr.put(Obj.LITMAJ, "light_major"); ObjStr.put(Obj.LITMIN, "light_minor"); ObjStr.put(Obj.M_COVR, "coverage");
    137139        }
    138140       
     
    145147        }
    146148       
    147         public static Obj decodeType(Integer objl) { // Convert S57 feature code to OSeaM object enumeration
    148                 Obj obj = S57Obj.get(objl);
     149        public static Obj decodeType(long objl) { // Convert S57 feature code to OSeaM object enumeration
     150                Obj obj = S57Obj.get((int)objl);
    149151                return (obj != null) ? obj : Obj.UNKOBJ;
    150152        }
    151153
    152         public static Integer encodeType(Obj type) { // Convert OSM object enumeration to S57 feature code
     154        public static long encodeType(Obj type) { // Convert OSM object enumeration to S57 feature code
    153155                if (ObjS57.containsKey(type))
    154156                        return ObjS57.get(type);
  • applications/editors/josm/plugins/smed2/src/s57/S57val.java

    r30171 r30215  
    2121                Conv conv;
    2222                EnumMap<?, ?> map;
    23                 S57key(Conv c, EnumMap<?, ?> m) {
     23                S57key(Conv c, EnumMap<?, S57enum> m) {
    2424                        conv = c; map = m;
    2525                }
     
    225225        private static final EnumMap<CatLAM, S57enum> Catlam = new EnumMap<CatLAM, S57enum>(CatLAM.class); static { Catlam.put(CatLAM.LAM_UNKN, new S57enum(0, ""));
    226226                Catlam.put(CatLAM.LAM_PORT, new S57enum(1, "port")); Catlam.put(CatLAM.LAM_STBD, new S57enum(2, "starboard")); Catlam.put(CatLAM.LAM_PCST, new S57enum(3, "preferred_channel_starboard"));
    227                 Catlam.put(CatLAM.LAM_PCPT, new S57enum(4, "preferred_channel_port")); Catlam.put(CatLAM.LAM_WWLT, new S57enum(5, "waterway_left")); Catlam.put(CatLAM.LAM_WWRT, new S57enum(6, "waterway_right"));
    228                 Catlam.put(CatLAM.LAM_CHLT, new S57enum(7, "channel_left")); Catlam.put(CatLAM.LAM_CHRT, new S57enum(8, "channel_right")); Catlam.put(CatLAM.LAM_WWSN, new S57enum(9, "waterway_separation"));
     227                Catlam.put(CatLAM.LAM_PCPT, new S57enum(4, "preferred_channel_port")); Catlam.put(CatLAM.LAM_WWRT, new S57enum(5, "waterway_right")); Catlam.put(CatLAM.LAM_WWLT, new S57enum(6, "waterway_left"));
     228                Catlam.put(CatLAM.LAM_CHRT, new S57enum(7, "channel_right")); Catlam.put(CatLAM.LAM_CHLT, new S57enum(8, "channel_left")); Catlam.put(CatLAM.LAM_WWSN, new S57enum(9, "waterway_separation"));
    229229                Catlam.put(CatLAM.LAM_CHSN, new S57enum(10, "channel_separation")); Catlam.put(CatLAM.LAM_CHRB, new S57enum(11, "channel_right_bank")); Catlam.put(CatLAM.LAM_CHLB, new S57enum(12, "channel_left_bank"));
    230230                Catlam.put(CatLAM.LAM_CRRT, new S57enum(13, "crossover_right")); Catlam.put(CatLAM.LAM_CRLT, new S57enum(14, "crossover_left")); Catlam.put(CatLAM.LAM_DRLT, new S57enum(15, "danger_right"));
     
    997997                Shptyp.put(ShpTYP.TYP_BCAR, new S57enum(10, "bulk_carrier")); Shptyp.put(ShpTYP.TYP_SPLN, new S57enum(11, "seaplane")); Shptyp.put(ShpTYP.TYP_TUGB, new S57enum(12, "tugboat"));
    998998                Shptyp.put(ShpTYP.TYP_PSGR, new S57enum(13, "passenger")); Shptyp.put(ShpTYP.TYP_FERY, new S57enum(14, "ferry")); Shptyp.put(ShpTYP.TYP_BOAT, new S57enum(15, "boat"));
     999        }
     1000
     1001        public enum CatCVR { CVR_UNKN, CVR_COVR, CVR_NCVR }
     1002        private static final EnumMap<CatCVR, S57enum> Catcvr = new EnumMap<CatCVR, S57enum>(CatCVR.class); static { Catcvr.put(CatCVR.CVR_UNKN, new S57enum(0, ""));
     1003        Catcvr.put(CatCVR.CVR_COVR, new S57enum(1, "coverage")); Catcvr.put(CatCVR.CVR_NCVR, new S57enum(2, "no_coverage"));
    9991004        }
    10001005
     
    10891094                keys.put(Att.LC_LG2, new S57key(Conv.F, null)); keys.put(Att.LC_DR1, new S57key(Conv.F, null)); keys.put(Att.LC_DR2, new S57key(Conv.F, null));
    10901095                keys.put(Att.LC_SP1, new S57key(Conv.F, null)); keys.put(Att.LC_SP2, new S57key(Conv.F, null)); keys.put(Att.LC_WD1, new S57key(Conv.F, null));
    1091                 keys.put(Att.LC_WD2, new S57key(Conv.F, null)); keys.put(Att.LITRAD, new S57key(Conv.A, null));
     1096                keys.put(Att.LC_WD2, new S57key(Conv.F, null)); keys.put(Att.LITRAD, new S57key(Conv.A, null)); keys.put(Att.CATCVR, new S57key(Conv.E, Catcvr));
    10921097        }
    10931098       
     
    11141119        }
    11151120       
    1116         public static String decodeValue(String val, Integer attl) {          // Convert S57 attribute value string to OSeaM attribute value string
    1117                 Att att = S57att.decodeAttribute(attl);
    1118                 switch (keys.get(att).conv) {
     1121        public static Enum<?> s57Enum(String val, Att att) { // Convert S57 attribute value string to OSeaM enumeration
     1122                EnumMap<?, ?> map = keys.get(att).map;
     1123                Enum<?> unkn = null;
     1124                int i = 0;
     1125                try {
     1126                        i = Integer.parseInt(val);
     1127                } catch (Exception e) {
     1128                        return unkn;
     1129                }
     1130                if (map != null) {
     1131                        for (Object item : map.keySet()) {
     1132                                if (unkn == null)
     1133                                        unkn = (Enum<?>) item;
     1134                                if (((S57enum) map.get(item)).atvl.equals(i))
     1135                                        return (Enum<?>) item;
     1136                        }
     1137                }
     1138                return unkn;
     1139        }
     1140
     1141        public static AttVal<?> decodeValue(String val, Att att) {          // Convert S57 attribute value string to OSeaM attribute value
     1142                Conv conv = keys.get(att).conv;
     1143                switch (conv) {
    11191144                case A:
    11201145                case S:
    1121                         return val;
     1146                        return new AttVal<String>(att, conv, val);
    11221147                case E:
     1148                        return new AttVal<Enum<?>>(att, Conv.E, s57Enum(val, att));
    11231149                case L:
    1124                         return (String)(keys.get(att).map).get(val);
     1150                        ArrayList<Enum<?>> list = new ArrayList<Enum<?>>();
     1151                        for (String item : val.split(",")) {
     1152                                list.add(s57Enum(item, att));
     1153                        }
     1154                        return new AttVal<ArrayList<?>>(att, Conv.L, list);
    11251155                case I:
    1126                         return (Integer.valueOf(val.trim())).toString();
     1156                        try {
     1157                                return new AttVal<Long>(att, Conv.I, Long.parseLong(val));
     1158                        } catch (Exception e) {
     1159                                break;
     1160                        }
    11271161                case F:
    1128                         return (Float.valueOf(val.trim())).toString();
     1162                        try {
     1163                                return new AttVal<Double>(att, Conv.F, Double.parseDouble(val));
     1164                        } catch (Exception e) {
     1165                                break;
     1166                        }
    11291167                }
    1130                 return "";
     1168                return null;
    11311169        }
    11321170
     
    11471185                        return (String)attval.val;
    11481186                case E:
    1149                         return (String)((EnumMap<?, ?>)attval.val).get(attval.att);
     1187                        EnumMap<?,?> map = keys.get(attval.att).map;
     1188                        return ((S57enum)map.get(attval.val)).val;
    11501189                case L:
    11511190                        String str = "";
     1191                        map = keys.get(attval.att).map;
    11521192                        for (Object item : (ArrayList<?>)attval.val) {
    11531193                                if (!str.isEmpty()) str += ";";
    1154                                 str += keys.get(attval.att).map.get(item);
     1194                                str += ((S57enum)map.get(item)).val;
    11551195                        }
    11561196                        return str;
    11571197                case I:
    1158                         return ((Integer)attval.val).toString();
     1198                        return ((Long)attval.val).toString();
    11591199                case F:
    1160                         return ((Float)attval.val).toString();
     1200                        return ((Double)attval.val).toString();
    11611201                }
    11621202                return "";
    11631203        }
    11641204
    1165         public static Enum<?> enumValue(String val, Att att) { // Convert OSeaM attribute value string to OSeaM enumeration
     1205        public static Enum<?> osmEnum(String val, Att att) { // Convert OSeaM attribute value string to OSeaM enumeration
    11661206                EnumMap<?, ?> map = keys.get(att).map;
    11671207                Enum<?> unkn = null;
     
    11831223                        return new AttVal<String>(att, Conv.S, val);
    11841224                case E:
    1185                         return new AttVal<Enum<?>>(att, Conv.E, enumValue(val, att));
     1225                        return new AttVal<Enum<?>>(att, Conv.E, osmEnum(val, att));
    11861226                case L:
    11871227                        ArrayList<Enum<?>> list = new ArrayList<Enum<?>>();
    11881228                        for (String item : val.split(";")) {
    1189                                 list.add(enumValue(item, att));
     1229                                list.add(osmEnum(item, att));
    11901230                        }
    11911231                        return new AttVal<ArrayList<?>>(att, Conv.L, list);
    11921232                case I:
    11931233                        try {
    1194                                 long i = Long.parseLong(val);
    1195                                 return new AttVal<Long>(att, Conv.I, i);
     1234                                return new AttVal<Long>(att, Conv.I, Long.parseLong(val));
    11961235                        } catch (Exception e) {
    11971236                                break;
     
    11991238                case F:
    12001239                        try {
    1201                                 double f = Double.parseDouble(val);
    1202                                 return new AttVal<Double>(att, Conv.F, f);
     1240                                return new AttVal<Double>(att, Conv.F, Double.parseDouble(val));
    12031241                        } catch (Exception e) {
    12041242                                break;
  • applications/editors/josm/plugins/smed2/src/symbols/Areas.java

    r30119 r30215  
    1919        public static final Symbol Plane = new Symbol();
    2020        static {
    21                 Plane.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-60,-60,120,120)));
     21                Plane.add(new Instr(Form.BBOX, new Rectangle2D.Double(-60,-60,120,120)));
    2222                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);
    2323                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(Prim.PGON, p));
     24                Plane.add(new Instr(Form.PGON, p));
    2525        }
    2626        public static final Symbol Cable = new Symbol();
    2727        static {
    28                 Cable.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-60,60,60)));
    29                 Cable.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    30                 Cable.add(new Instr(Prim.FILL, new Color(0xc480ff)));
     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)));
    3131                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(Prim.PLIN, p));
     32                Cable.add(new Instr(Form.PLIN, p));
    3333        }
    3434        public static final Symbol CableDot = new Symbol();
    3535        static {
    36                 CableDot.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-60,60,60)));
    37                 CableDot.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-10,-40,20,20)));
     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)));
    3838        }
    3939        public static final Symbol CableDash = new Symbol();
    4040        static {
    41                 CableDash.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-60,60,60)));
    42                 CableDash.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    43                 CableDash.add(new Instr(Prim.LINE, new Line2D.Double(0,-15,0,-45)));
     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)));
    4444        }
    4545        public static final Symbol CableFlash = new Symbol();
    4646        static {
    47                 CableFlash.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-60,60,60)));
     47                CableFlash.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-60,60,60)));
    4848                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(Prim.PGON, p));
     49                CableFlash.add(new Instr(Form.PGON, p));
    5050        }
    5151        public static final Symbol LaneArrow = new Symbol();
    5252        static {
    53                 LaneArrow.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-20,-240,40,240)));
    54                 LaneArrow.add(new Instr(Prim.STRK, new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    55                 LaneArrow.add(new Instr(Prim.FILL, new Color(0x80c480ff, true)));
     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, new Color(0x80c480ff, true)));
    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();
    58                 LaneArrow.add(new Instr(Prim.PLIN, p));
     58                LaneArrow.add(new Instr(Form.PLIN, p));
    5959        }
    6060        public static final Symbol LineAnchor = new Symbol();
    6161        static {
    62                 LineAnchor.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-60,60,90)));
    63                 LineAnchor.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.5, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(-90.0))))));
     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))))));
    6464        }
    6565        public static final Symbol LinePlane = new Symbol();
    6666        static {
    67                 LinePlane.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-60,60,90)));
    68                 LinePlane.add(new Instr(Prim.FILL, new Color(0xc480ff)));
    69                 LinePlane.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Areas.Plane, 0.5, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(-90.0))))));
     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))))));
    7070        }
    7171        public static final Symbol MarineFarm = new Symbol();
    7272        static {
    73                 MarineFarm.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     73                MarineFarm.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    7474                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);
    7575                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);
    7676                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(Prim.PLIN, p));
    78                 MarineFarm.add(new Instr(Prim.RSHP, new Ellipse2D.Double(9,-2,4,4)));
     77                MarineFarm.add(new Instr(Form.PLIN, p));
     78                MarineFarm.add(new Instr(Form.RSHP, new Ellipse2D.Double(9,-2,4,4)));
    7979        }
    8080        public static final Symbol NoWake = new Symbol();
    8181        static {
    82                 NoWake.add(new Instr(Prim.STRK, new BasicStroke(12, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    83                 NoWake.add(new Instr(Prim.FILL, new Color(0xa30075)));
     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)));
    8484                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(Prim.PLIN, p));
    86                 NoWake.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    87                 NoWake.add(new Instr(Prim.LINE, new Line2D.Double(-60,60,60,-60)));
    88                 NoWake.add(new Instr(Prim.LINE, new Line2D.Double(-60,-60,60,60)));
     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)));
    8989        }
    9090        public static final Symbol Pipeline = new Symbol();
    9191        static {
    92                 Pipeline.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-15,-60,30,60)));
    93                 Pipeline.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    94                 Pipeline.add(new Instr(Prim.FILL, new Color(0xc480ff)));
    95                 Pipeline.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-50)));
    96                 Pipeline.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-10,-60,20,20)));
     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)));
    9797        }
    9898        public static final Symbol Restricted = new Symbol();
    9999        static {
    100                 Restricted.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-15,-30,30,30)));
    101                 Restricted.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    102                 Restricted.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-30)));
    103                 Restricted.add(new Instr(Prim.LINE, new Line2D.Double(0,-15,17,-15)));
     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)));
    104104        }
    105105        public static final Symbol Rock = new Symbol();
    106106        static {
    107                 Rock.add(new Instr(Prim.FILL, new Color(0x80c0ff)));
    108                 Rock.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-30,-30,60,60)));
    109                 Rock.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5,5}, 0)));
    110                 Rock.add(new Instr(Prim.FILL, Color.black));
    111                 Rock.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-30,-30,60,60)));
    112                 Rock.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    113                 Rock.add(new Instr(Prim.LINE, new Line2D.Double(-20,0,20,0)));
    114                 Rock.add(new Instr(Prim.LINE, new Line2D.Double(0,-20,0,20)));
     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)));
    115115        }
    116116        public static final Symbol RockA = new Symbol();
    117117        static {
    118                 RockA.add(new Instr(Prim.FILL, new Color(0x80c0ff)));
    119                 RockA.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-30,-30,60,60)));
    120                 RockA.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5,5}, 0)));
    121                 RockA.add(new Instr(Prim.FILL, Color.black));
    122                 RockA.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-30,-30,60,60)));
    123                 RockA.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    124                 RockA.add(new Instr(Prim.LINE, new Line2D.Double(-20,0,20,0)));
    125                 RockA.add(new Instr(Prim.LINE, new Line2D.Double(0,-20,0,20)));
    126                 RockA.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-17,-17,8,8)));
    127                 RockA.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-17,9,8,8)));
    128                 RockA.add(new Instr(Prim.RSHP, new Ellipse2D.Double(9,-17,8,8)));
    129                 RockA.add(new Instr(Prim.RSHP, new Ellipse2D.Double(9,9,8,8)));
     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)));
    130130        }
    131131        public static final Symbol RockC = new Symbol();
    132132        static {
    133                 RockC.add(new Instr(Prim.FILL, new Color(0x80c0ff)));
    134                 RockC.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-30,-30,60,60)));
    135                 RockC.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5,5}, 0)));
    136                 RockC.add(new Instr(Prim.FILL, Color.black));
    137                 RockC.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-30,-30,60,60)));
    138                 RockC.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    139                 RockC.add(new Instr(Prim.LINE, new Line2D.Double(-20,0,20,0)));
    140                 RockC.add(new Instr(Prim.LINE, new Line2D.Double(-10,17.3,10,-17.3)));
    141                 RockC.add(new Instr(Prim.LINE, new Line2D.Double(10,17.3,-10,-17.3)));
     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)));
    142142        }
    143143        public static final Symbol Seaplane = new Symbol();
    144144        static {
    145                 Seaplane.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-60,-60,120,120)));
    146                 Seaplane.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    147                 Seaplane.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-58,-58,116,116)));
    148                 Seaplane.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Areas.Plane, 1.0, 0, 0, null, null)));
     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)));
    149149        }
    150150        public static final Symbol WindFarm = new Symbol();
    151151        static {
    152                 WindFarm.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    153                 WindFarm.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-100,-100,200,200)));
    154                 WindFarm.add(new Instr(Prim.LINE, new Line2D.Double(-35,50,35,50)));
    155                 WindFarm.add(new Instr(Prim.LINE, new Line2D.Double(0,50,0,-27.5)));
    156                 WindFarm.add(new Instr(Prim.LINE, new Line2D.Double(0,-27.5,30,-27.5)));
    157                 WindFarm.add(new Instr(Prim.LINE, new Line2D.Double(0,-27.5,-13.8,-3.8)));
    158                 WindFarm.add(new Instr(Prim.LINE, new Line2D.Double(0,-27.5,-13.8,-53.6)));
     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)));
    159159        }
    160160        public static final Symbol WreckD = new Symbol();
    161161        static {
    162                 WreckD.add(new Instr(Prim.FILL, new Color(0x80c0ff)));
    163                 WreckD.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-50,-40,100,80)));
    164                 WreckD.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[]{5,5}, 0)));
    165                 WreckD.add(new Instr(Prim.FILL, Color.black));
    166                 WreckD.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-50,-40,100,80)));
    167                 WreckD.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    168                 WreckD.add(new Instr(Prim.LINE, new Line2D.Double(-40,0,40,0)));
    169                 WreckD.add(new Instr(Prim.LINE, new Line2D.Double(0,-30,0,30)));
    170                 WreckD.add(new Instr(Prim.LINE, new Line2D.Double(-20,-15,-20,15)));
    171                 WreckD.add(new Instr(Prim.LINE, new Line2D.Double(20,-15,20,15)));
     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)));
    172172        }
    173173        public static final Symbol WreckND = new Symbol();
    174174        static {
    175                 WreckND.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    176                 WreckND.add(new Instr(Prim.LINE, new Line2D.Double(-40,0,40,0)));
    177                 WreckND.add(new Instr(Prim.LINE, new Line2D.Double(0,-30,0,30)));
    178                 WreckND.add(new Instr(Prim.LINE, new Line2D.Double(-20,-15,-20,15)));
    179                 WreckND.add(new Instr(Prim.LINE, new Line2D.Double(20,-15,20,15)));
     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)));
    180180        }
    181181        public static final Symbol WreckS = new Symbol();
    182182        static {
    183                 WreckS.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    184                 WreckS.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-6,-6,12,12)));
    185                 WreckS.add(new Instr(Prim.LINE, new Line2D.Double(-40,0,-6,0)));
    186                 WreckS.add(new Instr(Prim.LINE, new Line2D.Double(40,0,6,0)));
     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)));
    187187                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);
    188188                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(Prim.PGON, p));
     189                WreckS.add(new Instr(Form.PGON, p));
    190190        }
    191191        public static final BufferedImage Sandwaves = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);
  • applications/editors/josm/plugins/smed2/src/symbols/Beacons.java

    r30033 r30215  
    2525                Symbol colours = new Symbol();
    2626                Path2D.Double p = new Path2D.Double(); p.moveTo(-6.0,-8.5); p.lineTo(-6.0,-70.0); p.lineTo(6.0,-70.0); p.lineTo(6.0,-8.5); p.curveTo(6.0,-10.0,-6.0,-10.0,-6.0,-8.5); p.closePath();
    27                 colours.add(new Instr(Prim.P1, p));
     27                colours.add(new Instr(Form.P1, p));
    2828                p = new Path2D.Double(); p.moveTo(-6.0,-8.5); p.lineTo(-6.0,-40.0); p.lineTo(6.0,-40.0); p.lineTo(6.0,-8.5); p.curveTo(6.0,-10.0,-6.0,-10.0,-6.0,-8.5); p.closePath();
    29     colours.add(new Instr(Prim.H2, p));
     29    colours.add(new Instr(Form.H2, p));
    3030                p = new Path2D.Double(); p.moveTo(-6.0,-30.0); p.lineTo(-6.0,-50.0); p.lineTo(6.0,-50.0); p.lineTo(6.0,-30.0); p.closePath();
    31     colours.add(new Instr(Prim.H3, p));
     31    colours.add(new Instr(Form.H3, p));
    3232                p = new Path2D.Double(); p.moveTo(-6.0,-40.0); p.lineTo(-6.0,-55.0); p.lineTo(6.0,-55.0); p.lineTo(6.0,-40.0); p.closePath();
    33     colours.add(new Instr(Prim.H4, p));
     33    colours.add(new Instr(Form.H4, p));
    3434                p = new Path2D.Double(); p.moveTo(-6.0,-25.0); p.lineTo(-6.0,-40.0); p.lineTo(6.0,-40.0); p.lineTo(6.0,-25.0); p.closePath();
    35     colours.add(new Instr(Prim.H5, p));
     35    colours.add(new Instr(Form.H5, p));
    3636                p = new Path2D.Double(); p.moveTo(0.0,-70.0); p.lineTo(6.0,-70.0); p.lineTo(6.0,-8.5); p.quadTo(3.0,-9.3,0.0,-10.0); p.closePath();
    37     colours.add(new Instr(Prim.V2, p));
    38     Beacon.add(new Instr(Prim.COLR, colours));
    39     Beacon.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    40     Beacon.add(new Instr(Prim.FILL, Color.black));
    41     Beacon.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    42     Beacon.add(new Instr(Prim.LINE, new Line2D.Double(-20,0,-10,0)));
    43     Beacon.add(new Instr(Prim.LINE, new Line2D.Double(10,0,20,0)));
     37    colours.add(new Instr(Form.V2, p));
     38    Beacon.add(new Instr(Form.COLR, colours));
     39    Beacon.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     40    Beacon.add(new Instr(Form.FILL, Color.black));
     41    Beacon.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     42    Beacon.add(new Instr(Form.LINE, new Line2D.Double(-20,0,-10,0)));
     43    Beacon.add(new Instr(Form.LINE, new Line2D.Double(10,0,20,0)));
    4444                p = new Path2D.Double(); p.moveTo(-6.0,-8.5); p.lineTo(-6.0,-70.0); p.lineTo(6.0,-70.0); p.lineTo(6.0,-8.5);
    45                 Beacon.add(new Instr(Prim.PLIN, p));
     45                Beacon.add(new Instr(Form.PLIN, p));
    4646        }
    4747        public static final Symbol Cairn = new Symbol();
    4848        static {
    49                 Cairn.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    50                 Cairn.add(new Instr(Prim.FILL, Color.black));
    51                 Cairn.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    52                 Cairn.add(new Instr(Prim.LINE, new Line2D.Double(-40,0,-10,0)));
    53                 Cairn.add(new Instr(Prim.LINE, new Line2D.Double(10,0,40,0)));
    54                 Cairn.add(new Instr(Prim.ELPS, new Ellipse2D.Double(3,-40,40,40)));
    55                 Cairn.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-43,-40,40,40)));
    56                 Cairn.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-18,-70,36,36)));
     49                Cairn.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     50                Cairn.add(new Instr(Form.FILL, Color.black));
     51                Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     52                Cairn.add(new Instr(Form.LINE, new Line2D.Double(-40,0,-10,0)));
     53                Cairn.add(new Instr(Form.LINE, new Line2D.Double(10,0,40,0)));
     54                Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(3,-40,40,40)));
     55                Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(-43,-40,40,40)));
     56                Cairn.add(new Instr(Form.ELPS, new Ellipse2D.Double(-18,-70,36,36)));
    5757        }
    5858        public static final Symbol FogSignal = new Symbol();
    5959        static {
    60                 FogSignal.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    61                 FogSignal.add(new Instr(Prim.FILL, Color.black));
    62                 FogSignal.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    63                 FogSignal.add(new Instr(Prim.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    64                 FogSignal.add(new Instr(Prim.FILL, new Color(0xd400d4)));
    65                 FogSignal.add(new Instr(Prim.EARC, new Arc2D.Double(-120.0,-120.0,240.0,240.0,190.0,50.0,Arc2D.OPEN)));
    66                 FogSignal.add(new Instr(Prim.EARC, new Arc2D.Double(-92.5,-92.5,185.0,185.0,190.0,50.0,Arc2D.OPEN)));
    67                 FogSignal.add(new Instr(Prim.EARC, new Arc2D.Double(-65.0,-65.0,130.0,130.0,190.0,50.0,Arc2D.OPEN)));
     60                FogSignal.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     61                FogSignal.add(new Instr(Form.FILL, Color.black));
     62                FogSignal.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     63                FogSignal.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     64                FogSignal.add(new Instr(Form.FILL, new Color(0xd400d4)));
     65                FogSignal.add(new Instr(Form.EARC, new Arc2D.Double(-120.0,-120.0,240.0,240.0,190.0,50.0,Arc2D.OPEN)));
     66                FogSignal.add(new Instr(Form.EARC, new Arc2D.Double(-92.5,-92.5,185.0,185.0,190.0,50.0,Arc2D.OPEN)));
     67                FogSignal.add(new Instr(Form.EARC, new Arc2D.Double(-65.0,-65.0,130.0,130.0,190.0,50.0,Arc2D.OPEN)));
    6868        }
    6969        public static final Symbol LightFlare = new Symbol();
    7070        static {
    71                 LightFlare.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-3,-3,6,6)));
     71                LightFlare.add(new Instr(Form.RSHP, new Ellipse2D.Double(-3,-3,6,6)));
    7272                Path2D.Double p = new Path2D.Double();
    7373                p.moveTo(0.0,-25.0); p.lineTo(15.0,-95.0); p.curveTo(20.0,-123.0,-20.0,-123.0,-15.0,-95.0);
    7474                p.closePath();
    75                 LightFlare.add(new Instr(Prim.PGON, p));
     75                LightFlare.add(new Instr(Form.PGON, p));
    7676        }
    7777        public static final Symbol LightMajor = new Symbol();
    7878        static {
    79                 LightMajor.add(new Instr(Prim.FILL, Color.black));
     79                LightMajor.add(new Instr(Form.FILL, Color.black));
    8080                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_NON_ZERO);
    8181                p.moveTo(0.0,-7.0); p.curveTo(-9.3,-6.5,-9.3,6.5,0.0,7.0); p.curveTo(9.3,6.5,9.3,-6.5,0.0,-7.0); p.closePath();
    8282                p.moveTo(0.0,-35.5); p.lineTo(8.0,-11.2); p.lineTo(33.5,-11.2); p.lineTo(12.8,4.0);
    8383                p.lineTo(20.5,28.5); p.lineTo(0.0,13.0); p.lineTo(-20.5,28.5); p.lineTo(-12.8,4.0); p.lineTo(-33.5,-11.2); p.lineTo(-8.0,-11.2); p.closePath();
    84                 LightMajor.add(new Instr(Prim.PGON, p));
     84                LightMajor.add(new Instr(Form.PGON, p));
    8585        }
    8686        public static final Symbol LightMinor = new Symbol();
    8787        static {
    88                 LightMinor.add(new Instr(Prim.FILL, Color.black));
     88                LightMinor.add(new Instr(Form.FILL, Color.black));
    8989                Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-26.5); p.lineTo(6.0,-8.4); p.lineTo(25.1,-8.4); p.lineTo(9.6,3.0);
    9090                p.lineTo(15.4,21.4); p.lineTo(0.0,9.8); p.lineTo(-15.4,21.4); p.lineTo(-9.6,3.0); p.lineTo(-25.1,-8.4); p.lineTo(-6.0,-8.4); p.closePath();
    91                 LightMinor.add(new Instr(Prim.PGON, p));
     91                LightMinor.add(new Instr(Form.PGON, p));
    9292        }
    9393        public static final Symbol PerchPort = new Symbol();
    9494        static {
    95                 PerchPort.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    96                 PerchPort.add(new Instr(Prim.FILL, Color.black));
    97                 PerchPort.add(new Instr(Prim.LINE, new Line2D.Double(-10,0,10,0)));
    98                 PerchPort.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-40)));
    99                 PerchPort.add(new Instr(Prim.LINE, new Line2D.Double(25,-70,0,-40)));
    100                 PerchPort.add(new Instr(Prim.LINE, new Line2D.Double(-25,-70,0,-40)));
     95                PerchPort.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     96                PerchPort.add(new Instr(Form.FILL, Color.black));
     97                PerchPort.add(new Instr(Form.LINE, new Line2D.Double(-10,0,10,0)));
     98                PerchPort.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-40)));
     99                PerchPort.add(new Instr(Form.LINE, new Line2D.Double(25,-70,0,-40)));
     100                PerchPort.add(new Instr(Form.LINE, new Line2D.Double(-25,-70,0,-40)));
    101101        }
    102102        public static final Symbol PerchStarboard = new Symbol();
    103103        static {
    104                 PerchStarboard.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    105                 PerchStarboard.add(new Instr(Prim.FILL, Color.black));
    106                 PerchStarboard.add(new Instr(Prim.LINE, new Line2D.Double(-10,0,10,0)));
    107                 PerchStarboard.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-70)));
    108                 PerchStarboard.add(new Instr(Prim.LINE, new Line2D.Double(25,-40,0,-68.7)));
    109                 PerchStarboard.add(new Instr(Prim.LINE, new Line2D.Double(-25,-40,0,-68.7)));
     104                PerchStarboard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     105                PerchStarboard.add(new Instr(Form.FILL, Color.black));
     106                PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(-10,0,10,0)));
     107                PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-70)));
     108                PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(25,-40,0,-68.7)));
     109                PerchStarboard.add(new Instr(Form.LINE, new Line2D.Double(-25,-40,0,-68.7)));
    110110        }
    111111        public static final Symbol RadarStation = new Symbol();
    112112        static {
    113                 RadarStation.add(new Instr(Prim.STRK, new BasicStroke(2.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    114                 RadarStation.add(new Instr(Prim.FILL, new Color(0xd400d4)));
    115                 RadarStation.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-125,-125,250,250)));
     113                RadarStation.add(new Instr(Form.STRK, new BasicStroke(2.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     114                RadarStation.add(new Instr(Form.FILL, new Color(0xd400d4)));
     115                RadarStation.add(new Instr(Form.ELPS, new Ellipse2D.Double(-125,-125,250,250)));
    116116        }
    117117        public static final Symbol Stake = new Symbol();
    118118        static {
    119                 Stake.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    120                 Stake.add(new Instr(Prim.FILL, Color.black));
    121                 Stake.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-70)));
     119                Stake.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     120                Stake.add(new Instr(Form.FILL, Color.black));
     121                Stake.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-70)));
    122122                Symbol colours = new Symbol();
    123123                Path2D.Double p = new Path2D.Double(); p.moveTo(-2.0,0.0); p.lineTo(-2.0,-70.0); p.lineTo(2.0,-70.0); p.lineTo(2.0,0.0); p.closePath();
    124                 colours.add(new Instr(Prim.P1, p));
     124                colours.add(new Instr(Form.P1, p));
    125125                p = new Path2D.Double(); p.moveTo(-2.0,0.0); p.lineTo(-2.0,-35.0); p.lineTo(2.0,-35.0); p.lineTo(2.0,0.0); p.closePath();
    126                 colours.add(new Instr(Prim.H2, p));
     126                colours.add(new Instr(Form.H2, p));
    127127                p = new Path2D.Double(); p.moveTo(-2.0,-23.3); p.lineTo(-2.0,-46.7); p.lineTo(2.0,-46.7); p.lineTo(2.0,-23.3); p.closePath();
    128                 colours.add(new Instr(Prim.H3, p));
     128                colours.add(new Instr(Form.H3, p));
    129129                p = new Path2D.Double(); p.moveTo(-2.0,-35.0); p.lineTo(-2.0,-52.5); p.lineTo(2.0,-52.5); p.lineTo(2.0,-35.0); p.closePath();
    130                 colours.add(new Instr(Prim.H4, p));
     130                colours.add(new Instr(Form.H4, p));
    131131                p = new Path2D.Double(); p.moveTo(-2.0,-17.5); p.lineTo(-2.0,-35.0); p.lineTo(2.0,-35.0); p.lineTo(2.0,-17.5); p.closePath();
    132                 colours.add(new Instr(Prim.H5, p));
    133                 Stake.add(new Instr(Prim.COLR, colours));
    134                 Stake.add(new Instr(Prim.FILL, Color.black));
    135                 Stake.add(new Instr(Prim.LINE, new Line2D.Double(-10,0,10,0)));
     132                colours.add(new Instr(Form.H5, p));
     133                Stake.add(new Instr(Form.COLR, colours));
     134                Stake.add(new Instr(Form.FILL, Color.black));
     135                Stake.add(new Instr(Form.LINE, new Line2D.Double(-10,0,10,0)));
    136136        }
    137137        public static final Symbol Tower = new Symbol();
     
    139139                Symbol colours = new Symbol();
    140140                Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(-20.0,-70.0); p.lineTo(20.0,-70.0); p.lineTo(25.0,0.0); p.lineTo(10.0,0.0); p.curveTo(10.0,-13.3,-10.0,-13.3,-10.0,0.0); p.closePath();
    141                 colours.add(new Instr(Prim.P1, p));
     141                colours.add(new Instr(Form.P1, p));
    142142                p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(-22.5,-35.0); p.lineTo(22.5,-35.0); p.lineTo(25.0,0.0); p.lineTo(10.0,0.0); p.curveTo(10.0,-13.3,-10.0,-13.3,-10.0,0.0); p.closePath();
    143     colours.add(new Instr(Prim.H2, p));
     143    colours.add(new Instr(Form.H2, p));
    144144                p = new Path2D.Double(); p.moveTo(-23.3,-23.3); p.lineTo(-21.7,-46.7); p.lineTo(21.7,-46.7); p.lineTo(23.3,-23.3); p.closePath();
    145     colours.add(new Instr(Prim.H3, p));
     145    colours.add(new Instr(Form.H3, p));
    146146                p = new Path2D.Double(); p.moveTo(-22.5,-35.0); p.lineTo(-21.0,-52.5); p.lineTo(21.0,-52.5); p.lineTo(22.5,-35.0); p.closePath();
    147     colours.add(new Instr(Prim.H4, p));
     147    colours.add(new Instr(Form.H4, p));
    148148                p = new Path2D.Double(); p.moveTo(-23.6,-17.5); p.lineTo(-22.5,-35.0); p.lineTo(22.5,-35.0); p.lineTo(23.6,-17.5); p.closePath();
    149     colours.add(new Instr(Prim.H5, p));
     149    colours.add(new Instr(Form.H5, p));
    150150                p = new Path2D.Double(); p.moveTo(0.0,-70.0); p.lineTo(20.0,-70.0); p.lineTo(25.0,0.0); p.lineTo(10.0,0.0); p.quadTo(10.0,-10.0,0.0,-10.0); p.closePath();
    151     colours.add(new Instr(Prim.V2, p));
    152     Tower.add(new Instr(Prim.COLR, colours));
    153     Tower.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    154     Tower.add(new Instr(Prim.FILL, Color.black));
    155     Tower.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    156     Tower.add(new Instr(Prim.LINE, new Line2D.Double(-35,0,-10,0)));
    157     Tower.add(new Instr(Prim.LINE, new Line2D.Double(10,0,35,0)));
     151    colours.add(new Instr(Form.V2, p));
     152    Tower.add(new Instr(Form.COLR, colours));
     153    Tower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     154    Tower.add(new Instr(Form.FILL, Color.black));
     155    Tower.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     156    Tower.add(new Instr(Form.LINE, new Line2D.Double(-35,0,-10,0)));
     157    Tower.add(new Instr(Form.LINE, new Line2D.Double(10,0,35,0)));
    158158                p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(-20.0,-70.0); p.lineTo(20.0,-70.0); p.lineTo(25.0,0.0);
    159                 Tower.add(new Instr(Prim.PLIN, p));
     159                Tower.add(new Instr(Form.PLIN, p));
    160160        }
    161161        public static final Symbol WithyPort = new Symbol();
    162162        static {
    163                 WithyPort.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    164                 WithyPort.add(new Instr(Prim.FILL, Color.black));
    165                 WithyPort.add(new Instr(Prim.LINE, new Line2D.Double(-10,0,10,0)));
    166                 WithyPort.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-70)));
    167                 WithyPort.add(new Instr(Prim.LINE, new Line2D.Double(20,-60,0,-50)));
    168                 WithyPort.add(new Instr(Prim.LINE, new Line2D.Double(-20,-60,0,-50)));
    169                 WithyPort.add(new Instr(Prim.LINE, new Line2D.Double(30,-35,0,-21)));
    170                 WithyPort.add(new Instr(Prim.LINE, new Line2D.Double(-30,-35,0,-21)));
     163                WithyPort.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     164                WithyPort.add(new Instr(Form.FILL, Color.black));
     165                WithyPort.add(new Instr(Form.LINE, new Line2D.Double(-10,0,10,0)));
     166                WithyPort.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-70)));
     167                WithyPort.add(new Instr(Form.LINE, new Line2D.Double(20,-60,0,-50)));
     168                WithyPort.add(new Instr(Form.LINE, new Line2D.Double(-20,-60,0,-50)));
     169                WithyPort.add(new Instr(Form.LINE, new Line2D.Double(30,-35,0,-21)));
     170                WithyPort.add(new Instr(Form.LINE, new Line2D.Double(-30,-35,0,-21)));
    171171        }
    172172        public static final Symbol WithyStarboard = new Symbol();
    173173        static {
    174                 WithyStarboard.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    175                 WithyStarboard.add(new Instr(Prim.FILL, Color.black));
    176                 WithyStarboard.add(new Instr(Prim.LINE, new Line2D.Double(-10,0,10,0)));
    177                 WithyStarboard.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-70)));
    178                 WithyStarboard.add(new Instr(Prim.LINE, new Line2D.Double(20,-50,0,-60)));
    179                 WithyStarboard.add(new Instr(Prim.LINE, new Line2D.Double(-20,-50,0,-60)));
    180                 WithyStarboard.add(new Instr(Prim.LINE, new Line2D.Double(30,-21,0,-35)));
    181                 WithyStarboard.add(new Instr(Prim.LINE, new Line2D.Double(-30,-21,0,-35)));
     174                WithyStarboard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     175                WithyStarboard.add(new Instr(Form.FILL, Color.black));
     176                WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(-10,0,10,0)));
     177                WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-70)));
     178                WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(20,-50,0,-60)));
     179                WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(-20,-50,0,-60)));
     180                WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(30,-21,0,-35)));
     181                WithyStarboard.add(new Instr(Form.LINE, new Line2D.Double(-30,-21,0,-35)));
    182182        }
    183183       
  • applications/editors/josm/plugins/smed2/src/symbols/Buoys.java

    r29198 r30215  
    2626                p.curveTo(-18.0,-40.0,12.0,-40.0,25.0,-36.0); p.curveTo(38.0,-32.0,43.0,-11.0,43.0,0);
    2727                p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    28                 colours.add(new Instr(Prim.P1, p));
    29                 Barrel.add(new Instr(Prim.COLR, colours));
    30     Barrel.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    31                 Barrel.add(new Instr(Prim.FILL, Color.black));
    32                 Barrel.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    33                 Barrel.add(new Instr(Prim.LINE, new Line2D.Double(-57,0,-10,0)));
    34                 Barrel.add(new Instr(Prim.LINE, new Line2D.Double(10,0,50,0)));
     28                colours.add(new Instr(Form.P1, p));
     29                Barrel.add(new Instr(Form.COLR, colours));
     30    Barrel.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     31                Barrel.add(new Instr(Form.FILL, Color.black));
     32                Barrel.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     33                Barrel.add(new Instr(Form.LINE, new Line2D.Double(-57,0,-10,0)));
     34                Barrel.add(new Instr(Form.LINE, new Line2D.Double(10,0,50,0)));
    3535                p = new Path2D.Double(); p.moveTo(-50.0,0); p.curveTo(-50.0,-11.0,-45.0,-32.0,-32.0,-36.0); p.curveTo(-18.0,-40.0,12.0,-40.0,25.0,-36.0);
    3636                p.curveTo(38.0,-32.0,43.0,-11.0,43.0,0); p.moveTo(-32.0,-36.0); p.curveTo(-23.0,-25.0,-21.0,-12.0,-21.0,0.0);
    37     Barrel.add(new Instr(Prim.PLIN, p));
     37    Barrel.add(new Instr(Form.PLIN, p));
    3838        }
    3939        public static final Symbol Can = new Symbol();
     
    4242                Path2D.Double p = new Path2D.Double(); p.moveTo(-31.6, 0); p.lineTo(-15.7,-47.4); p.lineTo(41.1,-28.4); p.lineTo(31.6,0);
    4343                p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    44                 colours.add(new Instr(Prim.P1, p));
     44                colours.add(new Instr(Form.P1, p));
    4545                p = new Path2D.Double(); p.moveTo(-31.6,0); p.lineTo(-22.0,-28.4); p.lineTo(34.8,-9.4); p.lineTo(31.6,0);
    4646                p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    47     colours.add(new Instr(Prim.H2, p));
     47    colours.add(new Instr(Form.H2, p));
    4848                p = new Path2D.Double(); p.moveTo(-24.2,-22.1); p.lineTo(-19.9,-34.8); p.lineTo(36.9,-15.8); p.lineTo(32.6,-3.1);       p.closePath();
    49     colours.add(new Instr(Prim.H3, p));
     49    colours.add(new Instr(Form.H3, p));
    5050                p = new Path2D.Double(); p.moveTo(-22.0,-28.4); p.lineTo(-18.9,-37.9); p.lineTo(37.9,-18.9); p.lineTo(34.8,-9.4);       p.closePath();
    51     colours.add(new Instr(Prim.H4, p));
     51    colours.add(new Instr(Form.H4, p));
    5252                p = new Path2D.Double(); p.moveTo(-25.2,-19.0); p.lineTo(-22.0,-28.4); p.lineTo(34.8,-9.4); p.lineTo(31.6,0.0); p.closePath();
    53     colours.add(new Instr(Prim.H5, p));
     53    colours.add(new Instr(Form.H5, p));
    5454                p = new Path2D.Double(); p.moveTo(12.7,-37.9); p.lineTo(41.1,-28.4); p.lineTo(31.6,0);  p.lineTo(8.0,0.0); p.quadTo(8.0,-6.0,2.5,-7.6); p.closePath();
    55     colours.add(new Instr(Prim.V2, p));
    56                 Can.add(new Instr(Prim.COLR, colours));
    57     Can.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    58                 Can.add(new Instr(Prim.FILL, Color.black));
    59                 Can.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    60                 Can.add(new Instr(Prim.LINE, new Line2D.Double(-40,0,-10,0)));
    61                 Can.add(new Instr(Prim.LINE, new Line2D.Double(10,0,40,0)));
     55    colours.add(new Instr(Form.V2, p));
     56                Can.add(new Instr(Form.COLR, colours));
     57    Can.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     58                Can.add(new Instr(Form.FILL, Color.black));
     59                Can.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     60                Can.add(new Instr(Form.LINE, new Line2D.Double(-40,0,-10,0)));
     61                Can.add(new Instr(Form.LINE, new Line2D.Double(10,0,40,0)));
    6262                p = new Path2D.Double(); p.moveTo(-31.6, 0); p.lineTo(-15.7,-47.4); p.lineTo(41.1,-28.4); p.lineTo(31.6,0);
    63     Can.add(new Instr(Prim.PLIN, p));
     63    Can.add(new Instr(Form.PLIN, p));
    6464        }
    6565        public static final Symbol Cone = new Symbol();
     
    6868                Path2D.Double p = new Path2D.Double(); p.moveTo(-31.6,0); p.curveTo(-24.9,-32.2, 1.4,-38.7,12.7,-37.9); p.curveTo(21.9,-30.5,32.8,-18.4,32.1,0.0);
    6969                p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    70                 colours.add(new Instr(Prim.P1, p));
     70                colours.add(new Instr(Form.P1, p));
    7171                p = new Path2D.Double(); p.moveTo(-31.6,0); p.quadTo(-29.0,-15.5,-17.3,-26.9); p.lineTo(31.5,-10.5); p.quadTo(33.0,-5.0,32.1,0.0);
    7272                p.lineTo(8.0,0.0); p.curveTo(8.0, -11.0, -8.0, -11.0, -8.0, 0.0); p.closePath();
    73     colours.add(new Instr(Prim.H2, p));
     73    colours.add(new Instr(Form.H2, p));
    7474                p = new Path2D.Double(); p.moveTo(-22.3,-21.4); p.quadTo(-15.2,-29.8,-10.8,-31.8); p.lineTo(28.8,-18.5); p.quadTo(31.8,-12.5,32.6,-3.1); p.closePath();
    75     colours.add(new Instr(Prim.H3, p));
     75    colours.add(new Instr(Form.H3, p));
    7676                p = new Path2D.Double(); p.moveTo(-17.3,-27.0); p.quadTo(-13.0,-31.4,-6.9,-33.8); p.lineTo(26.4,-22.7); p.quadTo(30.0,-17.0,31.7,-10.3); p.closePath();
    77     colours.add(new Instr(Prim.H4, p));
     77    colours.add(new Instr(Form.H4, p));
    7878                p = new Path2D.Double(); p.moveTo(-24.4,-18.7); p.quadTo(-20.3,-25.0,-17.3,-27.0); p.lineTo(31.7,-10.3); p.quadTo(32.7,-4.5,32.1,0.0); p.closePath();
    79     colours.add(new Instr(Prim.H5, p));
     79    colours.add(new Instr(Form.H5, p));
    8080                p = new Path2D.Double(); p.moveTo(12.7,-37.9); p.curveTo(21.9,-30.5,32.8,-18.4,32.1,0.0);       p.lineTo(8.0,0.0); p.quadTo(8.0,-6.0,2.5,-7.6); p.closePath();
    81     colours.add(new Instr(Prim.V2, p));
    82                 Cone.add(new Instr(Prim.COLR, colours));
    83     Cone.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    84                 Cone.add(new Instr(Prim.FILL, Color.black));
    85                 Cone.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    86                 Cone.add(new Instr(Prim.LINE, new Line2D.Double(-40,0,-10,0)));
    87                 Cone.add(new Instr(Prim.LINE, new Line2D.Double(10,0,40,0)));
     81    colours.add(new Instr(Form.V2, p));
     82                Cone.add(new Instr(Form.COLR, colours));
     83    Cone.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     84                Cone.add(new Instr(Form.FILL, Color.black));
     85                Cone.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     86                Cone.add(new Instr(Form.LINE, new Line2D.Double(-40,0,-10,0)));
     87                Cone.add(new Instr(Form.LINE, new Line2D.Double(10,0,40,0)));
    8888                p = new Path2D.Double(); p.moveTo(-31.6, 0); p.curveTo(-24.9,-32.2,1.4,-38.7,12.7,-37.9); p.curveTo(21.9,-30.5,32.8,-18.4,32.1,0.0);
    89     Cone.add(new Instr(Prim.PLIN, p));
     89    Cone.add(new Instr(Form.PLIN, p));
    9090        }
    9191        public static final Symbol Float = new Symbol();
     
    9595                p.lineTo(-12.0,-42.0); p.lineTo(12.0,-42.0); p.lineTo(19.0,-23.0); p.quadTo(30.0,-25.0,47.0,-33.0); p.lineTo(36.0,0);
    9696                p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    97                 colours.add(new Instr(Prim.P1, p));
     97                colours.add(new Instr(Form.P1, p));
    9898                p = new Path2D.Double(); p.moveTo(-36.0,0); p.lineTo(-43.0,-21.0); p.lineTo(43.0,-21.0); p.lineTo(36.0,0);
    9999                p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    100     colours.add(new Instr(Prim.H2, p));
     100    colours.add(new Instr(Form.H2, p));
    101101                p = new Path2D.Double(); p.moveTo(-40.8,-14.0); p.lineTo(-45.4,-28.0); p.lineTo(-35.5,-28.0); p.quadTo(-28.0,-25.0,-19.0,-23.0); p.lineTo(-17.2,-28.0);
    102102                p.lineTo(17.2,-28.0); p.lineTo(19.0,-23.0); p.quadTo(28.0,-25.0,35.5,-28.0); p.lineTo(45.4,-28.0); p.lineTo(40.8,-14.0); p.closePath();
    103     colours.add(new Instr(Prim.H3, p));
     103    colours.add(new Instr(Form.H3, p));
    104104                p = new Path2D.Double(); p.moveTo(-43.0,-21.0); p.lineTo(-47.0,-33.0); p.quadTo(-29.7,-24.8,-19.0,-23.0); p.lineTo(-15.8,-31.5); p.lineTo(15.8,-31.5);
    105105                p.lineTo(19.0,-23.0); p.quadTo(28.4,-24.3,47.0,-33.0); p.lineTo(43.0,-21.0);    p.closePath();
    106     colours.add(new Instr(Prim.H4, p));
     106    colours.add(new Instr(Form.H4, p));
    107107                p = new Path2D.Double(); p.moveTo(-39.8,-11.5); p.lineTo(-43.0,-21.0); p.lineTo(43.0,-21.0); p.lineTo(39.8,-11.5);      p.closePath();
    108     colours.add(new Instr(Prim.H5, p));
     108    colours.add(new Instr(Form.H5, p));
    109109                p = new Path2D.Double(); p.moveTo(0.0,-42.0); p.lineTo(12.0,-42.0); p.lineTo(19.0,-23.0); p.quadTo(28.4,-24.3,47.0,-33.0); p.lineTo(36.0,0.0);
    110110                p.lineTo(8.0,0.0); p.quadTo(7.7,-7.7,0.0,-8.0); p.closePath();
    111     colours.add(new Instr(Prim.V2, p));
    112                 Float.add(new Instr(Prim.COLR, colours));
    113     Float.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    114                 Float.add(new Instr(Prim.FILL, Color.black));
    115                 Float.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    116                 Float.add(new Instr(Prim.LINE, new Line2D.Double(-54,0,-10,0)));
    117                 Float.add(new Instr(Prim.LINE, new Line2D.Double(10,0,54,0)));
     111    colours.add(new Instr(Form.V2, p));
     112                Float.add(new Instr(Form.COLR, colours));
     113    Float.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     114                Float.add(new Instr(Form.FILL, Color.black));
     115                Float.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     116                Float.add(new Instr(Form.LINE, new Line2D.Double(-54,0,-10,0)));
     117                Float.add(new Instr(Form.LINE, new Line2D.Double(10,0,54,0)));
    118118                p = new Path2D.Double(); p.moveTo(-36.0,0); p.lineTo(-47.0,-33.0); p.curveTo(-15.0, -17.0, 15.0, -17.0, 47.0,-33.0); p.lineTo(36.0,0);
    119119                p.moveTo(-19.0, -23.0); p.lineTo(-12.0,-42.0); p.lineTo(12.0,-42.0); p.lineTo(19.0,-23.0);
    120     Float.add(new Instr(Prim.PLIN, p));
     120    Float.add(new Instr(Form.PLIN, p));
    121121        }
    122122        public static final Symbol Ice = new Symbol();
     
    125125                Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,0); p.quadTo(-30.0,0.0,-30.0,-15.0); p.lineTo(-30.0,-25.0); p.lineTo(30.0,-25.0); p.lineTo(30.0,-15); p.quadTo(30.0,0.0,15.0,0.0);
    126126                p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    127                 colours.add(new Instr(Prim.P1, p));
    128     Ice.add(new Instr(Prim.COLR, colours));
    129     Ice.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    130     Ice.add(new Instr(Prim.FILL, Color.black));
    131     Ice.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    132     Ice.add(new Instr(Prim.LINE, new Line2D.Double(-35,0,-10,0)));
    133     Ice.add(new Instr(Prim.LINE, new Line2D.Double(10,0,35,0)));
     127                colours.add(new Instr(Form.P1, p));
     128    Ice.add(new Instr(Form.COLR, colours));
     129    Ice.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     130    Ice.add(new Instr(Form.FILL, Color.black));
     131    Ice.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     132    Ice.add(new Instr(Form.LINE, new Line2D.Double(-35,0,-10,0)));
     133    Ice.add(new Instr(Form.LINE, new Line2D.Double(10,0,35,0)));
    134134                p = new Path2D.Double(); p.moveTo(-15.0,0); p.quadTo(-30.0,0.0,-30.0,-15.0); p.lineTo(-30.0,-25.0); p.lineTo(30.0,-25.0); p.lineTo(30.0,-15); p.quadTo(30.0,0.0,15.0,0.0);
    135                 Ice.add(new Instr(Prim.PLIN, p));
     135                Ice.add(new Instr(Form.PLIN, p));
    136136                p = new Path2D.Double(); p.moveTo(-6.0,8.0); p.lineTo(-6.0,40.0); p.lineTo(6.0,40.0); p.lineTo(6.0,8.0);
    137                 Ice.add(new Instr(Prim.PLIN, p));
     137                Ice.add(new Instr(Form.PLIN, p));
    138138        }
    139139        public static final Symbol Pillar = new Symbol();
     
    142142                Path2D.Double p = new Path2D.Double(); p.moveTo(-32.0,0.0); p.lineTo(-2.8,-32.5); p.lineTo(25.6,-96.7); p.lineTo(37.0,-92.9); p.lineTo(21.8,-24.3);
    143143                p.lineTo(25.0,0.0); p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    144                 colours.add(new Instr(Prim.P1, p));
     144                colours.add(new Instr(Form.P1, p));
    145145                p = new Path2D.Double(); p.moveTo(-32.0,0); p.lineTo(-2.8,-32.5); p.lineTo(5.3,-51.0); p.lineTo(26.3,-43.9); p.lineTo(21.8,-24.3); p.lineTo(25.0,0.0);
    146146                p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    147     colours.add(new Instr(Prim.H2, p));
     147    colours.add(new Instr(Form.H2, p));
    148148                p = new Path2D.Double(); p.moveTo(-0.9,-37.1); p.lineTo(11.3,-64.6); p.lineTo(29.6,-58.7); p.lineTo(23.1,-29.3);        p.closePath();
    149     colours.add(new Instr(Prim.H3, p));
     149    colours.add(new Instr(Form.H3, p));
    150150                p = new Path2D.Double(); p.moveTo(5.3,-51.0); p.lineTo(14.5,-71.5); p.lineTo(31.2,-65.9); p.lineTo(26.3,-43.9); p.closePath();
    151     colours.add(new Instr(Prim.H4, p));
     151    colours.add(new Instr(Form.H4, p));
    152152                p = new Path2D.Double(); p.moveTo(-5.2,-29.7); p.lineTo(-2.8,-32.5); p.lineTo(5.3,-51.0); p.lineTo(26.3,-43.9); p.lineTo(21.8,-24.3); p.lineTo(22.2,-21.5);     p.closePath();
    153     colours.add(new Instr(Prim.H5, p));
     153    colours.add(new Instr(Form.H5, p));
    154154                p = new Path2D.Double(); p.moveTo(12.7,-37.9); p.lineTo(31.3,-94.8); p.lineTo(37.0,-92.9); p.lineTo(21.8,-24.3);
    155155                p.lineTo(25.0,0.0); p.lineTo(8.0,0.0); p.quadTo(8.0,-6.0,2.5,-7.6); p.closePath();
    156     colours.add(new Instr(Prim.V2, p));
    157                 Pillar.add(new Instr(Prim.COLR, colours));
    158                 Pillar.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    159                 Pillar.add(new Instr(Prim.FILL, Color.black));
    160                 Pillar.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    161                 Pillar.add(new Instr(Prim.LINE, new Line2D.Double(-42,0,-10,0)));
    162                 Pillar.add(new Instr(Prim.LINE, new Line2D.Double(10,0,36,0)));
     156    colours.add(new Instr(Form.V2, p));
     157                Pillar.add(new Instr(Form.COLR, colours));
     158                Pillar.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     159                Pillar.add(new Instr(Form.FILL, Color.black));
     160                Pillar.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     161                Pillar.add(new Instr(Form.LINE, new Line2D.Double(-42,0,-10,0)));
     162                Pillar.add(new Instr(Form.LINE, new Line2D.Double(10,0,36,0)));
    163163                p = new Path2D.Double(); p.moveTo(-32.0,0.0); p.lineTo(-2.8,-32.5); p.lineTo(25.6,-96.7); p.lineTo(37.0,-92.9); p.lineTo(21.8,-24.3); p.lineTo(25.0,0.0);
    164                 Pillar.add(new Instr(Prim.PLIN, p));
     164                Pillar.add(new Instr(Form.PLIN, p));
    165165        }
    166166        public static final Symbol Spar = new Symbol();
     
    168168                Symbol colours = new Symbol();
    169169                Path2D.Double p = new Path2D.Double(); p.moveTo(-3.2,-9.5); p.lineTo(25.6,-96.7); p.lineTo(37.0,-92.9); p.lineTo(8.2,-5.7); p.closePath();
    170                 colours.add(new Instr(Prim.P1, p));
     170                colours.add(new Instr(Form.P1, p));
    171171                p = new Path2D.Double(); p.moveTo(-3.2,-9.5); p.lineTo(11.2,-53.1); p.lineTo(22.6,-49.3); p.lineTo(8.2,-5.7); p.closePath();
    172     colours.add(new Instr(Prim.H2, p));
     172    colours.add(new Instr(Form.H2, p));
    173173                p = new Path2D.Double(); p.moveTo(6.4,-38.6); p.lineTo(16.0,-67.6); p.lineTo(27.4,-63.8); p.lineTo(17.8,-34.8); p.closePath();
    174     colours.add(new Instr(Prim.H3, p));
     174    colours.add(new Instr(Form.H3, p));
    175175                p = new Path2D.Double(); p.moveTo(11.2,-53.1); p.lineTo(18.4,-74.9); p.lineTo(29.8,-71.1); p.lineTo(22.6,-49.3);        p.closePath();
    176     colours.add(new Instr(Prim.H4, p));
     176    colours.add(new Instr(Form.H4, p));
    177177                p = new Path2D.Double(); p.moveTo(4.0,-31.3); p.lineTo(11.2,-53.1); p.lineTo(22.6,-49.3); p.lineTo(15.4,-27.5); p.closePath();
    178     colours.add(new Instr(Prim.H5, p));
     178    colours.add(new Instr(Form.H5, p));
    179179                p = new Path2D.Double(); p.moveTo(2.5,-7.6); p.lineTo(31.3,-94.8); p.lineTo(37.0,-92.9); p.lineTo(8.2,-5.7); p.closePath();
    180     colours.add(new Instr(Prim.V2, p));
    181                 Spar.add(new Instr(Prim.COLR, colours));
    182                 Spar.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    183                 Spar.add(new Instr(Prim.FILL, Color.black));
    184                 Spar.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    185                 Spar.add(new Instr(Prim.LINE, new Line2D.Double(-20,0,-10,0)));
    186                 Spar.add(new Instr(Prim.LINE, new Line2D.Double(10,0,20,0)));
     180    colours.add(new Instr(Form.V2, p));
     181                Spar.add(new Instr(Form.COLR, colours));
     182                Spar.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     183                Spar.add(new Instr(Form.FILL, Color.black));
     184                Spar.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     185                Spar.add(new Instr(Form.LINE, new Line2D.Double(-20,0,-10,0)));
     186                Spar.add(new Instr(Form.LINE, new Line2D.Double(10,0,20,0)));
    187187                p = new Path2D.Double(); p.moveTo(-3.2,-9.5); p.lineTo(25.6,-96.7); p.lineTo(37.0,-92.9); p.lineTo(8.2,-5.7);
    188                 Spar.add(new Instr(Prim.PLIN, p));
     188                Spar.add(new Instr(Form.PLIN, p));
    189189        }
    190190        public static final Symbol Sphere = new Symbol();
     
    193193                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);
    194194                p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    195                 colours.add(new Instr(Prim.P1, p));
     195                colours.add(new Instr(Form.P1, p));
    196196                p = new Path2D.Double(); p.moveTo(-25.0,0); p.quadTo(-30.0,-15.0,-20.5,-28.0); p.lineTo(33.8,-10.0); p.quadTo(33.7,-4.0,32.0,0.0);
    197197                p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    198     colours.add(new Instr(Prim.H2, p));
     198    colours.add(new Instr(Form.H2, p));
    199199                p = new Path2D.Double(); p.moveTo(-24.2,-22.1); p.quadTo(-21.0,-28.5,-15.2,-33.3); p.lineTo(32.8,-17.2); p.quadTo(34.6,-10.0,33.0,-2.9); p.closePath();
    200     colours.add(new Instr(Prim.H3, p));
     200    colours.add(new Instr(Form.H3, p));
    201201                p = new Path2D.Double(); p.moveTo(-20.5,-28.0); p.quadTo(-16.5,-33.0,-12.0,-35.5); p.lineTo(31.5,-21.0); p.quadTo(33.5,-17.0,34.0,-9.5); p.closePath();
    202     colours.add(new Instr(Prim.H4, p));
     202    colours.add(new Instr(Form.H4, p));
    203203                p = new Path2D.Double(); p.moveTo(-25.2,-19.0); p.quadTo(-23.5,-24.0,-20.5,-28.0); p.lineTo(34.0,-9.5); p.quadTo(34.0,-3.0,32.0,0.0);   p.closePath();
    204     colours.add(new Instr(Prim.H5, p));
     204    colours.add(new Instr(Form.H5, p));
    205205                p = new Path2D.Double(); p.moveTo(12.7,-37.9); p.curveTo(27.5,-33.8,37.8,-15.5,32.0,0.0);       p.lineTo(8.0,0.0); p.quadTo(8.0,-6.0,2.5,-7.6); p.closePath();
    206     colours.add(new Instr(Prim.V2, p));
    207     Sphere.add(new Instr(Prim.COLR, colours));
    208     Sphere.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    209     Sphere.add(new Instr(Prim.FILL, Color.black));
    210     Sphere.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    211     Sphere.add(new Instr(Prim.LINE, new Line2D.Double(-33,0,-10,0)));
    212     Sphere.add(new Instr(Prim.LINE, new Line2D.Double(10,0,40,0)));
    213     Sphere.add(new Instr(Prim.EARC, new Arc2D.Double(-26.5,-39.4,60.0,60.0,-18.0,216.0,Arc2D.OPEN)));
     206    colours.add(new Instr(Form.V2, p));
     207    Sphere.add(new Instr(Form.COLR, colours));
     208    Sphere.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     209    Sphere.add(new Instr(Form.FILL, Color.black));
     210    Sphere.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     211    Sphere.add(new Instr(Form.LINE, new Line2D.Double(-33,0,-10,0)));
     212    Sphere.add(new Instr(Form.LINE, new Line2D.Double(10,0,40,0)));
     213    Sphere.add(new Instr(Form.EARC, new Arc2D.Double(-26.5,-39.4,60.0,60.0,-18.0,216.0,Arc2D.OPEN)));
    214214        }
    215215        public static final Symbol Storage = new Symbol();
    216216        static {
    217                 Storage.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    218                 Storage.add(new Instr(Prim.FILL, Color.black));
    219                 Storage.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     217                Storage.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     218                Storage.add(new Instr(Form.FILL, Color.black));
     219                Storage.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    220220    Path2D.Double p = new Path2D.Double(); p.moveTo(-50.0,0.0); p.lineTo(-40.0,-20.0); p.lineTo(40.0,-20.0); p.lineTo(40.0,-20.0);
    221221    p.lineTo(50.0,0.0); p.lineTo(40.0,20.0); p.lineTo(-40.0,20.0); p.closePath();
    222     Storage.add(new Instr(Prim.PLIN, p));
     222    Storage.add(new Instr(Form.PLIN, p));
    223223        }
    224224        public static final Symbol Super = new Symbol();
     
    227227                Path2D.Double p = new Path2D.Double(); p.moveTo(-48.0,0); p.lineTo(-28.0,-42.0); p.lineTo(28.0,-42.0); p.lineTo(48.0,0);
    228228                p.lineTo(8.0, 0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    229                 colours.add(new Instr(Prim.P1, p));
     229                colours.add(new Instr(Form.P1, p));
    230230                p = new Path2D.Double(); p.moveTo(-48.0,0); p.lineTo(-38.0,-21.0); p.lineTo(38.0,-21.0); p.lineTo(48.0,0);
    231231                p.lineTo(8.0,0.0); p.curveTo(8.0,-11.0,-8.0,-11.0,-8.0,0.0); p.closePath();
    232     colours.add(new Instr(Prim.H2, p));
     232    colours.add(new Instr(Form.H2, p));
    233233                p = new Path2D.Double(); p.moveTo(-41.3,-14.0); p.lineTo(-34.7,-28.0); p.lineTo(34.7,-28.0); p.lineTo(41.3,-14.0);      p.closePath();
    234     colours.add(new Instr(Prim.H3, p));
     234    colours.add(new Instr(Form.H3, p));
    235235                p = new Path2D.Double(); p.moveTo(-38.0,-21.0); p.lineTo(-33.0,-31.5); p.lineTo(33.0,-31.5); p.lineTo(38.0,-21.0);      p.closePath();
    236     colours.add(new Instr(Prim.H4, p));
     236    colours.add(new Instr(Form.H4, p));
    237237                p = new Path2D.Double(); p.moveTo(-43.0,-11.5); p.lineTo(-38.0,-21.0); p.lineTo(38.0,-21.0); p.lineTo(43.0,-11.5);      p.closePath();
    238     colours.add(new Instr(Prim.H5, p));
     238    colours.add(new Instr(Form.H5, p));
    239239                p = new Path2D.Double(); p.moveTo(0.0,-42.0); p.lineTo(28.0,-42.0); p.lineTo(48.0,0.0); p.lineTo(8.0,0.0); p.quadTo(7.7,-7.7,0.0,-8.0); p.closePath();
    240     colours.add(new Instr(Prim.V2, p));
    241                 Super.add(new Instr(Prim.COLR, colours));
    242     Super.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    243                 Super.add(new Instr(Prim.FILL, Color.black));
    244                 Super.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    245                 Super.add(new Instr(Prim.LINE, new Line2D.Double(-54,0,-10,0)));
    246                 Super.add(new Instr(Prim.LINE, new Line2D.Double(10,0,54,0)));
     240    colours.add(new Instr(Form.V2, p));
     241                Super.add(new Instr(Form.COLR, colours));
     242    Super.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     243                Super.add(new Instr(Form.FILL, Color.black));
     244                Super.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     245                Super.add(new Instr(Form.LINE, new Line2D.Double(-54,0,-10,0)));
     246                Super.add(new Instr(Form.LINE, new Line2D.Double(10,0,54,0)));
    247247                p = new Path2D.Double(); p.moveTo(-48.0,0); p.lineTo(-28.0,-42.0); p.lineTo(28.0,-42.0); p.lineTo(48.0,0);
    248     Super.add(new Instr(Prim.PLIN, p));
     248    Super.add(new Instr(Form.PLIN, p));
    249249        }
    250250       
  • applications/editors/josm/plugins/smed2/src/symbols/Facilities.java

    r30157 r30215  
    2121        private static final Symbol Facility = new Symbol();
    2222        static {
    23                 Facility.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    24                 Facility.add(new Instr(Prim.FILL, new Color(0x80ffffff, true)));
     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)));
    2525                RoundRectangle2D.Double s = new RoundRectangle2D.Double(-29,-29,58,58,15,15);
    26                 Facility.add(new Instr(Prim.RSHP, s));
    27                 Facility.add(new Instr(Prim.FILL, new Color(0xa30075)));
    28                 Facility.add(new Instr(Prim.RRCT, s));
     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));
    2929        }
    3030        public static final Symbol Boatlift = new Symbol();//was Crane
    3131        static {
    32                 Boatlift.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    33                 Boatlift.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null)));
    34                 Boatlift.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    35                 Boatlift.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-3.7,-19.7,12,12)));
    36                 Boatlift.add(new Instr(Prim.LINE, new Line2D.Double(2.3,-7.7,2.3,-2.0)));
    37                 Boatlift.add(new Instr(Prim.EARC, new Arc2D.Double(-10.0,-1.5,20,20,75.0,-260.0,Arc2D.OPEN)));
     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)));
    3838        }
    3939        public static final Symbol Boatyard = new Symbol();
    4040        static {
    41                 Boatyard.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    42                 Boatyard.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null)));
    43                 Boatyard.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    44                 Boatyard.add(new Instr(Prim.LINE, new Line2D.Double(19,19,-8,-8)));
     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)));
    4545                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);
    4646                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(Prim.PGON, p));
     47                Boatyard.add(new Instr(Form.PGON, p));
    4848        }
    4949        public static final Symbol Chandler = new Symbol();
    5050        static {
    51                 Chandler.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    52                 Chandler.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null)));
    53                 Chandler.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    54                 Chandler.add(new Instr(Prim.ELPS, new Ellipse2D.Double(14,7,10,10)));
    55                 Chandler.add(new Instr(Prim.LINE, new Line2D.Double(-23.0,12.0,14.0,12.0)));
    56                 Chandler.add(new Instr(Prim.LINE, new Line2D.Double(8.0,21.0,8.0,-8.6)));
    57                 Chandler.add(new Instr(Prim.LINE, new Line2D.Double(-16.0,21.0,-16.0,-8.6)));
    58                 Chandler.add(new Instr(Prim.EARC, new Arc2D.Double(-16.0,-20.5,24,24,0.0,180.0,Arc2D.OPEN)));
     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)));
    5959        }
    6060        public static final Symbol Fuel = new Symbol();
    6161        static {
    62                 Fuel.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    63                 Fuel.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null)));
    64                 Fuel.add(new Instr(Prim.STRK, new BasicStroke(2.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    65                 Fuel.add(new Instr(Prim.FILL, new Color(0xa30075)));
     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)));
    6666                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    6767                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();
    6868                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);
    6969                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(Prim.PGON, p));
     70                Fuel.add(new Instr(Form.PGON, p));
    7171                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);
    7272                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(Prim.PLIN, p));
     73                Fuel.add(new Instr(Form.PLIN, p));
    7474        }
    7575        public static final Symbol Laundrette = new Symbol();
    7676        static {
    77                 Laundrette.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    78                 Laundrette.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null)));
    79                 Laundrette.add(new Instr(Prim.STRK, new BasicStroke(1.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    80                 Laundrette.add(new Instr(Prim.FILL, new Color(0xa30075)));
    81                 Laundrette.add(new Instr(Prim.RECT, new Rectangle2D.Double(-15,-15,30,30)));
    82                 Laundrette.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     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)));
    8383                Path2D.Double p = new Path2D.Double(); p.moveTo(-15,-15); p.lineTo(-15,-20); p.lineTo(15,-20); p.lineTo(15,-15);
    8484                p.moveTo(-10,15); p.lineTo(-10,20); p.lineTo(10,20); p.lineTo(10,15);
    85                 Laundrette.add(new Instr(Prim.PLIN, p));
     85                Laundrette.add(new Instr(Form.PLIN, p));
    8686        }
    8787        public static final Symbol PumpOut = new Symbol();
    8888        static {
    89                 PumpOut.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    90                 PumpOut.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null)));
    91                 PumpOut.add(new Instr(Prim.STRK, new BasicStroke(2.5f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    92                 PumpOut.add(new Instr(Prim.FILL, new Color(0xa30075)));
     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)));
    9393                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);
    9494                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(Prim.PLIN, p));
    96                 PumpOut.add(new Instr(Prim.STRK, new BasicStroke(3.5f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     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)));
    9797                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(Prim.PLIN, p));
     98                PumpOut.add(new Instr(Form.PLIN, p));
    9999                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(Prim.PGON, p));
     100                PumpOut.add(new Instr(Form.PGON, p));
    101101                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(Prim.PGON, p));
     102                PumpOut.add(new Instr(Form.PGON, p));
    103103        }
    104104        public static final Symbol SailingClub = new Symbol();
    105105        static {
    106                 SailingClub.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    107                 SailingClub.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null)));
    108                 SailingClub.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    109                 SailingClub.add(new Instr(Prim.FILL, new Color(0xa30075)));
    110                 SailingClub.add(new Instr(Prim.LINE, new Line2D.Double(-5,20,-5,-20)));
     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)));
    111111                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(Prim.PGON, p));
     112                SailingClub.add(new Instr(Form.PGON, p));
    113113        }
    114114        public static final Symbol Shower = new Symbol();
    115115        static {
    116                 Shower.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    117                 Shower.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null)));
    118                 Shower.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    119                 Shower.add(new Instr(Prim.FILL, new Color(0xa30075)));
    120                 Shower.add(new Instr(Prim.LINE, new Line2D.Double(-4.8,-24.5,6.2,-13.5)));
    121                 Shower.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    122                 Shower.add(new Instr(Prim.LINE, new Line2D.Double(-18.1,-17.9,-6.1,-21.3)));
    123                 Shower.add(new Instr(Prim.LINE, new Line2D.Double(-13.9,-10.2,-3.9,-17.7)));
    124                 Shower.add(new Instr(Prim.LINE, new Line2D.Double(-7.8,-4.4,-0.5,-14.3)));
    125                 Shower.add(new Instr(Prim.LINE, new Line2D.Double(-0.2,-0.2,3.1,-12.1)));
     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)));
    126126                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(Prim.PLIN, p));
     127                Shower.add(new Instr(Form.PLIN, p));
    128128        }
    129129        public static final Symbol Slipway = new Symbol();
    130130        static {
    131                 Slipway.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    132                 Slipway.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null)));
    133                 Slipway.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    134                 Slipway.add(new Instr(Prim.FILL, new Color(0xa30075)));
     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)));
    135135                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);
    136136                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);
    137137                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(Prim.PGON, p));
    139                 Slipway.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-1.65,-1.9,8,8)));
    140                 Slipway.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    141                 Slipway.add(new Instr(Prim.LINE, new Line2D.Double(-24.5,-8.3,-3.1,-2.4)));
    142                 Slipway.add(new Instr(Prim.LINE, new Line2D.Double(9.3,1.1,22.2,4.6)));
     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)));
    143143                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);
    144144                p.lineTo(-17.1,-18.9); p.quadTo(-16.8,-11.4,-7.7,-7.7); p.closePath();
    145                 Slipway.add(new Instr(Prim.PGON, p));
     145                Slipway.add(new Instr(Form.PGON, p));
    146146        }
    147147        public static final Symbol Toilet = new Symbol();
    148148        static {
    149                 Toilet.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    150                 Toilet.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Facilities.Facility, 1.0, 0, 0, null, null)));
    151                 Toilet.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    152                 Toilet.add(new Instr(Prim.FILL, new Color(0xa30075)));
    153                 Toilet.add(new Instr(Prim.LINE, new Line2D.Double(0,20,0,-20)));
    154                 Toilet.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-18.5,-22.5,7.4,7.4)));
    155                 Toilet.add(new Instr(Prim.RSHP, new Ellipse2D.Double(11,-22.5,7.4,7.4)));
     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)));
    156156                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);
    157157                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);
    158158                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(Prim.PGON, p));
     159                Toilet.add(new Instr(Form.PGON, p));
    160160                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);
    161161                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);
    162162                p.lineTo(6.8,-10.1); p.lineTo(9.4,-12.2); p.closePath();
    163                 Toilet.add(new Instr(Prim.PGON, p));
     163                Toilet.add(new Instr(Form.PGON, p));
    164164        }
    165165        public static final Symbol VisitorBerth = new Symbol();
    166166        static {
    167                 VisitorBerth.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    168                 VisitorBerth.add(new Instr(Prim.FILL, new Color(0xa30075)));
    169                 VisitorBerth.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-25,-25,50,50)));
    170                 VisitorBerth.add(new Instr(Prim.FILL, Color.white));
     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));
    171171                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);
    172172                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(Prim.PGON, p));
     173                VisitorBerth.add(new Instr(Form.PGON, p));
    174174        }
    175175        public static final Symbol VisitorMooring = new Symbol();
    176176        static {
    177                 VisitorMooring.add(new Instr(Prim.FILL, new Color(0xa30075)));
     177                VisitorMooring.add(new Instr(Form.FILL, new Color(0xa30075)));
    178178                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);
    179179                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(Prim.PGON, p));
    181     VisitorMooring.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    182     VisitorMooring.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    183     VisitorMooring.add(new Instr(Prim.LINE, new Line2D.Double(-33,0,-10,0)));
    184     VisitorMooring.add(new Instr(Prim.LINE, new Line2D.Double(10,0,40,0)));
    185     VisitorMooring.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    186     VisitorMooring.add(new Instr(Prim.ELPS, new Ellipse2D.Double(6.5,-49.5,12,12)));
    187     VisitorMooring.add(new Instr(Prim.FILL, Color.white));
     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));
    188188                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);
    189189                p.lineTo(-1.9,-32.8); p.lineTo(3.2,-18.1); p.closePath();
    190                 VisitorMooring.add(new Instr(Prim.PGON, p));
     190                VisitorMooring.add(new Instr(Form.PGON, p));
    191191        }
    192192
  • applications/editors/josm/plugins/smed2/src/symbols/Harbours.java

    r30150 r30215  
    2020        public static final Symbol Anchor = new Symbol();
    2121        static {
    22                 Anchor.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-60,-60,120,120)));
    23                 Anchor.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    24                 Anchor.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-59,20,20)));
     22                Anchor.add(new Instr(Form.BBOX, new Rectangle2D.Double(-60,-60,120,120)));
     23                Anchor.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     24                Anchor.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-59,20,20)));
    2525                Path2D.Double p = new Path2D.Double(); p.moveTo(23.0,-40.0); p.lineTo(23.0,-30.0); p.lineTo(6.0,-30.0); p.lineTo(7.0,31.0); p.quadTo(21.0,29.0,31.0,22.0);
    2626                p.lineTo(27.0,18.0); p.lineTo(52.0,0.0); p.lineTo(45.0,35.0); p.lineTo(37.0,28.0);      p.quadTo(25.0,39.0,7.0,43.0); p.lineTo(6.0,51.0);
    2727                p.lineTo(-6.0,51.0); p.lineTo(-7.0,43.0);       p.quadTo(-25.0,39.0,-37.0,28.0); p.lineTo(-45.0,35.0); p.lineTo(-52.0,0.0); p.lineTo(-27.0,18.0);
    2828                p.lineTo(-31.0,22.0); p.quadTo(-21.0,29.0,-7.0,31.0); p.lineTo(-6.0,-30.0); p.lineTo(-23.0,-30.0); p.lineTo(-23.0,-40.0); p.closePath();
    29                 Anchor.add(new Instr(Prim.PGON, p));
     29                Anchor.add(new Instr(Form.PGON, p));
    3030        }
    3131        public static final Symbol Yacht = new Symbol();
    3232        static {
    33                 Yacht.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     33                Yacht.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    3434                Path2D.Double p = new Path2D.Double(); p.moveTo(-65.0,50.0); p.curveTo(-36.0,97.0,36.0,97.0,65.0,50.0); p.lineTo(3.0,50.0); p.lineTo(3.0,40.0); p.lineTo(55.0,30.0);
    3535                p.curveTo(32.0,4.0,25.0,-15.0,26.0,-52.0); p.lineTo(1.5,-40.0); p.lineTo(1.0,-64.0); p.lineTo(-2.0,-64.0); p.lineTo(-4.0,50.0); p.closePath();
    3636                p.moveTo(-50.0,45.0); p.curveTo(-55.0,3.0,-37.0,-28.5,-7.0,-46.0); p.curveTo(-28.0,-15.0,-26.0,11.0,-20.5,30.0); p.closePath();
    37                 Yacht.add(new Instr(Prim.PGON, p));
     37                Yacht.add(new Instr(Form.PGON, p));
    3838        }
    3939        public static final Symbol Anchorage = new Symbol();
    4040        static {
    41                 Anchorage.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 1.0, 0, 0, new Scheme(Rules.Msymb), null)));
     41                Anchorage.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 1.0, 0, 0, new Scheme(Rules.Msymb), null)));
    4242        }
    4343        public static final Symbol Bollard = new Symbol();
    4444        static {
    45                 Bollard.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    46                 Bollard.add(new Instr(Prim.FILL, Color.white));
     45                Bollard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     46                Bollard.add(new Instr(Form.FILL, Color.white));
    4747                Ellipse2D.Double s = new Ellipse2D.Double(-10,-10,20,20);
    48                 Bollard.add(new Instr(Prim.RSHP, s));
    49                 Bollard.add(new Instr(Prim.FILL, Color.black));
    50                 Bollard.add(new Instr(Prim.ELPS, s));
     48                Bollard.add(new Instr(Form.RSHP, s));
     49                Bollard.add(new Instr(Form.FILL, Color.black));
     50                Bollard.add(new Instr(Form.ELPS, s));
    5151        }
    5252        public static final Symbol ContainerCrane = new Symbol();
    5353        static {
    54                 ContainerCrane.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    55                 ContainerCrane.add(new Instr(Prim.RSHP, new Rectangle2D.Double(-15,-65,30,100)));
    56                 ContainerCrane.add(new Instr(Prim.RECT, new Rectangle2D.Double(-40,-12.5,80,25)));
     54                ContainerCrane.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     55                ContainerCrane.add(new Instr(Form.RSHP, new Rectangle2D.Double(-15,-65,30,100)));
     56                ContainerCrane.add(new Instr(Form.RECT, new Rectangle2D.Double(-40,-12.5,80,25)));
    5757        }
    5858        public static final Symbol Customs = new Symbol();
    5959        static {
    60                 Customs.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    61                 Customs.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    62                 Customs.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-28,-28,56,56)));
    63                 Customs.add(new Instr(Prim.LINE, new Line2D.Double(-25,5,25,5)));
    64                 Customs.add(new Instr(Prim.LINE, new Line2D.Double(-25,-5,25,-5)));
     60                Customs.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     61                Customs.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     62                Customs.add(new Instr(Form.ELPS, new Ellipse2D.Double(-28,-28,56,56)));
     63                Customs.add(new Instr(Form.LINE, new Line2D.Double(-25,5,25,5)));
     64                Customs.add(new Instr(Form.LINE, new Line2D.Double(-25,-5,25,-5)));
    6565        }
    6666        public static final Symbol DeviationDolphin = new Symbol();
    6767        static {
    68                 DeviationDolphin.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     68                DeviationDolphin.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    6969                Path2D.Double p = new Path2D.Double(); p.moveTo(-30.0,0.0); p.lineTo(30.0,0.0); p.moveTo(0.0,0.0); p.lineTo(0.0,-40.0);
    7070                p.moveTo(-20.0,0.0); p.lineTo(-15.0,-32.0); p.lineTo(15.0,-32.0); p.lineTo(20.0,0.0);
    71                 DeviationDolphin.add(new Instr(Prim.PLIN, p));
     71                DeviationDolphin.add(new Instr(Form.PLIN, p));
    7272        }
    7373        public static final Symbol DistanceI = new Symbol();
    7474        static {
    75                 DistanceI.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    76                 DistanceI.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-11,-11,22,22)));
     75                DistanceI.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     76                DistanceI.add(new Instr(Form.ELPS, new Ellipse2D.Double(-11,-11,22,22)));
    7777        }
    7878        public static final Symbol DistanceU = new Symbol();
    7979        static {
    80                 DistanceU.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    81                 DistanceU.add(new Instr(Prim.FILL, Rules.Msymb));
    82                 DistanceU.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-11,-11,22,22)));
     80                DistanceU.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     81                DistanceU.add(new Instr(Form.FILL, Rules.Msymb));
     82                DistanceU.add(new Instr(Form.ELPS, new Ellipse2D.Double(-11,-11,22,22)));
    8383        }
    8484        public static final Symbol Dolphin = new Symbol();
    8585        static {
    86                 Dolphin.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    87                 Dolphin.add(new Instr(Prim.FILL, new Color(0xffd400)));
     86                Dolphin.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     87                Dolphin.add(new Instr(Form.FILL, new Color(0xffd400)));
    8888                Path2D.Double p = new Path2D.Double(); p.moveTo(3.8,-9.2); p.lineTo(9.2,-3.8); p.lineTo(9.2,3.8); p.lineTo(3.8,9.2);
    8989                p.lineTo(-3.8,9.2); p.lineTo(-9.2,3.8); p.lineTo(-9.2,-3.8); p.lineTo(-3.8,-9.2); p.closePath();
    90                 Dolphin.add(new Instr(Prim.PGON, p));
    91                 Dolphin.add(new Instr(Prim.FILL, Color.black));
    92                 Dolphin.add(new Instr(Prim.PLIN, p));
     90                Dolphin.add(new Instr(Form.PGON, p));
     91                Dolphin.add(new Instr(Form.FILL, Color.black));
     92                Dolphin.add(new Instr(Form.PLIN, p));
    9393        }
    9494        public static final Symbol Explosives = new Symbol();
    9595        static {
    96                 Explosives.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    97                 Explosives.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-5,25,10,10)));
    98                 Explosives.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     96                Explosives.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     97                Explosives.add(new Instr(Form.RSHP, new Ellipse2D.Double(-5,25,10,10)));
     98                Explosives.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    9999                Path2D.Double p = new Path2D.Double(); p.moveTo(-10,20); p.lineTo(-13,17); p.lineTo(-13,8);
    100100                p.moveTo(0,10); p.lineTo(0,0); p.lineTo(-8,-10);
    101101                p.moveTo(10,17); p.lineTo(18,-10); p.lineTo(10,-20);
    102                 Explosives.add(new Instr(Prim.PLIN, p));
     102                Explosives.add(new Instr(Form.PLIN, p));
    103103        }
    104104        public static final Symbol Fishing = new Symbol();
    105105        static {
    106                 Fishing.add(new Instr(Prim.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    107                 Fishing.add(new Instr(Prim.FILL, Rules.Msymb));
    108                 Fishing.add(new Instr(Prim.EARC, new Arc2D.Double(-75,-75,150,150,15,140,Arc2D.OPEN)));
    109                 Fishing.add(new Instr(Prim.EARC, new Arc2D.Double(-75,-75,150,150,-15,-140,Arc2D.OPEN)));
     106                Fishing.add(new Instr(Form.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     107                Fishing.add(new Instr(Form.FILL, Rules.Msymb));
     108                Fishing.add(new Instr(Form.EARC, new Arc2D.Double(-75,-75,150,150,15,140,Arc2D.OPEN)));
     109                Fishing.add(new Instr(Form.EARC, new Arc2D.Double(-75,-75,150,150,-15,-140,Arc2D.OPEN)));
    110110                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    111111                p.moveTo(-40,5); p.curveTo(20,40,50,25,80,0); p.curveTo(50,-25,20,-40,-40,-5);
    112112                p.lineTo(-75,-25); p.quadTo(-80, 0, -75, 25); p.closePath();
    113113                p.moveTo(42, 0); p.curveTo(42, 10, 56, 10, 56, 0); p.curveTo(56, -10, 42, -10, 42, 0); p.closePath();
    114                 Fishing.add(new Instr(Prim.PGON, p));
     114                Fishing.add(new Instr(Form.PGON, p));
    115115        }
    116116        public static final Symbol Harbour = new Symbol();
    117117        static {
    118                 Harbour.add(new Instr(Prim.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    119                 Harbour.add(new Instr(Prim.FILL, Rules.Msymb));
    120                 Harbour.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-75,-75,150,150)));
    121                 Harbour.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 1.0, 0, 0, new Scheme(Rules.Msymb), null)));
     118                Harbour.add(new Instr(Form.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     119                Harbour.add(new Instr(Form.FILL, Rules.Msymb));
     120                Harbour.add(new Instr(Form.ELPS, new Ellipse2D.Double(-75,-75,150,150)));
     121                Harbour.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 1.0, 0, 0, new Scheme(Rules.Msymb), null)));
    122122        }
    123123        public static final Symbol HarbourMaster = new Symbol();
    124124        static {
    125                 HarbourMaster.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    126                 HarbourMaster.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    127                 HarbourMaster.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-24,-28,48,56)));
    128                 HarbourMaster.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, null, null)));
     125                HarbourMaster.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     126                HarbourMaster.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     127                HarbourMaster.add(new Instr(Form.ELPS, new Ellipse2D.Double(-24,-28,48,56)));
     128                HarbourMaster.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, null, null)));
    129129        }
    130130        public static final Symbol Hospital = new Symbol();
    131131        static {
    132                 Hospital.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    133                 Hospital.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    134                 Hospital.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-28,-28,56,56)));
     132                Hospital.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     133                Hospital.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     134                Hospital.add(new Instr(Form.ELPS, new Ellipse2D.Double(-28,-28,56,56)));
    135135                Path2D.Double p = new Path2D.Double(); p.moveTo(-26,-5); p.lineTo(-5,-5); p.lineTo(-5,-25); p.moveTo(5,-25); p.lineTo(5,-5); p.lineTo(25,-5);
    136136                p.moveTo(-25,5); p.lineTo(-5,5); p.lineTo(-5,25); p.moveTo(5,25); p.lineTo(5,5); p.lineTo(25,5);
    137                 Hospital.add(new Instr(Prim.PLIN, p));
     137                Hospital.add(new Instr(Form.PLIN, p));
    138138        }
    139139        public static final Symbol LandingSteps = new Symbol();
    140140        static {
    141                 LandingSteps.add(new Instr(Prim.FILL, Rules.Msymb));
     141                LandingSteps.add(new Instr(Form.FILL, Rules.Msymb));
    142142                Path2D.Double p = new Path2D.Double(); p.moveTo(-20,-10); p.lineTo(10,20); p.lineTo(20,20); p.lineTo(20,10);
    143143                p.lineTo(10,10); p.lineTo(10,0); p.lineTo(0,0); p.lineTo(0,-10); p.lineTo(-10,-10); p.lineTo(-10,-20); p.lineTo(-20,-20); p.closePath();
    144                 LandingSteps.add(new Instr(Prim.PGON, p));
     144                LandingSteps.add(new Instr(Form.PGON, p));
    145145        }
    146146        public static final Symbol Lock_Gate = new Symbol();
     
    148148        public static final Symbol Marina = new Symbol();
    149149        static {
    150                 Marina.add(new Instr(Prim.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    151                 Marina.add(new Instr(Prim.FILL, Rules.Msymb));
    152                 Marina.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 1.0, 0, 0, new Scheme(Rules.Msymb), null)));
    153                 Marina.add(new Instr(Prim.EARC, new Arc2D.Double(-80.0,-80.0,160.0,160.0,215.0,-250.0,Arc2D.OPEN)));
     150                Marina.add(new Instr(Form.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     151                Marina.add(new Instr(Form.FILL, Rules.Msymb));
     152                Marina.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 1.0, 0, 0, new Scheme(Rules.Msymb), null)));
     153                Marina.add(new Instr(Form.EARC, new Arc2D.Double(-80.0,-80.0,160.0,160.0,215.0,-250.0,Arc2D.OPEN)));
    154154        }
    155155        public static final Symbol MarinaNF = new Symbol();
    156156        static {
    157                 MarinaNF.add(new Instr(Prim.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    158                 MarinaNF.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 1.0, 0, 0, new Scheme(Rules.Msymb), null)));
     157                MarinaNF.add(new Instr(Form.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     158                MarinaNF.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 1.0, 0, 0, new Scheme(Rules.Msymb), null)));
    159159        }
    160160        public static final Symbol Pilot = new Symbol();
    161161        static{
    162                 Pilot.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    163                 Pilot.add(new Instr(Prim.FILL, new Color(0xd400d4)));
     162                Pilot.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     163                Pilot.add(new Instr(Form.FILL, new Color(0xd400d4)));
    164164                Path2D.Double p = new Path2D.Double(); p.moveTo(-15,0); p.lineTo(0,-56); p.lineTo(15,0); p.lineTo(0,56); p.closePath();
    165                 Pilot.add(new Instr(Prim.PGON, p));
    166                 Pilot.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-58,-58,116,116)));
     165                Pilot.add(new Instr(Form.PGON, p));
     166                Pilot.add(new Instr(Form.ELPS, new Ellipse2D.Double(-58,-58,116,116)));
    167167        }
    168168        public static final Symbol PortCrane = new Symbol();
    169169        static {
    170                 PortCrane.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    171                 PortCrane.add(new Instr(Prim.EARC, new Arc2D.Double(-36.0,-36.0,72.0,72.0,70.0,-320.0,Arc2D.OPEN)));
    172                 PortCrane.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-60)));
     170                PortCrane.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     171                PortCrane.add(new Instr(Form.EARC, new Arc2D.Double(-36.0,-36.0,72.0,72.0,70.0,-320.0,Arc2D.OPEN)));
     172                PortCrane.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-60)));
    173173        }
    174174        public static final Symbol Post = new Symbol();
    175175        static {
    176                 Post.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-10,-10,20,20)));
     176                Post.add(new Instr(Form.RSHP, new Ellipse2D.Double(-10,-10,20,20)));
    177177        }
    178178        public static final Symbol Rescue = new Symbol();
    179179        static{
    180                 Rescue.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     180                Rescue.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    181181                Path2D.Double p = new Path2D.Double(); p.moveTo(-11,0); p.lineTo(0,-43); p.lineTo(11,0); p.lineTo(0,43); p.closePath();
    182                 Rescue.add(new Instr(Prim.PGON, p));
    183                 Rescue.add(new Instr(Prim.LINE, new Line2D.Double(-15,0,15,0)));
     182                Rescue.add(new Instr(Form.PGON, p));
     183                Rescue.add(new Instr(Form.LINE, new Line2D.Double(-15,0,15,0)));
    184184        }
    185185        public static final Symbol SignalStation = new Symbol();
    186186        static {
    187                 SignalStation.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    188                 SignalStation.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-25,-25,50,50)));
    189                 SignalStation.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
     187                SignalStation.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     188                SignalStation.add(new Instr(Form.ELPS, new Ellipse2D.Double(-25,-25,50,50)));
     189                SignalStation.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
    190190        }
    191191        public static final Symbol TideGauge = new Symbol();
    192192        static {
    193                 TideGauge.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    194                 TideGauge.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    195                 TideGauge.add(new Instr(Prim.LINE, new Line2D.Double(-10,0,-30,0)));
    196                 TideGauge.add(new Instr(Prim.LINE, new Line2D.Double(10,0,30,0)));
    197                 TideGauge.add(new Instr(Prim.LINE, new Line2D.Double(0,-10,0,-80)));
    198                 TideGauge.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    199                 TideGauge.add(new Instr(Prim.LINE, new Line2D.Double(-15,-25,15,-25)));
    200                 TideGauge.add(new Instr(Prim.LINE, new Line2D.Double(-25,-45,25,-45)));
    201                 TideGauge.add(new Instr(Prim.LINE, new Line2D.Double(-15,-65,15,-65)));
     193                TideGauge.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     194                TideGauge.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     195                TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-10,0,-30,0)));
     196                TideGauge.add(new Instr(Form.LINE, new Line2D.Double(10,0,30,0)));
     197                TideGauge.add(new Instr(Form.LINE, new Line2D.Double(0,-10,0,-80)));
     198                TideGauge.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     199                TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-15,-25,15,-25)));
     200                TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-25,-45,25,-45)));
     201                TideGauge.add(new Instr(Form.LINE, new Line2D.Double(-15,-65,15,-65)));
    202202        }
    203203}
  • applications/editors/josm/plugins/smed2/src/symbols/Landmarks.java

    r30033 r30215  
    2121        private static final Symbol Base = new Symbol();
    2222        static {
    23                 Base.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    24                 Base.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    25                 Base.add(new Instr(Prim.LINE, new Line2D.Double(-35,0,-10,0)));
    26                 Base.add(new Instr(Prim.LINE, new Line2D.Double(10,0,35,0)));
     23                Base.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     24                Base.add(new Instr(Form.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
     25                Base.add(new Instr(Form.LINE, new Line2D.Double(-35,0,-10,0)));
     26                Base.add(new Instr(Form.LINE, new Line2D.Double(10,0,35,0)));
    2727        }
    2828       
    2929        public static final Symbol Chimney = new Symbol();
    3030        static {
    31                 Chimney.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    32                 Chimney.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     31                Chimney.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
     32                Chimney.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    3333                Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(-10.0,-120.0); p.lineTo(10.0,-120.0); p.lineTo(25.0,0.0);
    3434                p.moveTo(-10.0,-128.0); p.curveTo(-13.0,-147.0,15.0,-159.0,20.0,-148.0);
    3535                p.moveTo(16.0,-152.3); p.curveTo(58.0,-194.0,98.0,-87.0,16.0,-132.0);
    3636                p.moveTo(11.0,-128.0); p.curveTo(13.4,-132.0,20.0,-132.0,20.0,-136.0);
    37                 Chimney.add(new Instr(Prim.PLIN, p));
     37                Chimney.add(new Instr(Form.PLIN, p));
    3838        }
    3939        public static final Symbol Church = new Symbol();
     
    4444                p.lineTo(-50.0,21.0); p.lineTo(-50.0,-21.0); p.lineTo(-48.0,-21.0); p.quadTo(-48.0,-10.0,-37.0,-10.0); p.lineTo(-10.0,-10.0); p.lineTo(-10.0,-37.0);
    4545                p.quadTo(-10.0,-48.0,-21.0,-48.0); p.lineTo(-21.0,-50.0); p.lineTo(21.0,-50.0); p.lineTo(21.0,-48.0); p.quadTo(10.0,-48.0,10.0,-37.0); p.closePath();
    46                 Church.add(new Instr(Prim.PGON, p));
     46                Church.add(new Instr(Form.PGON, p));
    4747        }
    4848        public static final Symbol ChurchTower = new Symbol();
    4949        static {
    50                 ChurchTower.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    51                 ChurchTower.add(new Instr(Prim.RECT, new Rectangle2D.Double(-36,-36,72,72)));
    52                 ChurchTower.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-2,-2,4,4)));
     50                ChurchTower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     51                ChurchTower.add(new Instr(Form.RECT, new Rectangle2D.Double(-36,-36,72,72)));
     52                ChurchTower.add(new Instr(Form.ELPS, new Ellipse2D.Double(-2,-2,4,4)));
    5353        }
    5454        public static final Symbol Cross = new Symbol();
    5555        static {
    56                 Cross.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    57                 Cross.add(new Instr(Prim.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    58                 Cross.add(new Instr(Prim.LINE, new Line2D.Double(0,-10,0,-150)));
    59                 Cross.add(new Instr(Prim.LINE, new Line2D.Double(-30,-115,30,-115)));
     56                Cross.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
     57                Cross.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     58                Cross.add(new Instr(Form.LINE, new Line2D.Double(0,-10,0,-150)));
     59                Cross.add(new Instr(Form.LINE, new Line2D.Double(-30,-115,30,-115)));
    6060        }
    6161        public static final Symbol DishAerial = new Symbol();
    6262        static {
    63                 DishAerial.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    64                 DishAerial.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)));
     63                DishAerial.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
     64                DishAerial.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)));
    6565                Path2D.Double p = new Path2D.Double(); p.moveTo(-7.8,-6.0); p.lineTo(0.0,-62.0); p.lineTo(7.8,-6.0); p.moveTo(18.0,-109.0); p.lineTo(25.0,-113.0);
    6666                p.moveTo(-9.5,-157.0); p.curveTo(-60.7,-125.5,-16.5,-33.9,44.9,-61.7); p.closePath();
    67                 DishAerial.add(new Instr(Prim.PLIN, p));
     67                DishAerial.add(new Instr(Form.PLIN, p));
    6868        }
    6969        public static final Symbol Dome = new Symbol();
    7070        static {
    71                 Dome.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    72                 Dome.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-36,-36,72,72)));
    73                 Dome.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
     71                Dome.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     72                Dome.add(new Instr(Form.ELPS, new Ellipse2D.Double(-36,-36,72,72)));
     73                Dome.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
    7474        }
    7575        public static final Symbol Flagstaff = new Symbol();
    7676        static {
    77                 Flagstaff.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    78                 Flagstaff.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     77                Flagstaff.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
     78                Flagstaff.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    7979                Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(0.0,-150.0); p.moveTo(0.0,-140.0); p.lineTo(40.0,-140.0); p.lineTo(40.0,-100.0); p.lineTo(0.0,-100.0);
    80                 Flagstaff.add(new Instr(Prim.PLIN, p));
     80                Flagstaff.add(new Instr(Form.PLIN, p));
    8181        }
    8282        public static final Symbol FlareStack = new Symbol();
    8383        static {
    84                 FlareStack.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    85                 FlareStack.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     84                FlareStack.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
     85                FlareStack.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    8686                Path2D.Double p = new Path2D.Double(); p.moveTo(-7.8,-6.0); p.lineTo(-7.8,-100.0); p.lineTo(7.8,-100.0); p.lineTo(7.8,-6.0);
    87                 FlareStack.add(new Instr(Prim.PLIN, p));
    88                 FlareStack.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     87                FlareStack.add(new Instr(Form.PLIN, p));
     88                FlareStack.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    8989                p = new Path2D.Double(); p.moveTo(21.6,-169.6); p.curveTo(-22.0,-132.4,-27.4,-103.5,3.0,-100.0); p.curveTo(39.0,-118.0,-4.0,-141.0,21.6,-169.6);
    90                 FlareStack.add(new Instr(Prim.PLIN, p));
     90                FlareStack.add(new Instr(Form.PLIN, p));
    9191        }
    9292        public static final Symbol LandTower = new Symbol();
    9393        static {
    94                 LandTower.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    95                 LandTower.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    96                 LandTower.add(new Instr(Prim.LINE, new Line2D.Double(-25,0,-15,-120)));
    97                 LandTower.add(new Instr(Prim.LINE, new Line2D.Double(25,0,15,-120)));
    98                 LandTower.add(new Instr(Prim.RECT, new Rectangle2D.Double(-15,-150,30,30)));
     94                LandTower.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
     95                LandTower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     96                LandTower.add(new Instr(Form.LINE, new Line2D.Double(-25,0,-15,-120)));
     97                LandTower.add(new Instr(Form.LINE, new Line2D.Double(25,0,15,-120)));
     98                LandTower.add(new Instr(Form.RECT, new Rectangle2D.Double(-15,-150,30,30)));
    9999        }
    100100        public static final Symbol Mast = new Symbol();
    101101        static {
    102                 Mast.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    103                 Mast.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)));
     102                Mast.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
     103                Mast.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)));
    104104                Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(0.0,-150.0); p.lineTo(25.0,0.0);
    105                 Mast.add(new Instr(Prim.PLIN, p));
     105                Mast.add(new Instr(Form.PLIN, p));
    106106        }
    107107        public static final Symbol Monument = new Symbol();
    108108        static {
    109                 Monument.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    110                 Monument.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    111                 Monument.add(new Instr(Prim.LINE, new Line2D.Double(-25,0,-15,-105)));
    112                 Monument.add(new Instr(Prim.LINE, new Line2D.Double(25,0,15,-105)));
    113                 Monument.add(new Instr(Prim.EARC, new Arc2D.Double(-25.0,-150.0,50.0,50.0,233.0,-285.0,Arc2D.OPEN)));
     109                Monument.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
     110                Monument.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     111                Monument.add(new Instr(Form.LINE, new Line2D.Double(-25,0,-15,-105)));
     112                Monument.add(new Instr(Form.LINE, new Line2D.Double(25,0,15,-105)));
     113                Monument.add(new Instr(Form.EARC, new Arc2D.Double(-25.0,-150.0,50.0,50.0,233.0,-285.0,Arc2D.OPEN)));
    114114        }
    115115        public static final Symbol Platform = new Symbol();
    116116        static {
    117                 Platform.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    118                 Platform.add(new Instr(Prim.RECT, new Rectangle2D.Double(-48,-48,96,96)));
    119                 Platform.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
     117                Platform.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     118                Platform.add(new Instr(Form.RECT, new Rectangle2D.Double(-48,-48,96,96)));
     119                Platform.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
    120120        }
    121121        public static final Symbol RadioTV = new Symbol();
    122122        static {
    123                 RadioTV.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)));
    124                 RadioTV.add(new Instr(Prim.EARC, new Arc2D.Double(-30.0,-180.0,60.0,60.0,45.0,-90.0,Arc2D.OPEN)));
    125                 RadioTV.add(new Instr(Prim.EARC, new Arc2D.Double(-45.0,-195.0,90.0,90.0,45.0,-90.0,Arc2D.OPEN)));
    126                 RadioTV.add(new Instr(Prim.EARC, new Arc2D.Double(-30.0,-180.0,60.0,60.0,225.0,-90.0,Arc2D.OPEN)));
    127                 RadioTV.add(new Instr(Prim.EARC, new Arc2D.Double(-45.0,-195.0,90.0,90.0,225.0,-90.0,Arc2D.OPEN)));
     123                RadioTV.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)));
     124                RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-30.0,-180.0,60.0,60.0,45.0,-90.0,Arc2D.OPEN)));
     125                RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-45.0,-195.0,90.0,90.0,45.0,-90.0,Arc2D.OPEN)));
     126                RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-30.0,-180.0,60.0,60.0,225.0,-90.0,Arc2D.OPEN)));
     127                RadioTV.add(new Instr(Form.EARC, new Arc2D.Double(-45.0,-195.0,90.0,90.0,225.0,-90.0,Arc2D.OPEN)));
    128128        }
    129129        public static final Symbol Spire = new Symbol();
    130130        static {
    131                 Spire.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    132                 Spire.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-25,-25,50,50)));
    133                 Spire.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
     131                Spire.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     132                Spire.add(new Instr(Form.ELPS, new Ellipse2D.Double(-25,-25,50,50)));
     133                Spire.add(new Instr(Form.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
    134134        }
    135135        public static final Symbol Minaret = new Symbol();
    136136        static {
    137                 Minaret.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Spire, 1.0, 0, 0, null, null)));
    138                 Minaret.add(new Instr(Prim.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    139                 Minaret.add(new Instr(Prim.LINE, new Line2D.Double(0,-25,0,-50)));
    140                 Minaret.add(new Instr(Prim.STRK, new BasicStroke(6, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    141                 Minaret.add(new Instr(Prim.EARC, new Arc2D.Double(-40.0,-110.0,80.0,60.0,180.0,180.0,Arc2D.OPEN)));
     137                Minaret.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Spire, 1.0, 0, 0, null, null)));
     138                Minaret.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     139                Minaret.add(new Instr(Form.LINE, new Line2D.Double(0,-25,0,-50)));
     140                Minaret.add(new Instr(Form.STRK, new BasicStroke(6, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     141                Minaret.add(new Instr(Form.EARC, new Arc2D.Double(-40.0,-110.0,80.0,60.0,180.0,180.0,Arc2D.OPEN)));
    142142        }
    143143        public static final Symbol Temple = new Symbol();
    144144        static {
    145                 Temple.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    146                 Temple.add(new Instr(Prim.RECT, new Rectangle2D.Double(-25,-15,50,30)));
    147                 Temple.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    148                 Temple.add(new Instr(Prim.LINE, new Line2D.Double(-35,-21,35,21)));
    149                 Temple.add(new Instr(Prim.LINE, new Line2D.Double(-35,21,35,-21)));
     145                Temple.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     146                Temple.add(new Instr(Form.RECT, new Rectangle2D.Double(-25,-15,50,30)));
     147                Temple.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     148                Temple.add(new Instr(Form.LINE, new Line2D.Double(-35,-21,35,21)));
     149                Temple.add(new Instr(Form.LINE, new Line2D.Double(-35,21,35,-21)));
    150150        }
    151151        public static final Symbol WaterTower = new Symbol();
    152152        static {
    153                 WaterTower.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    154                 WaterTower.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    155                 WaterTower.add(new Instr(Prim.LINE, new Line2D.Double(-25,0,-15,-120)));
    156                 WaterTower.add(new Instr(Prim.LINE, new Line2D.Double(25,0,15,-120)));
    157                 WaterTower.add(new Instr(Prim.RECT, new Rectangle2D.Double(-25,-150,50,30)));
     153                WaterTower.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
     154                WaterTower.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     155                WaterTower.add(new Instr(Form.LINE, new Line2D.Double(-25,0,-15,-120)));
     156                WaterTower.add(new Instr(Form.LINE, new Line2D.Double(25,0,15,-120)));
     157                WaterTower.add(new Instr(Form.RECT, new Rectangle2D.Double(-25,-150,50,30)));
    158158        }
    159159        public static final Symbol WindMotor = new Symbol();
    160160        static {
    161                 WindMotor.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    162                 WindMotor.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    163                 WindMotor.add(new Instr(Prim.LINE, new Line2D.Double(0,-10,0,-90)));
    164                 WindMotor.add(new Instr(Prim.LINE, new Line2D.Double(0,-90,30,-90)));
    165                 WindMotor.add(new Instr(Prim.LINE, new Line2D.Double(0,-90,-14,-116.6)));
    166                 WindMotor.add(new Instr(Prim.LINE, new Line2D.Double(0,-90,-14.3,-66.7)));
     161                WindMotor.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
     162                WindMotor.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     163                WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0,-10,0,-90)));
     164                WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0,-90,30,-90)));
     165                WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0,-90,-14,-116.6)));
     166                WindMotor.add(new Instr(Form.LINE, new Line2D.Double(0,-90,-14.3,-66.7)));
    167167        }
    168168        public static final Symbol Windmill = new Symbol();
    169169        static {
    170                 Windmill.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    171                 Windmill.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-12,-12,24,24)));
    172                 Windmill.add(new Instr(Prim.LINE, new Line2D.Double(-30,-42,30,10)));
    173                 Windmill.add(new Instr(Prim.LINE, new Line2D.Double(-30,10,30,-42)));
     170                Windmill.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     171                Windmill.add(new Instr(Form.ELPS, new Ellipse2D.Double(-12,-12,24,24)));
     172                Windmill.add(new Instr(Form.LINE, new Line2D.Double(-30,-42,30,10)));
     173                Windmill.add(new Instr(Form.LINE, new Line2D.Double(-30,10,30,-42)));
    174174        }
    175175        public static final Symbol Windsock = new Symbol();
    176176        static {
    177                 Windsock.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    178                 Windsock.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    179                 Windsock.add(new Instr(Prim.LINE, new Line2D.Double(0,-10,0,-100)));
    180                 Windsock.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    181                 Windsock.add(new Instr(Prim.LINE, new Line2D.Double(0,-100,0,-150)));
    182                 Windsock.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     177                Windsock.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
     178                Windsock.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     179                Windsock.add(new Instr(Form.LINE, new Line2D.Double(0,-10,0,-100)));
     180                Windsock.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     181                Windsock.add(new Instr(Form.LINE, new Line2D.Double(0,-100,0,-150)));
     182                Windsock.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    183183                Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-100.0); p.lineTo(10.0,-100.0); p.lineTo(10.0,-150.0); p.lineTo(0.0,-150.0);
    184184                p.moveTo(10.0,-150.0); p.lineTo(50.0,-145.0); p.lineTo(120.0,-70.0); p.quadTo(120.0,-55.0,105.0,-55.0);
    185185                p.lineTo(55,-95); p.lineTo(40,-102); p.lineTo(10,-100); p.moveTo(40,-102); p.lineTo(50,-120); p.moveTo(55,-95); p.lineTo(75,-97);
    186                 Windsock.add(new Instr(Prim.PLIN, p));
     186                Windsock.add(new Instr(Form.PLIN, p));
    187187        }
    188188       
  • applications/editors/josm/plugins/smed2/src/symbols/Notices.java

    r30033 r30215  
    2727                p.closePath(); p.moveTo(8.4,-4.3); p.curveTo(9.0,-9.3,9.0,-11.4,11.2,-13.0); p.curveTo(12.8,-15.0,12.8,-16.7,11.0,-18.6); p.curveTo(4.0,-22.2,-4.0,-22.2,-11.0,-18.6);
    2828                p.curveTo(-12.8,-16.7,-12.8,-15.0,-11.2,-13.0); p.curveTo(-9.0,-11.3,-8.7,-9.5,-8.4,-6.5); p.closePath();
    29                 Bollard.add(new Instr(Prim.PGON, p));
     29                Bollard.add(new Instr(Form.PGON, p));
    3030        }
    3131        private static final Symbol Motor = new Symbol();
     
    3535                p.curveTo(-5.3,-19.2,-11.6,-18.3,-13.7,-13.7); p.curveTo(-14.3,-12.2,-14.0,-11.2,-12.5,-10.6); p.curveTo(-8.6,-9.6,-5.3,-6.0,-4.0,-3.4); p.curveTo(-5.4,-2.6,-6.2,-2.0,-6.2,0.2);
    3636                p.curveTo(-12.8,-1.0,-17.5,3.7,-17.5,9.3); p.curveTo(-17.5,14.7,-12.6,18.8,-8.0,17.6); p.curveTo(-7.0,17.2,-6.6,16.2,-7.2,14.6); p.curveTo(-7.7,12.4,-7.0,7.7,-5.0,4.3); p.closePath();
    37                 Motor.add(new Instr(Prim.PGON, p));
     37                Motor.add(new Instr(Form.PGON, p));
    3838        }
    3939        private static final Symbol Rowboat = new Symbol();
    4040        static {
    4141                Path2D.Double p = new Path2D.Double(); p.moveTo(-17.5,-2.0); p.lineTo(17.5,-2.0); p.lineTo(15.0,6.0); p.lineTo(-11.0,6.0); p.closePath();
    42                 Rowboat.add(new Instr(Prim.PGON, p));
    43                 Rowboat.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-6,-17.5,6,6)));
    44                 Rowboat.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    45                 Rowboat.add(new Instr(Prim.LINE, new Line2D.Double(-5.5,-9,-8,0)));
    46                 Rowboat.add(new Instr(Prim.LINE, new Line2D.Double(-5.0,10.0,-7.5,14.0)));
    47                 Rowboat.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    48                 Rowboat.add(new Instr(Prim.LINE, new Line2D.Double(-5.5,-9,7,-6.5)));
    49                 Rowboat.add(new Instr(Prim.LINE, new Line2D.Double(7.3,-7.8,-5.0,10.0)));
     42                Rowboat.add(new Instr(Form.PGON, p));
     43                Rowboat.add(new Instr(Form.RSHP, new Ellipse2D.Double(-6,-17.5,6,6)));
     44                Rowboat.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     45                Rowboat.add(new Instr(Form.LINE, new Line2D.Double(-5.5,-9,-8,0)));
     46                Rowboat.add(new Instr(Form.LINE, new Line2D.Double(-5.0,10.0,-7.5,14.0)));
     47                Rowboat.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     48                Rowboat.add(new Instr(Form.LINE, new Line2D.Double(-5.5,-9,7,-6.5)));
     49                Rowboat.add(new Instr(Form.LINE, new Line2D.Double(7.3,-7.8,-5.0,10.0)));
    5050        }
    5151        private static final Symbol Sailboard = new Symbol();
    5252        static {
    5353                Path2D.Double p = new Path2D.Double(); p.moveTo(-6.0,19.0); p.quadTo(-4.0,-5,1.5,-20.0); p.quadTo(14,-7,15.5,6.5); p.quadTo(7,17,-6.0,19.0); p.closePath();
    54                 Sailboard.add(new Instr(Prim.PGON, p));
    55                 Sailboard.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    56                 Sailboard.add(new Instr(Prim.LINE, new Line2D.Double(-2,20,-10,20)));
    57                 Sailboard.add(new Instr(Prim.LINE, new Line2D.Double(-13,2.5,-3,2.5)));
    58                 Sailboard.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-15,-4,5,5)));
    59                 Sailboard.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     54                Sailboard.add(new Instr(Form.PGON, p));
     55                Sailboard.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     56                Sailboard.add(new Instr(Form.LINE, new Line2D.Double(-2,20,-10,20)));
     57                Sailboard.add(new Instr(Form.LINE, new Line2D.Double(-13,2.5,-3,2.5)));
     58                Sailboard.add(new Instr(Form.RSHP, new Ellipse2D.Double(-15,-4,5,5)));
     59                Sailboard.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    6060                p = new Path2D.Double(); p.moveTo(-13,2.5); p.lineTo(-12,6.0); p.lineTo(-12,9.5);
    61                 Sailboard.add(new Instr(Prim.PLIN, p));
    62                 Sailboard.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     61                Sailboard.add(new Instr(Form.PLIN, p));
     62                Sailboard.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    6363                p = new Path2D.Double(); p.moveTo(-12,9.5); p.lineTo(-7.5,13.0); p.lineTo(-6.0,19.0);
    64                 Sailboard.add(new Instr(Prim.PLIN, p));
     64                Sailboard.add(new Instr(Form.PLIN, p));
    6565        }
    6666        private static final Symbol Sailboat = new Symbol();
    6767        static {
    6868                Path2D.Double p = new Path2D.Double(); p.moveTo(3.75,-20.5); p.lineTo(3.75,8.5); p.lineTo(-19.5,8.5); p.closePath();
    69                 Sailboat.add(new Instr(Prim.PGON, p));
     69                Sailboat.add(new Instr(Form.PGON, p));
    7070                p = new Path2D.Double(); p.moveTo(-19.5,12.0); p.lineTo(19.5,12.0); p.lineTo(13.0,20.5); p.lineTo(-16.0,20.5); p.closePath();
    71                 Sailboat.add(new Instr(Prim.PGON, p));
     71                Sailboat.add(new Instr(Form.PGON, p));
    7272        }
    7373        private static final Symbol Slipway = new Symbol();
     
    7575                Path2D.Double p = new Path2D.Double(); p.moveTo(-17,-5.5); p.lineTo(-13.5,0); p.lineTo(4,-1.5); p.quadTo(18,-5,20,-13.5); p.closePath();
    7676                p.moveTo(-14,7); p.lineTo(-14,11); p.lineTo(20,11); p.lineTo(20,2); p.closePath();
    77                 Slipway.add(new Instr(Prim.PGON, p));
    78                 Slipway.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    79                 Slipway.add(new Instr(Prim.LINE, new Line2D.Double(-14,3,20,-2.5)));
    80                 Slipway.add(new Instr(Prim.STRK, new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    81                 Slipway.add(new Instr(Prim.ELPS, new Ellipse2D.Double(1,1.5,3,3)));
     77                Slipway.add(new Instr(Form.PGON, p));
     78                Slipway.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     79                Slipway.add(new Instr(Form.LINE, new Line2D.Double(-14,3,20,-2.5)));
     80                Slipway.add(new Instr(Form.STRK, new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     81                Slipway.add(new Instr(Form.ELPS, new Ellipse2D.Double(1,1.5,3,3)));
    8282                p = new Path2D.Double(); p.moveTo(-21,8.5); p.curveTo(-17.5, 5, -17.5, 12, -13, 7.2);
    83                 Slipway.add(new Instr(Prim.PLIN, p));
     83                Slipway.add(new Instr(Form.PLIN, p));
    8484        }
    8585        private static final Symbol Speedboat = new Symbol();
    8686        static {
    87                 Speedboat.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    88                 Speedboat.add(new Instr(Prim.LINE, new Line2D.Double(-21,0,-17,-1)));
     87                Speedboat.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     88                Speedboat.add(new Instr(Form.LINE, new Line2D.Double(-21,0,-17,-1)));
    8989                Path2D.Double p = new Path2D.Double(); p.moveTo(-17.5,8.5); p.curveTo(-10.5,13,-2.5,2,4,6); p.curveTo(12,2,11.5,9.5,20,6);
    90                 Speedboat.add(new Instr(Prim.PLIN, p));
     90                Speedboat.add(new Instr(Form.PLIN, p));
    9191                p = new Path2D.Double(); p.moveTo(-18.5,1.5); p.lineTo(-16,6); p.curveTo(-9, 9.0, -3.5, -2.0, 4.5, 3.5); p.lineTo(14.5,0); p.quadTo(19, -3, 19.5, -9);
    9292                p.lineTo(9.5,-6); p.lineTo(6.5,-8); p.lineTo(2.5,-4); p.closePath();
    93                 Speedboat.add(new Instr(Prim.PGON, p));
    94                 Speedboat.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-1.5,-13,5,5)));
    95                 Speedboat.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    96                 Speedboat.add(new Instr(Prim.LINE, new Line2D.Double(-2,-7,-5,0)));
    97                 Speedboat.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    98                 Speedboat.add(new Instr(Prim.LINE, new Line2D.Double(-2,-7,5,-5)));
     93                Speedboat.add(new Instr(Form.PGON, p));
     94                Speedboat.add(new Instr(Form.RSHP, new Ellipse2D.Double(-1.5,-13,5,5)));
     95                Speedboat.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     96                Speedboat.add(new Instr(Form.LINE, new Line2D.Double(-2,-7,-5,0)));
     97                Speedboat.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     98                Speedboat.add(new Instr(Form.LINE, new Line2D.Double(-2,-7,5,-5)));
    9999        }
    100100        private static final Symbol Turn = new Symbol();
    101101        static {
    102                 Turn.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    103                 Turn.add(new Instr(Prim.EARC, new Arc2D.Double(-9.0,-9.0,18.0,18.0,270.0,230.0,Arc2D.OPEN)));
    104                 Turn.add(new Instr(Prim.EARC, new Arc2D.Double(-20.0,-20.0,40.0,40.0,315.0,-280.0,Arc2D.OPEN)));
     102                Turn.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     103                Turn.add(new Instr(Form.EARC, new Arc2D.Double(-9.0,-9.0,18.0,18.0,270.0,230.0,Arc2D.OPEN)));
     104                Turn.add(new Instr(Form.EARC, new Arc2D.Double(-20.0,-20.0,40.0,40.0,315.0,-280.0,Arc2D.OPEN)));
    105105                Path2D.Double p = new Path2D.Double(); p.moveTo(21.8,-7.0); p.lineTo(18.8,-18.2); p.lineTo(10.5,-10.0); p.closePath();
    106106                p.moveTo(-12.9,0.7); p.lineTo(-1.7,-2.3); p.lineTo(-9.9,-10.5); p.closePath();
    107                 Turn.add(new Instr(Prim.PGON, p));
     107                Turn.add(new Instr(Form.PGON, p));
    108108        }
    109109        private static final Symbol Waterbike = new Symbol();
    110110        static {
    111111                Path2D.Double p = new Path2D.Double(); p.moveTo(-17.5,13); p.curveTo(-10.5,17.5,-2.5,6.5,4,10.5); p.curveTo(12,6.5,11.5,14,20,10.5);
    112                 Waterbike.add(new Instr(Prim.PLIN, p));
     112                Waterbike.add(new Instr(Form.PLIN, p));
    113113                p = new Path2D.Double(); p.moveTo(-16.5,9.5); p.lineTo(-16,10.5); p.curveTo(-9, 13.5, -3.5, 2.5, 4.5, 8); p.quadTo(15, 4, 19.5, -4); p.closePath();
    114114                p.moveTo(19.5,-5); p.lineTo(1, -5); p.lineTo(-4.5, -10); p.lineTo(-5.5, -10); p.lineTo(2, -2); p.lineTo(-15, 4); p.lineTo(-16, 8); p.closePath();
    115                 Waterbike.add(new Instr(Prim.PGON, p));
    116                 Waterbike.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     115                Waterbike.add(new Instr(Form.PGON, p));
     116                Waterbike.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    117117                p = new Path2D.Double(); p.moveTo(-7,1); p.lineTo(-7.5,-1.5); p.lineTo(-12.5,-3.5); p.lineTo(-11.5,-10.5);
    118                 Waterbike.add(new Instr(Prim.PLIN, p));
    119                 Waterbike.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    120                 Waterbike.add(new Instr(Prim.LINE, new Line2D.Double(-11.5,-10.5,-3,-8.5)));
    121                 Waterbike.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-11.5,-18,5,5)));
     118                Waterbike.add(new Instr(Form.PLIN, p));
     119                Waterbike.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     120                Waterbike.add(new Instr(Form.LINE, new Line2D.Double(-11.5,-10.5,-3,-8.5)));
     121                Waterbike.add(new Instr(Form.RSHP, new Ellipse2D.Double(-11.5,-18,5,5)));
    122122        }
    123123        private static final Symbol Waterski = new Symbol();
    124124        static {
    125                 Waterski.add(new Instr(Prim.RSHP, new Ellipse2D.Double(12,-18,6,6)));
    126                 Waterski.add(new Instr(Prim.STRK, new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    127                 Waterski.add(new Instr(Prim.LINE, new Line2D.Double(-18,-6,0,-6)));
    128                 Waterski.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     125                Waterski.add(new Instr(Form.RSHP, new Ellipse2D.Double(12,-18,6,6)));
     126                Waterski.add(new Instr(Form.STRK, new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     127                Waterski.add(new Instr(Form.LINE, new Line2D.Double(-18,-6,0,-6)));
     128                Waterski.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    129129                Path2D.Double p = new Path2D.Double(); p.moveTo(6.5,17.5); p.lineTo(-13,14.5); p.curveTo(-15,14.25,-16.0,13.6,-17.5,12.0);
    130                 Waterski.add(new Instr(Prim.PLIN, p));
    131                 Waterski.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
     130                Waterski.add(new Instr(Form.PLIN, p));
     131                Waterski.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    132132                p = new Path2D.Double(); p.moveTo(-1.5,-4.0); p.lineTo(14,-7.5); p.lineTo(9.5,3.5); p.lineTo(2.0,6.0); p.lineTo(-4.4,15.8);
    133                 Waterski.add(new Instr(Prim.PLIN, p));
     133                Waterski.add(new Instr(Form.PLIN, p));
    134134        }
    135135        private static final Symbol NoticeA = new Symbol();
    136136        static {
    137                 NoticeA.add(new Instr(Prim.FILL, new Color(0xe80000)));
    138                 NoticeA.add(new Instr(Prim.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    139                 NoticeA.add(new Instr(Prim.FILL, Color.white));
    140                 NoticeA.add(new Instr(Prim.RSHP, new Rectangle2D.Double(-21,-21,42,42)));
    141                 NoticeA.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    142                 NoticeA.add(new Instr(Prim.FILL, new Color(0xe80000)));
    143                 NoticeA.add(new Instr(Prim.LINE, new Line2D.Double(-25,-25,25,25)));
    144                 NoticeA.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    145                 NoticeA.add(new Instr(Prim.FILL, Color.black));
    146                 NoticeA.add(new Instr(Prim.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     137                NoticeA.add(new Instr(Form.FILL, new Color(0xe80000)));
     138                NoticeA.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     139                NoticeA.add(new Instr(Form.FILL, Color.white));
     140                NoticeA.add(new Instr(Form.RSHP, new Rectangle2D.Double(-21,-21,42,42)));
     141                NoticeA.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     142                NoticeA.add(new Instr(Form.FILL, new Color(0xe80000)));
     143                NoticeA.add(new Instr(Form.LINE, new Line2D.Double(-25,-25,25,25)));
     144                NoticeA.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     145                NoticeA.add(new Instr(Form.FILL, Color.black));
     146                NoticeA.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    147147        }
    148148        private static final Symbol NoticeB = new Symbol();
    149149        static {
    150                 NoticeB.add(new Instr(Prim.FILL, new Color(0xe80000)));
    151                 NoticeB.add(new Instr(Prim.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    152                 NoticeB.add(new Instr(Prim.FILL, Color.white));
    153                 NoticeB.add(new Instr(Prim.RSHP, new Rectangle2D.Double(-21,-21,42,42)));
    154                 NoticeB.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    155                 NoticeB.add(new Instr(Prim.FILL, Color.black));
    156                 NoticeB.add(new Instr(Prim.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     150                NoticeB.add(new Instr(Form.FILL, new Color(0xe80000)));
     151                NoticeB.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     152                NoticeB.add(new Instr(Form.FILL, Color.white));
     153                NoticeB.add(new Instr(Form.RSHP, new Rectangle2D.Double(-21,-21,42,42)));
     154                NoticeB.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     155                NoticeB.add(new Instr(Form.FILL, Color.black));
     156                NoticeB.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    157157        }
    158158        private static final Symbol NoticeE = new Symbol();
    159159        static {
    160                 NoticeE.add(new Instr(Prim.FILL, new Color(0x0000a0)));
    161                 NoticeE.add(new Instr(Prim.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    162                 NoticeE.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    163                 NoticeE.add(new Instr(Prim.FILL, Color.black));
    164                 NoticeE.add(new Instr(Prim.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    165                 NoticeE.add(new Instr(Prim.FILL, Color.white));
     160                NoticeE.add(new Instr(Form.FILL, new Color(0x0000a0)));
     161                NoticeE.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     162                NoticeE.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     163                NoticeE.add(new Instr(Form.FILL, Color.black));
     164                NoticeE.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     165                NoticeE.add(new Instr(Form.FILL, Color.white));
    166166        }
    167167        public static final Symbol Notice = new Symbol();
    168168        static {
    169                 Notice.add(new Instr(Prim.FILL, new Color(0xe80000)));
    170                 Notice.add(new Instr(Prim.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    171                 Notice.add(new Instr(Prim.FILL, new Color(0x0000a0)));
    172                 Notice.add(new Instr(Prim.RSHP, new Rectangle2D.Double(-21,-21,42,42)));
    173                 Notice.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    174                 Notice.add(new Instr(Prim.FILL, Color.black));
    175                 Notice.add(new Instr(Prim.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     169                Notice.add(new Instr(Form.FILL, new Color(0xe80000)));
     170                Notice.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     171                Notice.add(new Instr(Form.FILL, new Color(0x0000a0)));
     172                Notice.add(new Instr(Form.RSHP, new Rectangle2D.Double(-21,-21,42,42)));
     173                Notice.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     174                Notice.add(new Instr(Form.FILL, Color.black));
     175                Notice.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    176176        }
    177177        public static final Symbol NoticeA1 = new Symbol();
    178178        static {
    179                 NoticeA1.add(new Instr(Prim.FILL, new Color(0xe80000)));
    180                 NoticeA1.add(new Instr(Prim.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    181                 NoticeA1.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    182                 NoticeA1.add(new Instr(Prim.FILL, Color.white));
    183                 NoticeA1.add(new Instr(Prim.RSHP, new Rectangle2D.Double(-30,-10,60,20)));
    184                 NoticeA1.add(new Instr(Prim.FILL, Color.black));
    185                 NoticeA1.add(new Instr(Prim.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     179                NoticeA1.add(new Instr(Form.FILL, new Color(0xe80000)));
     180                NoticeA1.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     181                NoticeA1.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     182                NoticeA1.add(new Instr(Form.FILL, Color.white));
     183                NoticeA1.add(new Instr(Form.RSHP, new Rectangle2D.Double(-30,-10,60,20)));
     184                NoticeA1.add(new Instr(Form.FILL, Color.black));
     185                NoticeA1.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    186186        }
    187187        public static final Symbol NoticeA1a = new Symbol();
    188188        static {
    189                 NoticeA1a.add(new Instr(Prim.FILL, new Color(0xe80000)));
    190                 NoticeA1a.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-30,-30,60,60)));
    191                 NoticeA1a.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    192                 NoticeA1a.add(new Instr(Prim.FILL, Color.white));
    193                 NoticeA1a.add(new Instr(Prim.RSHP, new Rectangle2D.Double(-29,-10,58,20)));
    194                 NoticeA1a.add(new Instr(Prim.FILL, Color.black));
    195                 NoticeA1a.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-30,-30,60,60)));
     189                NoticeA1a.add(new Instr(Form.FILL, new Color(0xe80000)));
     190                NoticeA1a.add(new Instr(Form.RSHP, new Ellipse2D.Double(-30,-30,60,60)));
     191                NoticeA1a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     192                NoticeA1a.add(new Instr(Form.FILL, Color.white));
     193                NoticeA1a.add(new Instr(Form.RSHP, new Rectangle2D.Double(-29,-10,58,20)));
     194                NoticeA1a.add(new Instr(Form.FILL, Color.black));
     195                NoticeA1a.add(new Instr(Form.ELPS, new Ellipse2D.Double(-30,-30,60,60)));
    196196        }
    197197        public static final Symbol NoticeA2 = new Symbol();
    198198        static {
    199                 NoticeA2.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    200                 NoticeA2.add(new Instr(Prim.FILL, Color.black));
     199                NoticeA2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     200                NoticeA2.add(new Instr(Form.FILL, Color.black));
    201201                Path2D.Double p = new Path2D.Double(); p.moveTo(-10,23); p.lineTo(-10,0); p.lineTo(-6,0); p.lineTo(-12.5,-8); p.lineTo(-19,0); p.lineTo(-15,0); p.lineTo(-15,23);
    202202                p.closePath(); p.moveTo(10,8); p.lineTo(10,-15); p.lineTo(6,-15); p.lineTo(12.5,-23); p.lineTo(19,-15); p.lineTo(15,-15); p.lineTo(15,8); p.closePath();
    203                 NoticeA2.add(new Instr(Prim.PGON, p));
     203                NoticeA2.add(new Instr(Form.PGON, p));
    204204        }
    205205        public static final Symbol NoticeA3 = new Symbol();
    206206        static {
    207                 NoticeA3.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA2, 1.0, 0, 0, null, null)));
     207                NoticeA3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA2, 1.0, 0, 0, null, null)));
    208208                Path2D.Double p = new Path2D.Double(); p.moveTo(-10,12); p.lineTo(-6,12); p.lineTo(-12.5,4); p.lineTo(-19,12);
    209209                p.closePath(); p.moveTo(10,-3); p.lineTo(6,-3); p.lineTo(12.5,-11); p.lineTo(19,-3); p.closePath();
    210                 NoticeA3.add(new Instr(Prim.PGON, p));
     210                NoticeA3.add(new Instr(Form.PGON, p));
    211211        }
    212212        public static final Symbol NoticeA4 = new Symbol();
    213213        static {
    214                 NoticeA4.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    215                 NoticeA4.add(new Instr(Prim.FILL, Color.black));
     214                NoticeA4.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     215                NoticeA4.add(new Instr(Form.FILL, Color.black));
    216216                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);
    217217                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();
    218                 NoticeA4.add(new Instr(Prim.PGON, p));
     218                NoticeA4.add(new Instr(Form.PGON, p));
    219219        }
    220220        public static final Symbol NoticeA4_1 = new Symbol();
    221221        static {
    222                 NoticeA4_1.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA4, 1.0, 0, 0, null, null)));
     222                NoticeA4_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA4, 1.0, 0, 0, null, null)));
    223223                Path2D.Double p = new Path2D.Double(); p.moveTo(-10,-4); p.lineTo(-6,-4); p.lineTo(-12.5,4); p.lineTo(-19,-4);
    224224                p.closePath(); p.moveTo(10,5); p.lineTo(6,5); p.lineTo(12.5,-3); p.lineTo(19,5); p.closePath();
    225                 NoticeA4_1.add(new Instr(Prim.PGON, p));
     225                NoticeA4_1.add(new Instr(Form.PGON, p));
    226226        }
    227227        public static final Symbol NoticeA5 = new Symbol();
    228228        static {
    229                 NoticeA5.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     229                NoticeA5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    230230                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); p.moveTo(-5.3,14.6); p.lineTo(-5.3,4.0); p.lineTo(0.0,4.0); p.curveTo(4.2,4.0,7.4,3.5,9.4,0.0);
    231231                p.curveTo(11.4,-2.8,11.4,-7.2,9.4,-10.5); p.curveTo(7.4,-13.6,4.2,-14.0,0.0,-14.0); p.lineTo(-11.0,-14.0); p.lineTo(-11.0,14.6); p.closePath();
    232232                p.moveTo(-5.3,-1.0); p.lineTo(0.0,-1.0); p.curveTo(6.5,-1.0,6.5,-9.0,0.0,-9.0); p.lineTo(-5.3,-9.0); p.closePath();
    233                 NoticeA5.add(new Instr(Prim.PGON, p));
     233                NoticeA5.add(new Instr(Form.PGON, p));
    234234        }
    235235        public static final Symbol NoticeA5_1 = new Symbol();
    236236        static {
    237                 NoticeA5_1.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     237                NoticeA5_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    238238        }
    239239        public static final Symbol NoticeA6 = new Symbol();
    240240        static {
    241                 NoticeA6.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    242                 NoticeA6.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0))))));
     241                NoticeA6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     242                NoticeA6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0))))));
    243243        }
    244244        public static final Symbol NoticeA7 = new Symbol();
    245245        static {
    246                 NoticeA7.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    247                 NoticeA7.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Bollard, 1.0, 0, 0, null, null)));
     246                NoticeA7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     247                NoticeA7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Bollard, 1.0, 0, 0, null, null)));
    248248        }
    249249        public static final Symbol NoticeA8 = new Symbol();
    250250        static {
    251                 NoticeA8.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    252                 NoticeA8.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Turn, 1.0, 0, 0, null, null)));
     251                NoticeA8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     252                NoticeA8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Turn, 1.0, 0, 0, null, null)));
    253253        }
    254254        public static final Symbol NoticeA9 = new Symbol();
    255255        static {
    256                 NoticeA9.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    257                 NoticeA9.add(new Instr(Prim.STRK, new BasicStroke(7, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    258                 NoticeA9.add(new Instr(Prim.FILL, Color.black));
     256                NoticeA9.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     257                NoticeA9.add(new Instr(Form.STRK, new BasicStroke(7, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     258                NoticeA9.add(new Instr(Form.FILL, Color.black));
    259259                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);
    260260                p.moveTo(-23,-3); p.curveTo(-11,-3,-12,-9,0,-9); p.curveTo(12,-9,11,-3,23,-3);
    261                 NoticeA9.add(new Instr(Prim.PLIN, p));
     261                NoticeA9.add(new Instr(Form.PLIN, p));
    262262        }
    263263        public static final Symbol NoticeA10a = new Symbol();
    264264        static {
    265                 NoticeA10a.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    266                 NoticeA10a.add(new Instr(Prim.FILL, Color.white));
     265                NoticeA10a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     266                NoticeA10a.add(new Instr(Form.FILL, Color.white));
    267267                Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(30,0); p.lineTo(0,30); p.closePath();
    268                 NoticeA10a.add(new Instr(Prim.PGON, p));
    269                 NoticeA10a.add(new Instr(Prim.FILL, new Color(0xe80000)));
     268                NoticeA10a.add(new Instr(Form.PGON, p));
     269                NoticeA10a.add(new Instr(Form.FILL, new Color(0xe80000)));
    270270                p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,0); p.lineTo(0,30); p.closePath();
    271                 NoticeA10a.add(new Instr(Prim.PGON, p));
    272                 NoticeA10a.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    273                 NoticeA10a.add(new Instr(Prim.FILL, Color.black));
     271                NoticeA10a.add(new Instr(Form.PGON, p));
     272                NoticeA10a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     273                NoticeA10a.add(new Instr(Form.FILL, Color.black));
    274274                p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,0); p.lineTo(0,30); p.lineTo(30,0); p.closePath();
    275                 NoticeA10a.add(new Instr(Prim.PLIN, p));
     275                NoticeA10a.add(new Instr(Form.PLIN, p));
    276276        }
    277277        public static final Symbol NoticeA10b = new Symbol();
    278278        static {
    279                 NoticeA10b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA10a, 1.0, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0))))));
     279                NoticeA10b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA10a, 1.0, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0))))));
    280280        }
    281281        public static final Symbol NoticeA12 = new Symbol();
    282282        static {
    283                 NoticeA12.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    284                 NoticeA12.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Motor, 1.0, 0, 0, null, null)));
     283                NoticeA12.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     284                NoticeA12.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Motor, 1.0, 0, 0, null, null)));
    285285        }
    286286        public static final Symbol NoticeA13 = new Symbol();
    287287        static {
    288                 NoticeA13.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    289                 NoticeA13.add(new Instr(Prim.TEXT, new Caption("SPORT", new Font("Arial", Font.BOLD, 15), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 5)))));
     288                NoticeA13.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     289                NoticeA13.add(new Instr(Form.TEXT, new Caption("SPORT", new Font("Arial", Font.BOLD, 15), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 5)))));
    290290        }
    291291        public static final Symbol NoticeA14 = new Symbol();
    292292        static {
    293                 NoticeA14.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    294                 NoticeA14.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Waterski, 1.0, 0, 0, null, null)));
     293                NoticeA14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     294                NoticeA14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterski, 1.0, 0, 0, null, null)));
    295295        }
    296296        public static final Symbol NoticeA15 = new Symbol();
    297297        static {
    298                 NoticeA15.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    299                 NoticeA15.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Sailboat, 1.0, 0, 0, null, null)));
     298                NoticeA15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     299                NoticeA15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboat, 1.0, 0, 0, null, null)));
    300300        }
    301301        public static final Symbol NoticeA16 = new Symbol();
    302302        static {
    303                 NoticeA16.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    304                 NoticeA16.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Rowboat, 1.0, 0, 0, null, null)));
     303                NoticeA16.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     304                NoticeA16.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Rowboat, 1.0, 0, 0, null, null)));
    305305        }
    306306        public static final Symbol NoticeA17 = new Symbol();
    307307        static {
    308                 NoticeA17.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    309                 NoticeA17.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Sailboard, 1.0, 0, 0, null, null)));
     308                NoticeA17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     309                NoticeA17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboard, 1.0, 0, 0, null, null)));
    310310        }
    311311        public static final Symbol NoticeA18 = new Symbol();
    312312        static {
    313                 NoticeA18.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    314                 NoticeA18.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Speedboat, 1.0, 0, 0, null, null)));
     313                NoticeA18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     314                NoticeA18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Speedboat, 1.0, 0, 0, null, null)));
    315315        }
    316316        public static final Symbol NoticeA19 = new Symbol();
    317317        static {
    318                 NoticeA19.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    319                 NoticeA19.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Slipway, 1.0, 0, 0, null, null)));
     318                NoticeA19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     319                NoticeA19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Slipway, 1.0, 0, 0, null, null)));
    320320        }
    321321        public static final Symbol NoticeA20 = new Symbol();
    322322        static {
    323                 NoticeA20.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
    324                 NoticeA20.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Waterbike, 1.0, 0, 0, null, null)));
     323                NoticeA20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeA, 1.0, 0, 0, null, null)));
     324                NoticeA20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterbike, 1.0, 0, 0, null, null)));
    325325        }
    326326        public static final Symbol NoticeB1a = new Symbol();
    327327        static {
    328                 NoticeB1a.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     328                NoticeB1a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    329329                Path2D.Double p = new Path2D.Double(); p.moveTo(21,8); p.lineTo(-8,8); p.lineTo(-8,18); p.lineTo(-21,0);
    330330                p.lineTo(-8,-18); p.lineTo(-8,-8); p.lineTo(21,-8); p.closePath();
    331                 NoticeB1a.add(new Instr(Prim.PGON, p));
     331                NoticeB1a.add(new Instr(Form.PGON, p));
    332332        }
    333333        public static final Symbol NoticeB1b = new Symbol();
    334334        static {
    335                 NoticeB1b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     335                NoticeB1b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    336336                Path2D.Double p = new Path2D.Double(); p.moveTo(-21,8); p.lineTo(8,8); p.lineTo(8,18); p.lineTo(21,0);
    337337                p.lineTo(8,-18); p.lineTo(8,-8); p.lineTo(-21,-8); p.closePath();
    338                 NoticeB1b.add(new Instr(Prim.PGON, p));
     338                NoticeB1b.add(new Instr(Form.PGON, p));
    339339        }
    340340        public static final Symbol NoticeB2a = new Symbol();
    341341        static {
    342                 NoticeB2a.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    343                 NoticeB2a.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     342                NoticeB2a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     343                NoticeB2a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    344344                Path2D.Double p = new Path2D.Double(); p.moveTo(18,21); p.lineTo(18,10); p.lineTo(-15,-10); p.lineTo(-15,-15);
    345                 NoticeB2a.add(new Instr(Prim.PLIN, p));
     345                NoticeB2a.add(new Instr(Form.PLIN, p));
    346346                p = new Path2D.Double(); p.moveTo(-15,-21); p.lineTo(-21,-15); p.lineTo(-9,-15); p.closePath();
    347                 NoticeB2a.add(new Instr(Prim.PGON, p));
     347                NoticeB2a.add(new Instr(Form.PGON, p));
    348348        }
    349349        public static final Symbol NoticeB2b = new Symbol();
    350350        static {
    351                 NoticeB2b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    352                 NoticeB2b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    353                 NoticeB2b.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     351                NoticeB2b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     352                NoticeB2b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     353                NoticeB2b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    354354                Path2D.Double p = new Path2D.Double(); p.moveTo(-18,21); p.lineTo(-18,10); p.lineTo(15,-10); p.lineTo(15,-15);
    355                 NoticeB2b.add(new Instr(Prim.PLIN, p));
     355                NoticeB2b.add(new Instr(Form.PLIN, p));
    356356                p = new Path2D.Double(); p.moveTo(15,-21); p.lineTo(21,-15); p.lineTo(9,-15); p.closePath();
    357                 NoticeB2b.add(new Instr(Prim.PGON, p));
     357                NoticeB2b.add(new Instr(Form.PGON, p));
    358358        }
    359359        public static final Symbol NoticeB3a = new Symbol();
    360360        static {
    361                 NoticeB3a.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    362                 NoticeB3a.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    363                 NoticeB3a.add(new Instr(Prim.LINE, new Line2D.Double(-15,21,-15,-15)));
     361                NoticeB3a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     362                NoticeB3a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     363                NoticeB3a.add(new Instr(Form.LINE, new Line2D.Double(-15,21,-15,-15)));
    364364                Path2D.Double p = new Path2D.Double(); p.moveTo(-15,-21); p.lineTo(-21,-15); p.lineTo(-9,-15); p.closePath();
    365                 NoticeB3a.add(new Instr(Prim.PGON, p));
    366                 NoticeB3a.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f)));
    367                 NoticeB3a.add(new Instr(Prim.LINE, new Line2D.Double(15,-21,15,15)));
     365                NoticeB3a.add(new Instr(Form.PGON, p));
     366                NoticeB3a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f)));
     367                NoticeB3a.add(new Instr(Form.LINE, new Line2D.Double(15,-21,15,15)));
    368368                p = new Path2D.Double(); p.moveTo(15,21); p.lineTo(21,15); p.lineTo(9,15); p.closePath();
    369                 NoticeB3a.add(new Instr(Prim.PGON, p));
     369                NoticeB3a.add(new Instr(Form.PGON, p));
    370370        }
    371371        public static final Symbol NoticeB3b = new Symbol();
    372372        static {
    373                 NoticeB3b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    374                 NoticeB3b.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    375                 NoticeB3b.add(new Instr(Prim.LINE, new Line2D.Double(15,21,15,-15)));
     373                NoticeB3b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     374                NoticeB3b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     375                NoticeB3b.add(new Instr(Form.LINE, new Line2D.Double(15,21,15,-15)));
    376376                Path2D.Double p = new Path2D.Double(); p.moveTo(15,-21); p.lineTo(21,-15); p.lineTo(9,-15); p.closePath();
    377                 NoticeB3b.add(new Instr(Prim.PGON, p));
    378                 NoticeB3b.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f)));
    379                 NoticeB3b.add(new Instr(Prim.LINE, new Line2D.Double(-15,-21,-15,15)));
     377                NoticeB3b.add(new Instr(Form.PGON, p));
     378                NoticeB3b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f)));
     379                NoticeB3b.add(new Instr(Form.LINE, new Line2D.Double(-15,-21,-15,15)));
    380380                p = new Path2D.Double(); p.moveTo(-15,21); p.lineTo(-21,15); p.lineTo(-9,15); p.closePath();
    381                 NoticeB3b.add(new Instr(Prim.PGON, p));
     381                NoticeB3b.add(new Instr(Form.PGON, p));
    382382        }
    383383        public static final Symbol NoticeB4a = new Symbol();
    384384        static {
    385                 NoticeB4a.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB2a, 1.0, 0, 0, null, null)));
    386                 NoticeB4a.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f)));
     385                NoticeB4a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB2a, 1.0, 0, 0, null, null)));
     386                NoticeB4a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f)));
    387387                Path2D.Double p = new Path2D.Double(); p.moveTo(18,-21); p.lineTo(18,-10); p.lineTo(-15,10); p.lineTo(-15,15);
    388                 NoticeB4a.add(new Instr(Prim.PLIN, p));
     388                NoticeB4a.add(new Instr(Form.PLIN, p));
    389389                p = new Path2D.Double(); p.moveTo(-15,21); p.lineTo(-21,15); p.lineTo(-9,15); p.closePath();
    390                 NoticeB4a.add(new Instr(Prim.PGON, p));
     390                NoticeB4a.add(new Instr(Form.PGON, p));
    391391        }
    392392        public static final Symbol NoticeB4b = new Symbol();
    393393        static {
    394                 NoticeB4b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB2b, 1.0, 0, 0, null, null)));
    395                 NoticeB4b.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f)));
     394                NoticeB4b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB2b, 1.0, 0, 0, null, null)));
     395                NoticeB4b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, new float[] { 5.5f, 2.4f }, 0.0f)));
    396396                Path2D.Double p = new Path2D.Double(); p.moveTo(-18,-21); p.lineTo(-18,-10); p.lineTo(15,10); p.lineTo(15,15);
    397                 NoticeB4b.add(new Instr(Prim.PLIN, p));
     397                NoticeB4b.add(new Instr(Form.PLIN, p));
    398398                p = new Path2D.Double(); p.moveTo(15,21); p.lineTo(21,15); p.lineTo(9,15); p.closePath();
    399                 NoticeB4b.add(new Instr(Prim.PGON, p));
     399                NoticeB4b.add(new Instr(Form.PGON, p));
    400400        }
    401401        public static final Symbol NoticeB5 = new Symbol();
    402402        static {
    403                 NoticeB5.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    404                 NoticeB5.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    405                 NoticeB5.add(new Instr(Prim.LINE, new Line2D.Double(15,0,-15,0)));
     403                NoticeB5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     404                NoticeB5.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     405                NoticeB5.add(new Instr(Form.LINE, new Line2D.Double(15,0,-15,0)));
    406406        }
    407407        public static final Symbol NoticeB6 = new Symbol();
    408408        static {
    409                 NoticeB6.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     409                NoticeB6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    410410        }
    411411        public static final Symbol NoticeB7 = new Symbol();
    412412        static {
    413                 NoticeB7.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    414                 NoticeB7.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-10,-10,20,20)));
     413                NoticeB7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     414                NoticeB7.add(new Instr(Form.RSHP, new Ellipse2D.Double(-10,-10,20,20)));
    415415        }
    416416        public static final Symbol NoticeB8 = new Symbol();
    417417        static {
    418                 NoticeB8.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    419                 NoticeB8.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    420                 NoticeB8.add(new Instr(Prim.LINE, new Line2D.Double(0,15,0,-15)));
     418                NoticeB8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     419                NoticeB8.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     420                NoticeB8.add(new Instr(Form.LINE, new Line2D.Double(0,15,0,-15)));
    421421        }
    422422        public static final Symbol NoticeB9a = new Symbol();
    423423        static {
    424                 NoticeB9a.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    425                 NoticeB9a.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    426                 NoticeB9a.add(new Instr(Prim.LINE, new Line2D.Double(-21,0,21,0)));
    427                 NoticeB9a.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    428                 NoticeB9a.add(new Instr(Prim.LINE, new Line2D.Double(0,21,0,0)));
     424                NoticeB9a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     425                NoticeB9a.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     426                NoticeB9a.add(new Instr(Form.LINE, new Line2D.Double(-21,0,21,0)));
     427                NoticeB9a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     428                NoticeB9a.add(new Instr(Form.LINE, new Line2D.Double(0,21,0,0)));
    429429        }
    430430        public static final Symbol NoticeB9b = new Symbol();
    431431        static {
    432                 NoticeB9b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    433                 NoticeB9b.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    434                 NoticeB9b.add(new Instr(Prim.LINE, new Line2D.Double(-21,0,21,0)));
    435                 NoticeB9b.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    436                 NoticeB9b.add(new Instr(Prim.LINE, new Line2D.Double(0,21,0,-21)));
     432                NoticeB9b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     433                NoticeB9b.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     434                NoticeB9b.add(new Instr(Form.LINE, new Line2D.Double(-21,0,21,0)));
     435                NoticeB9b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     436                NoticeB9b.add(new Instr(Form.LINE, new Line2D.Double(0,21,0,-21)));
    437437        }
    438438        public static final Symbol NoticeB11 = new Symbol();
    439439        static {
    440                 NoticeB11.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    441                 NoticeB11.add(new Instr(Prim.TEXT, new Caption("VHF", new Font("Arial", Font.BOLD, 20), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 0)))));
     440                NoticeB11.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     441                NoticeB11.add(new Instr(Form.TEXT, new Caption("VHF", new Font("Arial", Font.BOLD, 20), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 0)))));
    442442        }
    443443        public static final Symbol NoticeC1 = new Symbol();
    444444        static {
    445                 NoticeC1.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     445                NoticeC1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    446446                Path2D.Double p = new Path2D.Double(); p.moveTo(-15,21); p.lineTo(0,12); p.lineTo(15,21); p.closePath();
    447                 NoticeC1.add(new Instr(Prim.PGON, p));
     447                NoticeC1.add(new Instr(Form.PGON, p));
    448448        }
    449449        public static final Symbol NoticeC2 = new Symbol();
    450450        static {
    451                 NoticeC2.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     451                NoticeC2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    452452                Path2D.Double p = new Path2D.Double(); p.moveTo(-15,-21); p.lineTo(0,-12); p.lineTo(15,-21); p.closePath();
    453                 NoticeC2.add(new Instr(Prim.PGON, p));
     453                NoticeC2.add(new Instr(Form.PGON, p));
    454454        }
    455455        public static final Symbol NoticeC3 = new Symbol();
    456456        static {
    457                 NoticeC3.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     457                NoticeC3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    458458                Path2D.Double p = new Path2D.Double(); p.moveTo(21,-15); p.lineTo(12,0); p.lineTo(21,15); p.closePath();
    459459                p.moveTo(-21,-15); p.lineTo(-12,0); p.lineTo(-21,15); p.closePath();
    460                 NoticeC3.add(new Instr(Prim.PGON, p));
     460                NoticeC3.add(new Instr(Form.PGON, p));
    461461        }
    462462        public static final Symbol NoticeC4 = new Symbol();
    463463        static {
    464                 NoticeC4.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     464                NoticeC4.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    465465        }
    466466        public static final Symbol NoticeC5a = new Symbol();
    467467        static {
    468                 NoticeC5a.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     468                NoticeC5a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    469469                Path2D.Double p = new Path2D.Double(); p.moveTo(-21,-21); p.lineTo(10,-21); p.lineTo(21,0);     p.lineTo(10,21);        p.lineTo(-21,21); p.closePath();
    470                 NoticeC5a.add(new Instr(Prim.PGON, p));
     470                NoticeC5a.add(new Instr(Form.PGON, p));
    471471        }
    472472        public static final Symbol NoticeC5b = new Symbol();
    473473        static {
    474                 NoticeC5b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
     474                NoticeC5b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeB, 1.0, 0, 0, null, null)));
    475475                Path2D.Double p = new Path2D.Double(); p.moveTo(21,-21); p.lineTo(-10,-21); p.lineTo(-21,0);    p.lineTo(-10,21);       p.lineTo(21,21); p.closePath();
    476                 NoticeC5b.add(new Instr(Prim.PGON, p));
     476                NoticeC5b.add(new Instr(Form.PGON, p));
    477477        }
    478478        public static final Symbol NoticeD1a = new Symbol();
    479479        static {
    480                 NoticeD1a.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    481                 NoticeD1a.add(new Instr(Prim.FILL, Color.yellow));
     480                NoticeD1a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     481                NoticeD1a.add(new Instr(Form.FILL, Color.yellow));
    482482                Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,0); p.lineTo(0,30); p.lineTo(30,0); p.closePath();
    483                 NoticeD1a.add(new Instr(Prim.PGON, p));
    484                 NoticeD1a.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    485                 NoticeD1a.add(new Instr(Prim.FILL, Color.black));
    486                 NoticeD1a.add(new Instr(Prim.PLIN, p));
     483                NoticeD1a.add(new Instr(Form.PGON, p));
     484                NoticeD1a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     485                NoticeD1a.add(new Instr(Form.FILL, Color.black));
     486                NoticeD1a.add(new Instr(Form.PLIN, p));
    487487        }
    488488        public static final Symbol NoticeD1b = new Symbol();
    489489        static {
    490                 NoticeD1b.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    491                 NoticeD1b.add(new Instr(Prim.FILL, Color.yellow));
     490                NoticeD1b.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     491                NoticeD1b.add(new Instr(Form.FILL, Color.yellow));
    492492                Path2D.Double p = new Path2D.Double(); p.moveTo(-30,0); p.lineTo(-15,15); p.lineTo(15,-15); p.lineTo(30,0);     p.lineTo(15,15); p.lineTo(-15,-15); p.closePath();
    493                 NoticeD1b.add(new Instr(Prim.PGON, p));
    494                 NoticeD1b.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    495                 NoticeD1b.add(new Instr(Prim.FILL, Color.black));
    496                 NoticeD1b.add(new Instr(Prim.PLIN, p));
     493                NoticeD1b.add(new Instr(Form.PGON, p));
     494                NoticeD1b.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     495                NoticeD1b.add(new Instr(Form.FILL, Color.black));
     496                NoticeD1b.add(new Instr(Form.PLIN, p));
    497497        }
    498498        public static final Symbol NoticeD2a = new Symbol();
    499499        static {
    500                 NoticeD2a.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    501                 NoticeD2a.add(new Instr(Prim.FILL, Color.white));
     500                NoticeD2a.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     501                NoticeD2a.add(new Instr(Form.FILL, Color.white));
    502502                Path2D.Double p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(30,0); p.lineTo(0,30); p.closePath();
    503                 NoticeD2a.add(new Instr(Prim.PGON, p));
    504                 NoticeD2a.add(new Instr(Prim.FILL, new Color(0x00e800)));
     503                NoticeD2a.add(new Instr(Form.PGON, p));
     504                NoticeD2a.add(new Instr(Form.FILL, new Color(0x00e800)));
    505505                p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(30,0); p.lineTo(0,30); p.closePath();
    506                 NoticeD2a.add(new Instr(Prim.PGON, p));
    507                 NoticeD2a.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    508                 NoticeD2a.add(new Instr(Prim.FILL, Color.black));
     506                NoticeD2a.add(new Instr(Form.PGON, p));
     507                NoticeD2a.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     508                NoticeD2a.add(new Instr(Form.FILL, Color.black));
    509509                p = new Path2D.Double(); p.moveTo(0,-30); p.lineTo(-30,0); p.lineTo(0,30); p.lineTo(30,0); p.closePath();
    510                 NoticeD2a.add(new Instr(Prim.PLIN, p));
     510                NoticeD2a.add(new Instr(Form.PLIN, p));
    511511        }
    512512        public static final Symbol NoticeD2b = new Symbol();
    513513        static {
    514                 NoticeD2b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeD2a, 1.0, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0))))));
     514                NoticeD2b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeD2a, 1.0, 0, 0, null, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180.0))))));
    515515        }
    516516        public static final Symbol NoticeD3a = new Symbol();
    517517        static {
    518                 NoticeD3a.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     518                NoticeD3a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    519519                Path2D.Double p = new Path2D.Double(); p.moveTo(28,10); p.lineTo(-10,10); p.lineTo(-10,20); p.lineTo(-28,0);
    520520                p.lineTo(-10,-20); p.lineTo(-10,-10); p.lineTo(28,-10); p.closePath();
    521                 NoticeD3a.add(new Instr(Prim.PGON, p));
     521                NoticeD3a.add(new Instr(Form.PGON, p));
    522522        }
    523523        public static final Symbol NoticeD3b = new Symbol();
    524524        static {
    525                 NoticeD3b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     525                NoticeD3b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    526526                Path2D.Double p = new Path2D.Double(); p.moveTo(-28,10); p.lineTo(10,10); p.lineTo(10,20); p.lineTo(28,0);
    527527                p.lineTo(10,-20); p.lineTo(10,-10); p.lineTo(-28,-10); p.closePath();
    528                 NoticeD3b.add(new Instr(Prim.PGON, p));
     528                NoticeD3b.add(new Instr(Form.PGON, p));
    529529        }
    530530        public static final Symbol NoticeE1 = new Symbol();
    531531        static {
    532                 NoticeE1.add(new Instr(Prim.FILL, new Color(0x00e800)));
    533                 NoticeE1.add(new Instr(Prim.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    534                 NoticeE1.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    535                 NoticeE1.add(new Instr(Prim.FILL, Color.white));
    536                 NoticeE1.add(new Instr(Prim.RSHP, new Rectangle2D.Double(-10,-30,20,60)));
    537                 NoticeE1.add(new Instr(Prim.FILL, Color.black));
    538                 NoticeE1.add(new Instr(Prim.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     532                NoticeE1.add(new Instr(Form.FILL, new Color(0x00e800)));
     533                NoticeE1.add(new Instr(Form.RSHP, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
     534                NoticeE1.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     535                NoticeE1.add(new Instr(Form.FILL, Color.white));
     536                NoticeE1.add(new Instr(Form.RSHP, new Rectangle2D.Double(-10,-30,20,60)));
     537                NoticeE1.add(new Instr(Form.FILL, Color.black));
     538                NoticeE1.add(new Instr(Form.RRCT, new RoundRectangle2D.Double(-30,-30,60,60,4,4)));
    539539        }
    540540        public static final Symbol NoticeE2 = new Symbol();
    541541        static {
    542                 NoticeE2.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     542                NoticeE2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    543543                Path2D.Double p = new Path2D.Double(); p.moveTo(5,-25); p.lineTo(-10,-1); p.lineTo(10,-1); p.lineTo(-10,20);
    544544                p.lineTo(-7,20); p.lineTo(-12,25); p.lineTo(-16,20); p.lineTo(-13,20); p.lineTo(4,1); p.lineTo(-14,1);
    545545                p.lineTo(2,-25); p.closePath();
    546                 NoticeE2.add(new Instr(Prim.PGON, p));
     546                NoticeE2.add(new Instr(Form.PGON, p));
    547547        }
    548548        public static final Symbol NoticeE3 = new Symbol();
    549549        static {
    550                 NoticeE3.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    551                 NoticeE3.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    552                 NoticeE3.add(new Instr(Prim.LINE, new Line2D.Double(25,-20,25,20)));
    553                 NoticeE3.add(new Instr(Prim.LINE, new Line2D.Double(-25,-20,-25,20)));
    554                 NoticeE3.add(new Instr(Prim.LINE, new Line2D.Double(-15,-15,-15,20)));
    555                 NoticeE3.add(new Instr(Prim.LINE, new Line2D.Double(-5,-15,-5,20)));
    556                 NoticeE3.add(new Instr(Prim.LINE, new Line2D.Double(5,-15,5,20)));
    557                 NoticeE3.add(new Instr(Prim.LINE, new Line2D.Double(15,-15,15,20)));
    558                 NoticeE3.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    559                 NoticeE3.add(new Instr(Prim.LINE, new Line2D.Double(-26,18.5,26,18.5)));
    560                 NoticeE3.add(new Instr(Prim.LINE, new Line2D.Double(-26,-15,26,-15)));
     550                NoticeE3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     551                NoticeE3.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     552                NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(25,-20,25,20)));
     553                NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-25,-20,-25,20)));
     554                NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-15,-15,-15,20)));
     555                NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-5,-15,-5,20)));
     556                NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(5,-15,5,20)));
     557                NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(15,-15,15,20)));
     558                NoticeE3.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     559                NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-26,18.5,26,18.5)));
     560                NoticeE3.add(new Instr(Form.LINE, new Line2D.Double(-26,-15,26,-15)));
    561561        }
    562562        public static final Symbol NoticeE4a = new Symbol();
    563563        static {
    564                 NoticeE4a.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     564                NoticeE4a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    565565                Path2D.Double p = new Path2D.Double(); p.moveTo(-20,-10); p.lineTo(-5,-10); p.lineTo(-5,-20); p.lineTo(5,-20); p.lineTo(5,-10);
    566566                p.lineTo(20,-10); p.lineTo(15,0); p.lineTo(-15,0); p.closePath();
    567567                p.moveTo(-25,5); p.lineTo(25,5); p.lineTo(25,10); p.lineTo(-25,10); p.closePath();
    568                 NoticeE4a.add(new Instr(Prim.PGON, p));
     568                NoticeE4a.add(new Instr(Form.PGON, p));
    569569        }
    570570        public static final Symbol NoticeE4b = new Symbol();
    571571        static {
    572                 NoticeE4b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     572                NoticeE4b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    573573                Path2D.Double p = new Path2D.Double(); p.moveTo(-20,0); p.lineTo(-5,0); p.lineTo(-5,-10); p.lineTo(5,-10); p.lineTo(5,0);
    574574                p.lineTo(20,0); p.lineTo(15,10); p.lineTo(-15,10); p.closePath();
    575                 NoticeE4b.add(new Instr(Prim.PGON, p));
     575                NoticeE4b.add(new Instr(Form.PGON, p));
    576576        }
    577577        public static final Symbol NoticeE5 = new Symbol();
    578578        static {
    579                 NoticeE5.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     579                NoticeE5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    580580                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); p.moveTo(-5.3,14.6); p.lineTo(-5.3,4.0); p.lineTo(0.0,4.0); p.curveTo(4.2,4.0,7.4,3.5,9.4,0.0);
    581581                p.curveTo(11.4,-2.8,11.4,-7.2,9.4,-10.5); p.curveTo(7.4,-13.6,4.2,-14.0,0.0,-14.0); p.lineTo(-11.0,-14.0); p.lineTo(-11.0,14.6); p.closePath();
    582582                p.moveTo(-5.3,-1.0); p.lineTo(0.0,-1.0); p.curveTo(6.5,-1.0,6.5,-9.0,0.0,-9.0); p.lineTo(-5.3,-9.0); p.closePath();
    583                 NoticeE5.add(new Instr(Prim.PGON, p));
     583                NoticeE5.add(new Instr(Form.PGON, p));
    584584        }
    585585        public static final Symbol NoticeE5_1 = new Symbol();
    586586        static {
    587                 NoticeE5_1.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     587                NoticeE5_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    588588        }
    589589        public static final Symbol NoticeE5_2 = new Symbol();
    590590        static {
    591                 NoticeE5_2.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     591                NoticeE5_2.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    592592        }
    593593        public static final Symbol NoticeE5_3 = new Symbol();
    594594        static {
    595                 NoticeE5_3.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     595                NoticeE5_3.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    596596        }
    597597        public static final Symbol NoticeE5_4 = new Symbol();
    598598        static {
    599                 NoticeE5_4.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     599                NoticeE5_4.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    600600                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    601601                p.moveTo(-28,25); p.lineTo(0,-28); p.lineTo(28,25); p.closePath();
    602                 NoticeE5_4.add(new Instr(Prim.PGON, p));
     602                NoticeE5_4.add(new Instr(Form.PGON, p));
    603603        }
    604604        public static final Symbol NoticeE5_5 = new Symbol();
    605605        static {
    606                 NoticeE5_5.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     606                NoticeE5_5.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    607607                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    608608                p.moveTo(-28,25); p.lineTo(0,-28); p.lineTo(28,25); p.closePath();
    609609                p.moveTo(0,24); p.lineTo(-15,2); p.lineTo(15,2); p.closePath();
    610                 NoticeE5_5.add(new Instr(Prim.PGON, p));
     610                NoticeE5_5.add(new Instr(Form.PGON, p));
    611611        }
    612612        public static final Symbol NoticeE5_6 = new Symbol();
    613613        static {
    614                 NoticeE5_6.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     614                NoticeE5_6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    615615                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    616616                p.moveTo(-28,25); p.lineTo(0,-28); p.lineTo(28,25); p.closePath();
    617617                p.moveTo(0,7); p.lineTo(-10,-8); p.lineTo(10,-8); p.closePath();
    618618                p.moveTo(0,24); p.lineTo(-10,9); p.lineTo(10,9); p.closePath();
    619                 NoticeE5_6.add(new Instr(Prim.PGON, p));
     619                NoticeE5_6.add(new Instr(Form.PGON, p));
    620620        }
    621621        public static final Symbol NoticeE5_7 = new Symbol();
    622622        static {
    623                 NoticeE5_7.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     623                NoticeE5_7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    624624                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    625625                p.moveTo(-28,25); p.lineTo(0,-28); p.lineTo(28,25); p.closePath();
     
    627627                p.moveTo(0,11); p.lineTo(-8,1); p.lineTo(8,1); p.closePath();
    628628                p.moveTo(0,23); p.lineTo(-8,13); p.lineTo(8,13); p.closePath();
    629                 NoticeE5_7.add(new Instr(Prim.PGON, p));
     629                NoticeE5_7.add(new Instr(Form.PGON, p));
    630630        }
    631631        public static final Symbol NoticeE5_8 = new Symbol();
    632632        static {
    633                 NoticeE5_8.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     633                NoticeE5_8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    634634                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    635635                p.moveTo(-28,-25); p.lineTo(0,28); p.lineTo(28,-25); p.closePath();
    636                 NoticeE5_8.add(new Instr(Prim.PGON, p));
     636                NoticeE5_8.add(new Instr(Form.PGON, p));
    637637        }
    638638        public static final Symbol NoticeE5_9 = new Symbol();
    639639        static {
    640                 NoticeE5_9.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     640                NoticeE5_9.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    641641                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    642642                p.moveTo(-28,-25); p.lineTo(0,28); p.lineTo(28,-25); p.closePath();
    643643                p.moveTo(0,8); p.lineTo(-15,-14); p.lineTo(15,-14); p.closePath();
    644                 NoticeE5_9.add(new Instr(Prim.PGON, p));
     644                NoticeE5_9.add(new Instr(Form.PGON, p));
    645645        }
    646646        public static final Symbol NoticeE5_10 = new Symbol();
    647647        static {
    648                 NoticeE5_10.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     648                NoticeE5_10.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    649649                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    650650                p.moveTo(-28,-25); p.lineTo(0,28); p.lineTo(28,-25); p.closePath();
    651651                p.moveTo(0,-5); p.lineTo(-10,-20); p.lineTo(10,-20); p.closePath();
    652652                p.moveTo(0,15); p.lineTo(-10,0); p.lineTo(10,0); p.closePath();
    653                 NoticeE5_10.add(new Instr(Prim.PGON, p));
     653                NoticeE5_10.add(new Instr(Form.PGON, p));
    654654        }
    655655        public static final Symbol NoticeE5_11 = new Symbol();
    656656        static {
    657                 NoticeE5_11.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     657                NoticeE5_11.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    658658                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    659659                p.moveTo(-28,-25); p.lineTo(0,28); p.lineTo(28,-25); p.closePath();
     
    661661                p.moveTo(0,3); p.lineTo(-8,-7); p.lineTo(8,-7); p.closePath();
    662662                p.moveTo(0,18); p.lineTo(-8,8); p.lineTo(8,8); p.closePath();
    663                 NoticeE5_11.add(new Instr(Prim.PGON, p));
     663                NoticeE5_11.add(new Instr(Form.PGON, p));
    664664        }
    665665        public static final Symbol NoticeE5_12 = new Symbol();
    666666        static {
    667                 NoticeE5_12.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     667                NoticeE5_12.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    668668                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    669669                p.moveTo(-28,0); p.lineTo(0,28); p.lineTo(28,0); p.lineTo(0,-28); p.closePath();
    670                 NoticeE5_12.add(new Instr(Prim.PGON, p));
     670                NoticeE5_12.add(new Instr(Form.PGON, p));
    671671        }
    672672        public static final Symbol NoticeE5_13 = new Symbol();
    673673        static {
    674                 NoticeE5_13.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     674                NoticeE5_13.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    675675                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    676676                p.moveTo(-28,0); p.lineTo(0,28); p.lineTo(28,0); p.lineTo(0,-28); p.closePath();
    677677                p.moveTo(0,15); p.lineTo(-15,-7); p.lineTo(15,-7); p.closePath();
    678                 NoticeE5_13.add(new Instr(Prim.PGON, p));
     678                NoticeE5_13.add(new Instr(Form.PGON, p));
    679679        }
    680680        public static final Symbol NoticeE5_14 = new Symbol();
    681681        static {
    682                 NoticeE5_14.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     682                NoticeE5_14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    683683                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    684684                p.moveTo(-28,0); p.lineTo(0,28); p.lineTo(28,0); p.lineTo(0,-28); p.closePath();
    685685                p.moveTo(0,0); p.lineTo(-10,-15); p.lineTo(10,-15); p.closePath();
    686686                p.moveTo(0,20); p.lineTo(-10,5); p.lineTo(10,5); p.closePath();
    687                 NoticeE5_14.add(new Instr(Prim.PGON, p));
     687                NoticeE5_14.add(new Instr(Form.PGON, p));
    688688        }
    689689        public static final Symbol NoticeE5_15 = new Symbol();
    690690        static {
    691                 NoticeE5_15.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     691                NoticeE5_15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    692692                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    693693                p.moveTo(-28,0); p.lineTo(0,28); p.lineTo(28,0); p.lineTo(0,-28); p.closePath();
     
    695695                p.moveTo(0,8); p.lineTo(-8,-2); p.lineTo(8,-2); p.closePath();
    696696                p.moveTo(0,23); p.lineTo(-8,13); p.lineTo(8,13); p.closePath();
    697                 NoticeE5_15.add(new Instr(Prim.PGON, p));
     697                NoticeE5_15.add(new Instr(Form.PGON, p));
    698698        }
    699699        public static final Symbol NoticeE6 = new Symbol();
    700700        static {
    701                 NoticeE6.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    702                 NoticeE6.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, null, null)));
     701                NoticeE6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     702                NoticeE6.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.4, 0, 0, null, null)));
    703703        }
    704704        public static final Symbol NoticeE7 = new Symbol();
    705705        static {
    706                 NoticeE7.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    707                 NoticeE7.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Bollard, 1.0, 0, 0, null, null)));
     706                NoticeE7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     707                NoticeE7.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Bollard, 1.0, 0, 0, null, null)));
    708708        }
    709709        public static final Symbol NoticeE7_1 = new Symbol();
    710710        static {
    711                 NoticeE7_1.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    712                 NoticeE7_1.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    713                 NoticeE7_1.add(new Instr(Prim.LINE, new Line2D.Double(20,25,20,-10)));
    714                 NoticeE7_1.add(new Instr(Prim.LINE, new Line2D.Double(22,-8,-15,-20)));
    715                 NoticeE7_1.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    716                 NoticeE7_1.add(new Instr(Prim.LINE, new Line2D.Double(20,8,0,-15)));
     711                NoticeE7_1.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     712                NoticeE7_1.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     713                NoticeE7_1.add(new Instr(Form.LINE, new Line2D.Double(20,25,20,-10)));
     714                NoticeE7_1.add(new Instr(Form.LINE, new Line2D.Double(22,-8,-15,-20)));
     715                NoticeE7_1.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     716                NoticeE7_1.add(new Instr(Form.LINE, new Line2D.Double(20,8,0,-15)));
    717717                Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
    718718                p.moveTo(-17,2); p.quadTo(-5,0,7,2); p.lineTo(9,12); p.lineTo(7,20); p.lineTo(6,20); p.lineTo(6,23); p.lineTo(3,23); p.lineTo(3,20);
    719719                p.quadTo(-5,22,-13,20); p.lineTo(-13,23); p.lineTo(-16,23); p.lineTo(-16,20); p.lineTo(-17,20); p.lineTo(-19,12); p.closePath();
    720720                p.moveTo(-15,4); p.quadTo(-3,2,5,4); p.lineTo(6,11); p.quadTo(-5,9,-16,11); p.closePath();
    721                 NoticeE7_1.add(new Instr(Prim.PGON, p));
    722                 NoticeE7_1.add(new Instr(Prim.FILL, new Color(0x0000a0)));
    723                 NoticeE7_1.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-16,13,4,4)));
    724                 NoticeE7_1.add(new Instr(Prim.RSHP, new Ellipse2D.Double(2,13,4,4)));
     721                NoticeE7_1.add(new Instr(Form.PGON, p));
     722                NoticeE7_1.add(new Instr(Form.FILL, new Color(0x0000a0)));
     723                NoticeE7_1.add(new Instr(Form.RSHP, new Ellipse2D.Double(-16,13,4,4)));
     724                NoticeE7_1.add(new Instr(Form.RSHP, new Ellipse2D.Double(2,13,4,4)));
    725725        }
    726726        public static final Symbol NoticeE8 = new Symbol();
    727727        static {
    728                 NoticeE8.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    729                 NoticeE8.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Turn, 1.0, 0, 0, null, null)));
     728                NoticeE8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     729                NoticeE8.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Turn, 1.0, 0, 0, null, null)));
    730730        }
    731731        public static final Symbol NoticeE9a = new Symbol();
    732732        static {
    733                 NoticeE9a.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    734                 NoticeE9a.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    735                 NoticeE9a.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-29)));
    736                 NoticeE9a.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    737                 NoticeE9a.add(new Instr(Prim.LINE, new Line2D.Double(-29,0,29,0)));
     733                NoticeE9a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     734                NoticeE9a.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     735                NoticeE9a.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-29)));
     736                NoticeE9a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     737                NoticeE9a.add(new Instr(Form.LINE, new Line2D.Double(-29,0,29,0)));
    738738        }
    739739        public static final Symbol NoticeE9b = new Symbol();
    740740        static {
    741                 NoticeE9b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    742                 NoticeE9b.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    743                 NoticeE9b.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-29)));
    744                 NoticeE9b.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    745                 NoticeE9b.add(new Instr(Prim.LINE, new Line2D.Double(-2,0,29,0)));
     741                NoticeE9b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     742                NoticeE9b.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     743                NoticeE9b.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-29)));
     744                NoticeE9b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     745                NoticeE9b.add(new Instr(Form.LINE, new Line2D.Double(-2,0,29,0)));
    746746        }
    747747        public static final Symbol NoticeE9c = new Symbol();
    748748        static {
    749                 NoticeE9c.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    750                 NoticeE9c.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    751                 NoticeE9c.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-29)));
    752                 NoticeE9c.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    753                 NoticeE9c.add(new Instr(Prim.LINE, new Line2D.Double(2,0,-29,0)));
     749                NoticeE9c.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     750                NoticeE9c.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     751                NoticeE9c.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-29)));
     752                NoticeE9c.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     753                NoticeE9c.add(new Instr(Form.LINE, new Line2D.Double(2,0,-29,0)));
    754754        }
    755755        public static final Symbol NoticeE9d = new Symbol();
    756756        static {
    757                 NoticeE9d.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    758                 NoticeE9d.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    759                 NoticeE9d.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-4)));
    760                 NoticeE9d.add(new Instr(Prim.LINE, new Line2D.Double(-4,0,29,0)));
    761                 NoticeE9d.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    762                 NoticeE9d.add(new Instr(Prim.LINE, new Line2D.Double(0,-29,0,2)));
     757                NoticeE9d.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     758                NoticeE9d.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     759                NoticeE9d.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4)));
     760                NoticeE9d.add(new Instr(Form.LINE, new Line2D.Double(-4,0,29,0)));
     761                NoticeE9d.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     762                NoticeE9d.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,2)));
    763763        }
    764764        public static final Symbol NoticeE9e = new Symbol();
    765765        static {
    766                 NoticeE9e.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    767                 NoticeE9e.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    768                 NoticeE9e.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-4)));
    769                 NoticeE9e.add(new Instr(Prim.LINE, new Line2D.Double(4,0,-29,0)));
    770                 NoticeE9e.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    771                 NoticeE9e.add(new Instr(Prim.LINE, new Line2D.Double(0,-29,0,2)));
     766                NoticeE9e.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     767                NoticeE9e.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     768                NoticeE9e.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4)));
     769                NoticeE9e.add(new Instr(Form.LINE, new Line2D.Double(4,0,-29,0)));
     770                NoticeE9e.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     771                NoticeE9e.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,2)));
    772772        }
    773773        public static final Symbol NoticeE9f = new Symbol();
    774774        static {
    775                 NoticeE9f.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    776                 NoticeE9f.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    777                 NoticeE9f.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-4)));
    778                 NoticeE9f.add(new Instr(Prim.LINE, new Line2D.Double(-4,0,29,0)));
    779                 NoticeE9f.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    780                 NoticeE9f.add(new Instr(Prim.LINE, new Line2D.Double(2,0,-29,0)));
     775                NoticeE9f.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     776                NoticeE9f.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     777                NoticeE9f.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4)));
     778                NoticeE9f.add(new Instr(Form.LINE, new Line2D.Double(-4,0,29,0)));
     779                NoticeE9f.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     780                NoticeE9f.add(new Instr(Form.LINE, new Line2D.Double(2,0,-29,0)));
    781781        }
    782782        public static final Symbol NoticeE9g = new Symbol();
    783783        static {
    784                 NoticeE9g.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    785                 NoticeE9g.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    786                 NoticeE9g.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-4)));
    787                 NoticeE9g.add(new Instr(Prim.LINE, new Line2D.Double(4,0,-29,0)));
    788                 NoticeE9g.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    789                 NoticeE9g.add(new Instr(Prim.LINE, new Line2D.Double(-2,0,29,0)));
     784                NoticeE9g.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     785                NoticeE9g.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     786                NoticeE9g.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4)));
     787                NoticeE9g.add(new Instr(Form.LINE, new Line2D.Double(4,0,-29,0)));
     788                NoticeE9g.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     789                NoticeE9g.add(new Instr(Form.LINE, new Line2D.Double(-2,0,29,0)));
    790790        }
    791791        public static final Symbol NoticeE9h = new Symbol();
    792792        static {
    793                 NoticeE9h.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    794                 NoticeE9h.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    795                 NoticeE9h.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-4)));
    796                 NoticeE9h.add(new Instr(Prim.LINE, new Line2D.Double(-4,0,29,0)));
    797                 NoticeE9h.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    798                 NoticeE9h.add(new Instr(Prim.LINE, new Line2D.Double(0,-29,0,2)));
    799                 NoticeE9h.add(new Instr(Prim.LINE, new Line2D.Double(2,0,-29,0)));
     793                NoticeE9h.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     794                NoticeE9h.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     795                NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4)));
     796                NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(-4,0,29,0)));
     797                NoticeE9h.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     798                NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,2)));
     799                NoticeE9h.add(new Instr(Form.LINE, new Line2D.Double(2,0,-29,0)));
    800800        }
    801801        public static final Symbol NoticeE9i = new Symbol();
    802802        static {
    803                 NoticeE9i.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    804                 NoticeE9i.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    805                 NoticeE9i.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-4)));
    806                 NoticeE9i.add(new Instr(Prim.LINE, new Line2D.Double(4,0,-29,0)));
    807                 NoticeE9i.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    808                 NoticeE9i.add(new Instr(Prim.LINE, new Line2D.Double(0,-29,0,2)));
    809                 NoticeE9i.add(new Instr(Prim.LINE, new Line2D.Double(-2,0,29,0)));
     803                NoticeE9i.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     804                NoticeE9i.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     805                NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-4)));
     806                NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(4,0,-29,0)));
     807                NoticeE9i.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     808                NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,2)));
     809                NoticeE9i.add(new Instr(Form.LINE, new Line2D.Double(-2,0,29,0)));
    810810        }
    811811        public static final Symbol NoticeE10a = new Symbol();
    812812        static {
    813                 NoticeE10a.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    814                 NoticeE10a.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    815                 NoticeE10a.add(new Instr(Prim.LINE, new Line2D.Double(-29,0,29,0)));
    816                 NoticeE10a.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    817                 NoticeE10a.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-29)));
     813                NoticeE10a.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     814                NoticeE10a.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     815                NoticeE10a.add(new Instr(Form.LINE, new Line2D.Double(-29,0,29,0)));
     816                NoticeE10a.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     817                NoticeE10a.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-29)));
    818818        }
    819819        public static final Symbol NoticeE10b = new Symbol();
    820820        static {
    821                 NoticeE10b.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    822                 NoticeE10b.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    823                 NoticeE10b.add(new Instr(Prim.LINE, new Line2D.Double(-29,0,29,0)));
    824                 NoticeE10b.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    825                 NoticeE10b.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-2)));
     821                NoticeE10b.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     822                NoticeE10b.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     823                NoticeE10b.add(new Instr(Form.LINE, new Line2D.Double(-29,0,29,0)));
     824                NoticeE10b.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     825                NoticeE10b.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-2)));
    826826        }
    827827        public static final Symbol NoticeE10c = new Symbol();
    828828        static {
    829                 NoticeE10c.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    830                 NoticeE10c.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    831                 NoticeE10c.add(new Instr(Prim.LINE, new Line2D.Double(0,-29,0,4)));
    832                 NoticeE10c.add(new Instr(Prim.LINE, new Line2D.Double(-4,0,29,0)));
    833                 NoticeE10c.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    834                 NoticeE10c.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-2)));
     829                NoticeE10c.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     830                NoticeE10c.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     831                NoticeE10c.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,4)));
     832                NoticeE10c.add(new Instr(Form.LINE, new Line2D.Double(-4,0,29,0)));
     833                NoticeE10c.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     834                NoticeE10c.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-2)));
    835835        }
    836836        public static final Symbol NoticeE10d = new Symbol();
    837837        static {
    838                 NoticeE10d.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    839                 NoticeE10d.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    840                 NoticeE10d.add(new Instr(Prim.LINE, new Line2D.Double(0,-29,0,4)));
    841                 NoticeE10d.add(new Instr(Prim.LINE, new Line2D.Double(4,0,-29,0)));
    842                 NoticeE10d.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    843                 NoticeE10d.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-2)));
     838                NoticeE10d.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     839                NoticeE10d.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     840                NoticeE10d.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,4)));
     841                NoticeE10d.add(new Instr(Form.LINE, new Line2D.Double(4,0,-29,0)));
     842                NoticeE10d.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     843                NoticeE10d.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-2)));
    844844        }
    845845        public static final Symbol NoticeE10e = new Symbol();
    846846        static {
    847         NoticeE10e.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    848         NoticeE10e.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    849         NoticeE10e.add(new Instr(Prim.LINE, new Line2D.Double(0,-29,0,4)));
    850         NoticeE10e.add(new Instr(Prim.LINE, new Line2D.Double(-4,0,29,0)));
    851         NoticeE10e.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    852         NoticeE10e.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-2)));
    853         NoticeE10e.add(new Instr(Prim.LINE, new Line2D.Double(2,0,-29,0)));
     847        NoticeE10e.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     848        NoticeE10e.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     849        NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,4)));
     850        NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(-4,0,29,0)));
     851        NoticeE10e.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     852        NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-2)));
     853        NoticeE10e.add(new Instr(Form.LINE, new Line2D.Double(2,0,-29,0)));
    854854        }
    855855        public static final Symbol NoticeE10f = new Symbol();
    856856        static {
    857                 NoticeE10f.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    858                 NoticeE10f.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    859                 NoticeE10f.add(new Instr(Prim.LINE, new Line2D.Double(0,-29,0,4)));
    860                 NoticeE10f.add(new Instr(Prim.LINE, new Line2D.Double(4,0,-29,0)));
    861                 NoticeE10f.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    862                 NoticeE10f.add(new Instr(Prim.LINE, new Line2D.Double(0,29,0,-2)));
    863                 NoticeE10f.add(new Instr(Prim.LINE, new Line2D.Double(-2,0,29,0)));
     857                NoticeE10f.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     858                NoticeE10f.add(new Instr(Form.STRK, new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     859                NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(0,-29,0,4)));
     860                NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(4,0,-29,0)));
     861                NoticeE10f.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     862                NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(0,29,0,-2)));
     863                NoticeE10f.add(new Instr(Form.LINE, new Line2D.Double(-2,0,29,0)));
    864864        }
    865865        public static final Symbol NoticeE11 = new Symbol();
    866866        static {
    867                 NoticeE11.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    868                 NoticeE11.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
    869                 NoticeE11.add(new Instr(Prim.LINE, new Line2D.Double(-27,-27,27,27)));
     867                NoticeE11.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     868                NoticeE11.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     869                NoticeE11.add(new Instr(Form.LINE, new Line2D.Double(-27,-27,27,27)));
    870870        }
    871871        public static final Symbol NoticeE13 = new Symbol();
    872872        static {
    873                 NoticeE13.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     873                NoticeE13.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    874874                Path2D.Double p = new Path2D.Double(); p.moveTo(-4,-16); p.lineTo(9,-16); p.lineTo(9,-14); p.lineTo(3.5,-14); p.lineTo(3.5,-7); p.lineTo(5,-7);
    875875                p.lineTo(5,1); p.lineTo(6.5,1); p.lineTo(6.5,5); p.lineTo(17.5,5); p.lineTo(17.5,1); p.lineTo(19,1); p.lineTo(19,15); p.lineTo(17.5,15);
     
    877877                p.quadTo(-13.5,10,-13.5,16); p.lineTo(-19,16); p.quadTo(-19,5,-9,5); p.lineTo(-2,5); p.lineTo(-2,1); p.lineTo(0,1); p.lineTo(0,-7);
    878878                p.lineTo(1.5,-7); p.lineTo(1.5,-14); p.lineTo(-4,-14); p.closePath();
    879                 NoticeE13.add(new Instr(Prim.PGON, p));
     879                NoticeE13.add(new Instr(Form.PGON, p));
    880880        }
    881881        public static final Symbol NoticeE14 = new Symbol();
    882882        static {
    883                 NoticeE14.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     883                NoticeE14.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    884884                Path2D.Double p = new Path2D.Double(); p.moveTo(-18,-18); p.lineTo(-11,-7); p.lineTo(-9,-10); p.lineTo(-14,-18); p.closePath();
    885885                p.moveTo(9.5,7); p.lineTo(22.5,9); p.lineTo(21.5,5.5); p.lineTo(12,4); p.closePath();
    886886                p.moveTo(-19,-16.5); p.lineTo(-13,-6.5); p.quadTo(-15.5,-2,-12.5,0); p.lineTo(4,11); p.quadTo(7,13,10,9); p.lineTo(21.5,11);
    887887                p.curveTo(15.5,23,1,18.5,-9,12); p.curveTo(-18,6,-28.5,-7,-19,-16.5); p.closePath();
    888                 NoticeE14.add(new Instr(Prim.PGON, p));
     888                NoticeE14.add(new Instr(Form.PGON, p));
    889889        }
    890890        public static final Symbol NoticeE15 = new Symbol();
    891891        static {
    892                 NoticeE15.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    893                 NoticeE15.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Motor, 1.0, 0, 0, null, null)));
     892                NoticeE15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     893                NoticeE15.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Motor, 1.0, 0, 0, null, null)));
    894894        }
    895895        public static final Symbol NoticeE16 = new Symbol();
    896896        static {
    897                 NoticeE16.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    898                 NoticeE16.add(new Instr(Prim.TEXT, new Caption("SPORT", new Font("Arial", Font.BOLD, 15), Color.white, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 5)))));
     897                NoticeE16.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     898                NoticeE16.add(new Instr(Form.TEXT, new Caption("SPORT", new Font("Arial", Font.BOLD, 15), Color.white, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 5)))));
    899899        }
    900900        public static final Symbol NoticeE17 = new Symbol();
    901901        static {
    902                 NoticeE17.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    903                 NoticeE17.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Waterski, 1.0, 0, 0, null, null)));
     902                NoticeE17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     903                NoticeE17.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterski, 1.0, 0, 0, null, null)));
    904904        }
    905905        public static final Symbol NoticeE18 = new Symbol();
    906906        static {
    907                 NoticeE18.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    908                 NoticeE18.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Sailboat, 1.0, 0, 0, null, null)));
     907                NoticeE18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     908                NoticeE18.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboat, 1.0, 0, 0, null, null)));
    909909        }
    910910        public static final Symbol NoticeE19 = new Symbol();
    911911        static {
    912                 NoticeE19.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    913                 NoticeE19.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Rowboat, 1.0, 0, 0, null, null)));
     912                NoticeE19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     913                NoticeE19.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Rowboat, 1.0, 0, 0, null, null)));
    914914        }
    915915        public static final Symbol NoticeE20 = new Symbol();
    916916        static {
    917                 NoticeE20.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    918                 NoticeE20.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Sailboard, 1.0, 0, 0, null, null)));
     917                NoticeE20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     918                NoticeE20.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Sailboard, 1.0, 0, 0, null, null)));
    919919        }
    920920        public static final Symbol NoticeE21 = new Symbol();
    921921        static {
    922                 NoticeE21.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    923                 NoticeE21.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Speedboat, 1.0, 0, 0, null, null)));
     922                NoticeE21.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     923                NoticeE21.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Speedboat, 1.0, 0, 0, null, null)));
    924924        }
    925925        public static final Symbol NoticeE22 = new Symbol();
    926926        static {
    927                 NoticeE22.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    928                 NoticeE22.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Slipway, 1.0, 0, 0, null, null)));
     927                NoticeE22.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     928                NoticeE22.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Slipway, 1.0, 0, 0, null, null)));
    929929        }
    930930        public static final Symbol NoticeE23 = new Symbol();
    931931        static {
    932                 NoticeE23.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    933                 NoticeE23.add(new Instr(Prim.TEXT, new Caption("VHF", new Font("Arial", Font.BOLD, 20), Color.white, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 0)))));
     932                NoticeE23.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     933                NoticeE23.add(new Instr(Form.TEXT, new Caption("VHF", new Font("Arial", Font.BOLD, 20), Color.white, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 0)))));
    934934        }
    935935        public static final Symbol NoticeE24 = new Symbol();
    936936        static {
    937                 NoticeE24.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
    938                 NoticeE24.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Notices.Waterbike, 1.0, 0, 0, null, null)));
     937                NoticeE24.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.NoticeE, 1.0, 0, 0, null, null)));
     938                NoticeE24.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Notices.Waterbike, 1.0, 0, 0, null, null)));
    939939        }
    940940
     
    973973        public static final Symbol NoticeBnank = new Symbol();
    974974        static {
    975                 NoticeBnank.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
     975                NoticeBnank.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-30,60,60)));
    976976                Symbol colours = new Symbol();
    977977                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();
    978                 colours.add(new Instr(Prim.P1, p));
     978                colours.add(new Instr(Form.P1, p));
    979979                p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
    980                 colours.add(new Instr(Prim.P2, p));
    981                 NoticeBnank.add(new Instr(Prim.COLR, colours));
     980                colours.add(new Instr(Form.P2, p));
     981                NoticeBnank.add(new Instr(Form.COLR, colours));
    982982        }
    983983        public static final Symbol NoticeBlmhr = new Symbol();
  • applications/editors/josm/plugins/smed2/src/symbols/Symbols.java

    r30037 r30215  
    2020public class Symbols {
    2121
    22         public enum Prim {
     22        public enum Form {
    2323                BBOX, STRK, COLR, FILL, LINE, RECT, RRCT, ELPS, EARC, PLIN, PGON, RSHP, TEXT, SYMB, P1, P2, H2, H3, H4, H5, V2, D2, D3, D4, B2, S2, S3, S4, C2, X2
    2424        }
     
    3333
    3434        public static class Instr {
    35                 public Prim type;
     35                public Form type;
    3636                public Object params;
    3737
    38                 public Instr(Prim itype, Object iparams) {
     38                public Instr(Form itype, Object iparams) {
    3939                        type = itype;
    4040                        params = iparams;
  • applications/editors/josm/plugins/smed2/src/symbols/Topmarks.java

    r30036 r30215  
    2222        public static final Symbol TopBoard = new Symbol();
    2323        static {
    24                 TopBoard.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
     24                TopBoard.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
    2525                Symbol colours = new Symbol();
    2626                Path2D.Double p = new Path2D.Double(); p.moveTo(-19.0,-2.0); p.lineTo(-19.0,-39.0); p.lineTo(19.0,-39.0); p.lineTo(19.0,-2.0); p.closePath();
    27                 colours.add(new Instr(Prim.P1, p));
    28                 TopBoard.add(new Instr(Prim.COLR, colours));
    29                 TopBoard.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    30                 TopBoard.add(new Instr(Prim.FILL, Color.black));
     27                colours.add(new Instr(Form.P1, p));
     28                TopBoard.add(new Instr(Form.COLR, colours));
     29                TopBoard.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     30                TopBoard.add(new Instr(Form.FILL, Color.black));
    3131                p = new Path2D.Double(); p.moveTo(-19.0,-2.0); p.lineTo(-19.0,-39.0); p.lineTo(19.0,-39.0); p.lineTo(19.0,-2.0); p.closePath();
    32                 TopBoard.add(new Instr(Prim.PLIN, p));
     32                TopBoard.add(new Instr(Form.PLIN, p));
    3333        }
    3434        public static final Symbol TopCan = new Symbol();
    3535        static {
    36                 TopCan.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
     36                TopCan.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
    3737                Symbol colours = new Symbol();
    3838                Path2D.Double p = new Path2D.Double(); p.moveTo(-12.0,-15.0); p.lineTo(-12.0,-48.0); p.lineTo(12.0,-48.0); p.lineTo(12.0,-15.0); p.closePath();
    39                 colours.add(new Instr(Prim.P1, p));
    40                 TopCan.add(new Instr(Prim.COLR, colours));
    41                 TopCan.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    42                 TopCan.add(new Instr(Prim.FILL, Color.black));
    43                 TopCan.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-15)));
     39                colours.add(new Instr(Form.P1, p));
     40                TopCan.add(new Instr(Form.COLR, colours));
     41                TopCan.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     42                TopCan.add(new Instr(Form.FILL, Color.black));
     43                TopCan.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
    4444                p = new Path2D.Double(); p.moveTo(-12.0,-15.0); p.lineTo(-12.0,-48.0); p.lineTo(12.0,-48.0); p.lineTo(12.0,-15.0); p.closePath();
    45                 TopCan.add(new Instr(Prim.PLIN, p));
     45                TopCan.add(new Instr(Form.PLIN, p));
    4646        }
    4747        public static final Symbol TopCone = new Symbol();
    4848        static {
    49                 TopCone.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
     49                TopCone.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
    5050                Symbol colours = new Symbol();
    5151                Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-15.0); p.lineTo(0.0,-45.0); p.lineTo(15.0,-15.0); p.closePath();
    52                 colours.add(new Instr(Prim.P1, p));
    53                 TopCone.add(new Instr(Prim.COLR, colours));
    54                 TopCone.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    55                 TopCone.add(new Instr(Prim.FILL, Color.black));
    56                 TopCone.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-15)));
     52                colours.add(new Instr(Form.P1, p));
     53                TopCone.add(new Instr(Form.COLR, colours));
     54                TopCone.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     55                TopCone.add(new Instr(Form.FILL, Color.black));
     56                TopCone.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
    5757                p = new Path2D.Double(); p.moveTo(-15.0,-15.0); p.lineTo(0.0,-45.0); p.lineTo(15.0,-15.0); p.closePath();
    58                 TopCone.add(new Instr(Prim.PLIN, p));
     58                TopCone.add(new Instr(Form.PLIN, p));
    5959        }
    6060        public static final Symbol TopCross = new Symbol();
    6161        static {
    62                 TopCross.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
     62                TopCross.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
    6363                Symbol colours = new Symbol();
    6464                Path2D.Double p = new Path2D.Double(); p.moveTo(-5.0,-15.0); p.lineTo(-5.0,-32.5); p.lineTo(-22.5,-32.5);       p.lineTo(-22.5,-42.5); p.lineTo(-5.0,-42.5);
    6565                p.lineTo(-5.0,-60.0); p.lineTo(5.0,-60.0); p.lineTo(5.0,-42.5); p.lineTo(22.5,-42.5);   p.lineTo(22.5,-32.5); p.lineTo(5.0,-32.5); p.lineTo(5.0,-15.0); p.closePath();
    66                 colours.add(new Instr(Prim.P1, p));
    67                 TopCross.add(new Instr(Prim.COLR, colours));
    68                 TopCross.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    69                 TopCross.add(new Instr(Prim.FILL, Color.black));
    70                 TopCross.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-15)));
    71                 TopCross.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     66                colours.add(new Instr(Form.P1, p));
     67                TopCross.add(new Instr(Form.COLR, colours));
     68                TopCross.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     69                TopCross.add(new Instr(Form.FILL, Color.black));
     70                TopCross.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
     71                TopCross.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    7272                p = new Path2D.Double(); p.moveTo(-5.0,-15.0); p.lineTo(-5.0,-32.5); p.lineTo(-22.5,-32.5); p.lineTo(-22.5,-42.5); p.lineTo(-5.0,-42.5); p.lineTo(-5.0,-60.0);
    7373                p.lineTo(5.0,-60.0); p.lineTo(5.0,-42.5); p.lineTo(22.5,-42.5); p.lineTo(22.5,-32.5); p.lineTo(5.0,-32.5); p.lineTo(5.0,-15.0); p.closePath();
    74                 TopCross.add(new Instr(Prim.PLIN, p));
     74                TopCross.add(new Instr(Form.PLIN, p));
    7575        }
    7676        public static final Symbol TopEast = new Symbol();
    7777        static {
    78                 TopEast.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
     78                TopEast.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
    7979                Symbol colours = new Symbol();
    8080                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();
    81                 colours.add(new Instr(Prim.P1, p));
    82                 p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
    83                 colours.add(new Instr(Prim.P2, p));
    84                 TopEast.add(new Instr(Prim.COLR, colours));
    85                 TopEast.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    86                 TopEast.add(new Instr(Prim.FILL, Color.black));
    87                 TopEast.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-10)));
    88                 TopEast.add(new Instr(Prim.LINE, new Line2D.Double(0,-43,0,-47)));
    89                 TopEast.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     81                colours.add(new Instr(Form.P1, p));
     82                p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
     83                colours.add(new Instr(Form.P2, p));
     84                TopEast.add(new Instr(Form.COLR, colours));
     85                TopEast.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     86                TopEast.add(new Instr(Form.FILL, Color.black));
     87                TopEast.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-10)));
     88                TopEast.add(new Instr(Form.LINE, new Line2D.Double(0,-43,0,-47)));
     89                TopEast.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    9090                p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
    9191                p.moveTo(0.0,-80.0); p.lineTo(-15.0,-47.0);  p.lineTo(15.0,-47.0); p.closePath();
    92                 TopEast.add(new Instr(Prim.PLIN, p));
     92                TopEast.add(new Instr(Form.PLIN, p));
    9393        }
    9494        public static final Symbol TopIsol = new Symbol();
    9595        static {
    96                 TopIsol.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
     96                TopIsol.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
    9797                Symbol colours = new Symbol();
    9898                Path2D.Double p = new Path2D.Double(); p.moveTo(-13.0,-55.0); p.curveTo(-13.0, -72.3, 13.0, -72.3, 13.0,-55.0); p.curveTo(13.0, -37.7, -13.0, -37.7, -13.0,-55.0); p.closePath();
    99                 colours.add(new Instr(Prim.P1, p));
     99                colours.add(new Instr(Form.P1, p));
    100100                p = new Path2D.Double(); p.moveTo(-13.0,-28.0); p.curveTo(-13.0, -45.3, 13.0, -45.3, 13.0,-28.0); p.curveTo(13.0, -10.7, -13.0, -10.7, -13.0,-28.0); p.closePath();
    101                 colours.add(new Instr(Prim.P2, p));
    102                 TopIsol.add(new Instr(Prim.COLR, colours));
    103                 TopIsol.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    104                 TopIsol.add(new Instr(Prim.FILL, Color.black));
    105                 TopIsol.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-15)));
    106                 TopIsol.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    107                 TopIsol.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-13,-41,26,26)));
    108                 TopIsol.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-13,-68,26,26)));
     101                colours.add(new Instr(Form.P2, p));
     102                TopIsol.add(new Instr(Form.COLR, colours));
     103                TopIsol.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     104                TopIsol.add(new Instr(Form.FILL, Color.black));
     105                TopIsol.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
     106                TopIsol.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     107                TopIsol.add(new Instr(Form.ELPS, new Ellipse2D.Double(-13,-41,26,26)));
     108                TopIsol.add(new Instr(Form.ELPS, new Ellipse2D.Double(-13,-68,26,26)));
    109109        }
    110110        public static final Symbol TopMooring = new Symbol();
    111111        static {
    112                 TopMooring.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
    113                 TopMooring.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    114                 TopMooring.add(new Instr(Prim.FILL, Color.black));
    115                 TopMooring.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-1.5,-6,3,3)));
    116                 TopMooring.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-8.5,-25,17,17)));
     112                TopMooring.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
     113                TopMooring.add(new Instr(Form.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     114                TopMooring.add(new Instr(Form.FILL, Color.black));
     115                TopMooring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-1.5,-6,3,3)));
     116                TopMooring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-8.5,-25,17,17)));
    117117        }
    118118        public static final Symbol TopNorth = new Symbol();
    119119        static {
    120                 TopNorth.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
     120                TopNorth.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
    121121                Symbol colours = new Symbol();
    122122                Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-78.0); p.lineTo(-15.0,-45.0); p.lineTo(15.0,-45.0); p.closePath();
    123                 colours.add(new Instr(Prim.P1, p));
    124                 p = new Path2D.Double(); p.moveTo(-15.0,-10.0); p.lineTo(0.0,-43.0); p.lineTo(15.0,-10.0); p.closePath();
    125                 colours.add(new Instr(Prim.P2, p));
    126                 TopNorth.add(new Instr(Prim.COLR, colours));
    127                 TopNorth.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    128                 TopNorth.add(new Instr(Prim.FILL, Color.black));
    129                 TopNorth.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-10)));
    130                 TopNorth.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     123                colours.add(new Instr(Form.P1, p));
     124                p = new Path2D.Double(); p.moveTo(-15.0,-10.0); p.lineTo(0.0,-43.0); p.lineTo(15.0,-10.0); p.closePath();
     125                colours.add(new Instr(Form.P2, p));
     126                TopNorth.add(new Instr(Form.COLR, colours));
     127                TopNorth.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     128                TopNorth.add(new Instr(Form.FILL, Color.black));
     129                TopNorth.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-10)));
     130                TopNorth.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    131131                p = new Path2D.Double(); p.moveTo(-15.0,-10.0); p.lineTo(0.0,-43.0); p.lineTo(15.0,-10.0); p.closePath();
    132132                p.moveTo(0.0,-78.0); p.lineTo(-15.0,-45.0);  p.lineTo(15.0,-45.0); p.closePath();
    133                 TopNorth.add(new Instr(Prim.PLIN, p));
     133                TopNorth.add(new Instr(Form.PLIN, p));
    134134        }
    135135        public static final Symbol TopSouth = new Symbol();
    136136        static {
    137                 TopSouth.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
     137                TopSouth.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
    138138                Symbol colours = new Symbol();
    139139                Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-78.0); p.lineTo(0.0,-45.0);  p.lineTo(15.0,-78.0); p.closePath();
    140                 colours.add(new Instr(Prim.P1, p));
    141                 p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
    142                 colours.add(new Instr(Prim.P2, p));
    143                 TopSouth.add(new Instr(Prim.COLR, colours));
    144                 TopSouth.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    145                 TopSouth.add(new Instr(Prim.FILL, Color.black));
    146                 TopSouth.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-10)));
    147                 TopSouth.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     140                colours.add(new Instr(Form.P1, p));
     141                p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
     142                colours.add(new Instr(Form.P2, p));
     143                TopSouth.add(new Instr(Form.COLR, colours));
     144                TopSouth.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     145                TopSouth.add(new Instr(Form.FILL, Color.black));
     146                TopSouth.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-10)));
     147                TopSouth.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    148148                p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(-15.0,-43.0); p.lineTo(15.0,-43.0); p.closePath();
    149149                p.moveTo(-15.0,-78.0); p.lineTo(0.0,-45.0);  p.lineTo(15.0,-78.0); p.closePath();
    150                 TopSouth.add(new Instr(Prim.PLIN, p));
     150                TopSouth.add(new Instr(Form.PLIN, p));
    151151        }
    152152        public static final Symbol TopSphere = new Symbol();
    153153        static {
    154                 TopSphere.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
     154                TopSphere.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
    155155                Symbol colours = new Symbol();
    156156                Path2D.Double p = new Path2D.Double(); p.moveTo(-14.0,-28.0); p.curveTo(-14.0,-46.7,14.0,-46.7,14.0,-28.0); p.curveTo(14.0,-9.3,-14.0,-9.3,-14.0,-28.0); p.closePath();
    157                 colours.add(new Instr(Prim.P1, p));
    158                 TopSphere.add(new Instr(Prim.COLR, colours));
    159                 TopSphere.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    160                 TopSphere.add(new Instr(Prim.FILL, Color.black));
    161                 TopSphere.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-15)));
    162                 TopSphere.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    163                 TopSphere.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-14,-42,28,28)));
     157                colours.add(new Instr(Form.P1, p));
     158                TopSphere.add(new Instr(Form.COLR, colours));
     159                TopSphere.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     160                TopSphere.add(new Instr(Form.FILL, Color.black));
     161                TopSphere.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
     162                TopSphere.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     163                TopSphere.add(new Instr(Form.ELPS, new Ellipse2D.Double(-14,-42,28,28)));
    164164        }
    165165        public static final Symbol TopSquare = new Symbol();
    166166        static {
    167                 TopSquare.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
     167                TopSquare.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
    168168                Symbol colours = new Symbol();
    169169                Path2D.Double p = new Path2D.Double(); p.moveTo(-13.0,-1.0); p.lineTo(-13.0,-27.0); p.lineTo(13.0,-27.0); p.lineTo(13.0,-1.0); p.closePath();
    170                 colours.add(new Instr(Prim.P1, p));
    171                 TopSquare.add(new Instr(Prim.COLR, colours));
    172                 TopSquare.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    173                 TopSquare.add(new Instr(Prim.FILL, Color.black));
     170                colours.add(new Instr(Form.P1, p));
     171                TopSquare.add(new Instr(Form.COLR, colours));
     172                TopSquare.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     173                TopSquare.add(new Instr(Form.FILL, Color.black));
    174174                p = new Path2D.Double(); p.moveTo(-13.0,-1.0); p.lineTo(-13.0,-27.0); p.lineTo(13.0,-27.0); p.lineTo(13.0,-1.0); p.closePath();
    175                 TopSquare.add(new Instr(Prim.PLIN, p));
     175                TopSquare.add(new Instr(Form.PLIN, p));
    176176        }
    177177        public static final Symbol TopTriangle = new Symbol();
    178178        static {
    179                 TopTriangle.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
     179                TopTriangle.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
    180180                Symbol colours = new Symbol();
    181181                Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-1.0); p.lineTo(0.0,-29.0); p.lineTo(15.0,-1.0); p.closePath();
    182                 colours.add(new Instr(Prim.P1, p));
    183                 TopTriangle.add(new Instr(Prim.COLR, colours));
    184                 TopTriangle.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    185                 TopTriangle.add(new Instr(Prim.FILL, Color.black));
     182                colours.add(new Instr(Form.P1, p));
     183                TopTriangle.add(new Instr(Form.COLR, colours));
     184                TopTriangle.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     185                TopTriangle.add(new Instr(Form.FILL, Color.black));
    186186                p = new Path2D.Double(); p.moveTo(-15.0,-1.0); p.lineTo(0.0,-29.0); p.lineTo(15.0,-1.0); p.closePath();
    187                 TopTriangle.add(new Instr(Prim.PLIN, p));
     187                TopTriangle.add(new Instr(Form.PLIN, p));
    188188        }
    189189        public static final Symbol TopWest = new Symbol();
    190190        static {
    191                 TopWest.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
     191                TopWest.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
    192192                Symbol colours = new Symbol();
    193193                Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-78.0); p.lineTo(0.0,-45.0);  p.lineTo(15.0,-78.0); p.closePath();
    194                 colours.add(new Instr(Prim.P1, p));
    195                 p = new Path2D.Double(); p.moveTo(-15.0,-10.0); p.lineTo(0.0,-43.0); p.lineTo(15.0,-10.0); p.closePath();
    196                 colours.add(new Instr(Prim.P2, p));
    197                 TopWest.add(new Instr(Prim.COLR, colours));
    198                 TopWest.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    199                 TopWest.add(new Instr(Prim.FILL, Color.black));
    200                 TopWest.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-10)));
    201                 TopWest.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     194                colours.add(new Instr(Form.P1, p));
     195                p = new Path2D.Double(); p.moveTo(-15.0,-10.0); p.lineTo(0.0,-43.0); p.lineTo(15.0,-10.0); p.closePath();
     196                colours.add(new Instr(Form.P2, p));
     197                TopWest.add(new Instr(Form.COLR, colours));
     198                TopWest.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     199                TopWest.add(new Instr(Form.FILL, Color.black));
     200                TopWest.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-10)));
     201                TopWest.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    202202                p = new Path2D.Double(); p.moveTo(-15.0,-10.0); p.lineTo(0.0,-43.0); p.lineTo(15.0,-10.0); p.closePath();
    203203                p.moveTo(-15.0,-78.0); p.lineTo(0.0,-45.0);  p.lineTo(15.0,-78.0); p.closePath();
    204                 TopWest.add(new Instr(Prim.PLIN, p));
     204                TopWest.add(new Instr(Form.PLIN, p));
    205205        }
    206206        public static final Symbol TopX = new Symbol();
    207207        static {
    208                 TopX.add(new Instr(Prim.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
     208                TopX.add(new Instr(Form.BBOX, new Rectangle2D.Double(-30,-80,60,80)));
    209209                Symbol colours = new Symbol();
    210210                Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-27.7); p.lineTo(-12.4,-15.7); p.lineTo(-19.3,-22.6); p.lineTo(-7.3,-35.0); p.lineTo(-19.3,-47.3);
    211211                p.lineTo(-12.4,-54.2); p.lineTo(0.0,-42.4); p.lineTo(12.4,-54.2); p.lineTo(19.3,-47.3); p.lineTo(7.3,-35.0); p.lineTo(19.3,-22.6); p.lineTo(12.4,-15.7); p.closePath();
    212                 colours.add(new Instr(Prim.P1, p));
    213                 TopX.add(new Instr(Prim.COLR, colours));
    214                 TopX.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    215                 TopX.add(new Instr(Prim.FILL, Color.black));
    216                 TopX.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-27)));
    217                 TopX.add(new Instr(Prim.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     212                colours.add(new Instr(Form.P1, p));
     213                TopX.add(new Instr(Form.COLR, colours));
     214                TopX.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     215                TopX.add(new Instr(Form.FILL, Color.black));
     216                TopX.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-27)));
     217                TopX.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    218218                p = new Path2D.Double(); p.moveTo(0.0,-27.7); p.lineTo(-12.4,-15.7); p.lineTo(-19.3,-22.6); p.lineTo(-7.3,-35.0); p.lineTo(-19.3,-47.3); p.lineTo(-12.4,-54.2); p.lineTo(0.0,-42.4);
    219219                p.lineTo(12.4,-54.2); p.lineTo(19.3,-47.3); p.lineTo(7.3,-35.0); p.lineTo(19.3,-22.6); p.lineTo(12.4,-15.7); p.closePath();
    220                 TopX.add(new Instr(Prim.PLIN, p));
     220                TopX.add(new Instr(Form.PLIN, p));
    221221        }
    222222       
Note: See TracChangeset for help on using the changeset viewer.