Ignore:
Timestamp:
2013-01-15T16:45:11+01:00 (12 years ago)
Author:
malcolmh
Message:

save

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/smed2/src/seamap/Renderer.java

    r29199 r29200  
    142142        public static void lineVector (Feature feature, LineStyle style) {
    143143                if (feature.flag != Fflag.NODE) {
    144                         ArrayList<Long> nodes = map.ways.get(feature.refs);
     144                        Long mpoly = map.outers.get(feature.refs);
     145                        ArrayList<Long> ways = new ArrayList<Long>();
     146                        if (mpoly != null) {
     147                                ways.addAll(map.mpolys.get(mpoly));
     148                        } else {
     149                                ways.add(feature.refs);
     150                        }
    145151                        Path2D.Double p = new Path2D.Double();
    146                         p.setWindingRule(GeneralPath.WIND_NON_ZERO);
    147                         boolean first = true;
    148                         for (long node : nodes) {
    149                                 Point2D point = helper.getPoint(map.nodes.get(node));
    150                                 if (first) {
    151                                         p.moveTo(point.getX(), point.getY());
    152                                         first = false;
    153                                 } else {
    154                                         p.lineTo(point.getX(), point.getY());
     152                        p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
     153                        for (long way : ways) {
     154                                boolean first = true;
     155                                for (long node : map.ways.get(way)) {
     156                                        Point2D point = helper.getPoint(map.nodes.get(node));
     157                                        if (first) {
     158                                                p.moveTo(point.getX(), point.getY());
     159                                                first = false;
     160                                        } else {
     161                                                p.lineTo(point.getX(), point.getY());
     162                                        }
    155163                                }
    156164                        }
Note: See TracChangeset for help on using the changeset viewer.