Ignore:
Timestamp:
2015-08-29T16:55:46+02:00 (9 years ago)
Author:
malcolmh
Message:

update

Location:
applications/editors/josm/plugins/seachart
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/seachart/jicons/src/jicons/Jicons.java

    r31344 r31532  
    3535import s57.S57map.*;
    3636import render.*;
    37 import render.Rules.RuleSet;
    3837
    3938public class Jicons {
     
    8079                                                        img = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
    8180                                                        g2 = img.createGraphics();
    82                                                         Renderer.reRender(g2, RuleSet.SEAMARK, new Rectangle(x, y, w, h), 16, s / Renderer.symbolScale[16], map, context);
     81                                                        Renderer.reRender(g2, new Rectangle(x, y, w, h), 16, s / Renderer.symbolScale[16], map, context);
    8382                                                        try {
    8483                                                                ImageIO.write(img, "png", new File(args[1] + file + ".png"));
     
    9493                                                        SVGGraphics2D svgGenerator = new SVGGraphics2D(document);
    9594                                                        svgGenerator.setSVGCanvasSize(new Dimension(w, h));
    96                                                         Renderer.reRender(svgGenerator, RuleSet.SEAMARK, new Rectangle(x, y, w, h), 16, s / Renderer.symbolScale[16], map, context);
     95                                                        Renderer.reRender(svgGenerator, new Rectangle(x, y, w, h), 16, s / Renderer.symbolScale[16], map, context);
    9796                                                        boolean useCSS = true;
    9897                                                        Writer out = null;
     
    192191        static class Context implements ChartContext {
    193192               
    194                 @Override
    195193                public Point2D getPoint(Snode coord) {
    196194                        return new Point2D.Double(x, y);
    197195                }
    198196
    199                 @Override
    200197                public double mile(Feature feature) {
    201198                        return Math.min(w, h);
    202199                }
    203200
    204                 @Override
    205201                public boolean clip() {
    206202                        return false;
    207203                }
    208204
    209                 @Override
    210205                public Color background() {
    211206                        return new Color(0, true);
    212207                }
     208
     209                public RuleSet ruleset() {
     210                        return RuleSet.SEAMARK;
     211                }
    213212        }
    214213}
  • applications/editors/josm/plugins/seachart/jrender/src/jrender/Jrender.java

    r31044 r31532  
    1010package jrender;
    1111
     12import java.awt.Color;
    1213import java.awt.Graphics2D;
    1314import java.awt.Rectangle;
     
    3637import symbols.*;
    3738import render.*;
    38 import render.Rules.RuleSet;
     39import render.ChartContext.RuleSet;
    3940
    4041public class Jrender {
     
    6667          }
    6768         
    68                 @Override
    6969                public Point2D getPoint(Snode coord) {
    7070                        double x = (Math.toDegrees(coord.lon) - minlon) * 256.0 * 2048.0 / 180.0;
     
    7373                }
    7474
    75                 @Override
    7675                public double mile(Feature feature) {
    7776                        return mile;
     77                }
     78
     79                public boolean clip() {
     80                        return false;
     81                }
     82
     83                public Color background() {
     84                        return new Color(0, true);
     85                }
     86
     87                public RuleSet ruleset() {
     88                        return RuleSet.ALL;
    7889                }
    7990        }
     
    197208                        } else if (ln.contains("<osm")) {
    198209                                inOsm = true;
    199                                 map = new S57map();
     210                                map = new S57map(context.ruleset() == RuleSet.SEAMARK);
    200211                                map.addNode(1, maxlat, minlon);
    201212                                map.addNode(2, minlat, minlon);
     
    213224                Rectangle rect = new Rectangle(size, size);
    214225                img = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_ARGB);
    215                 Renderer.reRender(img.createGraphics(), RuleSet.BASE, rect, zoom, 0.05, map, context);
     226                Renderer.reRender(img.createGraphics(), rect, zoom, 0.05, map, context);
    216227                ByteArrayOutputStream bos = new ByteArrayOutputStream();
    217228                ImageIO.write(img, "png", bos);
     
    231242                        svgGenerator.setClip(rect.x, rect.y, rect.width, rect.height);
    232243//                      svgGenerator.translate(-256, -256);
    233                         Renderer.reRender(svgGenerator, RuleSet.BASE, rect, zoom, 0.05, map, context);
     244                        Renderer.reRender(svgGenerator, rect, zoom, 0.05, map, context);
    234245                        svgGenerator.stream(dstdir + "tst_" + zoom + "-" + xtile + "-" + ytile + ".svg");
    235246//              }
     
    244255                g2.scale(s, s);
    245256                g2.translate(-(256 + (xn * 256 / s)), -(256 + (yn * 256 / s)));
    246                 Renderer.reRender(g2, RuleSet.BASE, new Rectangle(256, 256), zoom, 1, map, context);
     257                Renderer.reRender(g2, new Rectangle(256, 256), zoom, 1, map, context);
    247258                ByteArrayOutputStream bos = new ByteArrayOutputStream();
    248259                ImageIO.write(img, "png", bos);
  • applications/editors/josm/plugins/seachart/src/render/ChartContext.java

    r31343 r31532  
    1616
    1717public interface ChartContext {
     18        public enum RuleSet { ALL, BASE, SEAMARK }
     19
    1820        Point2D getPoint(Snode coord);
    1921        double mile(Feature feature);
    2022        boolean clip();
    2123        Color background();
     24        RuleSet ruleset();
    2225}
  • applications/editors/josm/plugins/seachart/src/render/Renderer.java

    r31343 r31532  
    1616import java.util.*;
    1717
    18 import render.Rules.*;
    1918import s57.S57val.*;
    2019import s57.S57map;
     
    3635        static int zoom;
    3736
    38         public static void reRender(Graphics2D g, RuleSet set, Rectangle rect, int z, double factor, S57map m, ChartContext c) {
     37        public static void reRender(Graphics2D g, Rectangle rect, int z, double factor, S57map m, ChartContext c) {
    3938                g2 = g;
    4039                zoom = z;
     
    5352                        g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);
    5453                        g2.setStroke(new BasicStroke(0, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER));
    55                         Rules.rules(set);
     54                        Rules.rules();
    5655                }
    5756        }
  • applications/editors/josm/plugins/seachart/src/render/Rules.java

    r31344 r31532  
    2222import s57.S57obj.*;
    2323import s57.S57map.*;
     24import render.ChartContext.RuleSet;
    2425import render.Renderer.*;
    2526import symbols.*;
     
    2829public class Rules {
    2930       
    30         public enum RuleSet { ALL, BASE, SEAMARK }
    31 
    3231        static final EnumMap<ColCOL, Color> bodyColours = new EnumMap<ColCOL, Color>(ColCOL.class);
    3332        static {
     
    173172        static Feature feature;
    174173        static ArrayList<Feature> objects;
    175         static RuleSet ruleset;
    176174       
    177175        static boolean testObject(Obj obj) {
     
    183181        }
    184182       
    185         public static void rules (RuleSet set) {
    186                 ruleset = set;
    187                 if ((set == RuleSet.ALL) || (set == RuleSet.BASE)) {
     183        public static void rules () {
     184                if ((Renderer.context.ruleset() == RuleSet.ALL) || (Renderer.context.ruleset() == RuleSet.BASE)) {
    188185                        if (testObject(Obj.LNDARE)) for (Feature f : objects) if (testFeature(f)) areas();
    189186                        if (testObject(Obj.BUAARE)) for (Feature f : objects) if (testFeature(f)) areas();
     
    202199                }
    203200                if (testObject(Obj.SLCONS)) for (Feature f : objects) if (testFeature(f)) shoreline();
    204                 if ((set == RuleSet.ALL) || (set == RuleSet.SEAMARK)) {
     201                if ((Renderer.context.ruleset() == RuleSet.ALL) || (Renderer.context.ruleset() == RuleSet.SEAMARK)) {
    205202                        if (testObject(Obj.PIPSOL)) for (Feature f : objects) if (testFeature(f)) pipelines();
    206203                        if (testObject(Obj.CBLSUB)) for (Feature f : objects) if (testFeature(f)) cables();
     
    443440                                        AttMap topmap = feature.objs.get(Obj.TOPMAR).get(0);
    444441                                        if (topmap.containsKey(Att.TOPSHP)) {
    445                                                 Symbol topmark = Topmarks.Shapes.get(((ArrayList<TopSHP>)(topmap.get(Att.TOPSHP).val)).get(0));
    446                                                 if (topmark != null)
    447                                                         Renderer.symbol(feature, topmark, getScheme(feature, Obj.TOPMAR), Topmarks.BeaconDelta);
     442                                                Renderer.symbol(feature, Topmarks.Shapes.get(((ArrayList<TopSHP>)(topmap.get(Att.TOPSHP).val)).get(0)), getScheme(feature, Obj.TOPMAR), Topmarks.BeaconDelta);
    448443                                        }
    449444                                } else if (feature.objs.containsKey(Obj.DAYMAR)) {
    450445                                        AttMap topmap = feature.objs.get(Obj.DAYMAR).get(0);
    451446                                        if (topmap.containsKey(Att.TOPSHP)) {
    452                                                 Symbol topmark = Topmarks.Shapes.get(((ArrayList<TopSHP>)(topmap.get(Att.TOPSHP).val)).get(0));
    453                                                 if (topmark != null)
    454                                                         Renderer.symbol(feature, topmark, getScheme(feature, Obj.DAYMAR), Topmarks.BeaconDelta);
     447                                                Renderer.symbol(feature, Topmarks.Shapes.get(((ArrayList<TopSHP>)(topmap.get(Att.TOPSHP).val)).get(0)), getScheme(feature, Obj.DAYMAR), Topmarks.BeaconDelta);
    455448                                        }
    456449                                }
     
    468461                                AttMap topmap = feature.objs.get(Obj.TOPMAR).get(0);
    469462                                if (topmap.containsKey(Att.TOPSHP)) {
    470                                         Symbol topmark = Topmarks.Shapes.get(((ArrayList<TopSHP>)(topmap.get(Att.TOPSHP).val)).get(0));
    471                                         if (topmark != null)
    472                                                 Renderer.symbol(feature, topmark, getScheme(feature, Obj.TOPMAR), Topmarks.BuoyDeltas.get(shape));
     463                                        Renderer.symbol(feature, Topmarks.Shapes.get(((ArrayList<TopSHP>)(topmap.get(Att.TOPSHP).val)).get(0)), getScheme(feature, Obj.TOPMAR), Topmarks.BuoyDeltas.get(shape));
    473464                                }
    474465                        } else if (feature.objs.containsKey(Obj.DAYMAR)) {
    475466                                AttMap topmap = feature.objs.get(Obj.DAYMAR).get(0);
    476467                                if (topmap.containsKey(Att.TOPSHP)) {
    477                                         Symbol topmark = Topmarks.Shapes.get(((ArrayList<TopSHP>)(topmap.get(Att.TOPSHP).val)).get(0));
    478                                         if (topmark != null)
    479                                                 Renderer.symbol(feature, topmark, getScheme(feature, Obj.DAYMAR), Topmarks.BuoyDeltas.get(shape));
     468                                        Renderer.symbol(feature, Topmarks.Shapes.get(((ArrayList<TopSHP>)(topmap.get(Att.TOPSHP).val)).get(0)), getScheme(feature, Obj.DAYMAR), Topmarks.BuoyDeltas.get(shape));
    480469                                }
    481470                        }
     
    10351024        private static void shoreline() {
    10361025                CatSLC cat = (CatSLC) getAttEnum(feature, feature.type, 0, Att.CATSLC);
    1037                 if ((ruleset == RuleSet.ALL) || (ruleset == RuleSet.BASE)) {
     1026                if ((Renderer.context.ruleset() == RuleSet.ALL) || (Renderer.context.ruleset() == RuleSet.BASE)) {
    10381027                        if ((cat != CatSLC.SLC_SWAY) && (cat != CatSLC.SLC_TWAL)) {
    10391028                                Renderer.lineVector(feature, new LineStyle(Color.black, 10, Symbols.Yland));
    10401029                        }
    10411030                }
    1042                 if ((ruleset == RuleSet.ALL) || (ruleset == RuleSet.SEAMARK)) {
     1031                if ((Renderer.context.ruleset() == RuleSet.ALL) || (Renderer.context.ruleset() == RuleSet.SEAMARK)) {
    10431032                        if (Renderer.zoom >= 12) {
    10441033                                switch (cat) {
  • applications/editors/josm/plugins/seachart/src/s57/S57osm.java

    r31044 r31532  
    3737                OSMtags.put("waterway=riverbank", new KeyVal<>(Obj.RIVBNK, Att.UNKATT, null, null)); OSMtags.put("waterway=river", new KeyVal<>(Obj.RIVERS, Att.UNKATT, null, null));
    3838                OSMtags.put("waterway=canal", new KeyVal<>(Obj.CANALS, Att.UNKATT, null, null)); OSMtags.put("waterway=dock", new KeyVal<>(Obj.HRBBSN, Att.UNKATT, null, null));
    39                 OSMtags.put("waterway=lock", new KeyVal<>(Obj.HRBBSN, Att.UNKATT, null, null));
     39                OSMtags.put("waterway=lock", new KeyVal<>(Obj.HRBBSN, Att.UNKATT, null, null)); OSMtags.put("landuse=basin", new KeyVal<>(Obj.LAKARE, Att.UNKATT, null, null));
    4040                OSMtags.put("wetland=tidalflat", new KeyVal<Double>(Obj.DEPARE, Att.DRVAL2, Conv.F, (Double)0.0)); OSMtags.put("tidal=yes", new KeyVal<Double>(Obj.DEPARE, Att.DRVAL2, Conv.F, (Double)0.0));
    4141                OSMtags.put("natural=mud", new KeyVal<>(Obj.DEPARE, Att.UNKATT, null, null)); OSMtags.put("natural=sand", new KeyVal<>(Obj.DEPARE, Att.UNKATT, null, null));
  • applications/editors/josm/plugins/seachart/src/seachart/ChartImage.java

    r31343 r31532  
    3030import render.ChartContext;
    3131import render.Renderer;
    32 import render.Rules.RuleSet;
    3332import s57.S57map.*;
    3433import symbols.Symbols;
     
    6766        public void paint(Graphics2D g2, MapView mv, Bounds bb) {
    6867                Rectangle rect = Main.map.mapView.getBounds();
    69                 Renderer.reRender(g2, RuleSet.ALL, rect, zoom, Math.pow(2, (zoom-12)), SeachartAction.map, this);
     68                Renderer.reRender(g2, rect, zoom, Math.pow(2, (zoom-12)), SeachartAction.map, this);
    7069                g2.setPaint(Color.black);
    7170                g2.setFont(new Font("Arial", Font.BOLD, 20));
     
    102101                return (Symbols.Bwater);
    103102        }
     103
     104        public RuleSet ruleset() {
     105                return RuleSet.ALL;
     106        }
    104107}
Note: See TracChangeset for help on using the changeset viewer.