Ignore:
Timestamp:
2009-08-30T17:49:38+02:00 (16 years ago)
Author:
guggis
Message:

Cleanup of deprecated data API for OsmPrimitive and Way

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/utilsplugin/src/UtilsPlugin/JoinAreasAction.java

    r16735 r17361  
    142142
    143143            // This is copied from SimplifyAction and should be probably ported to tools
    144             for (Node node : way.nodes) {
     144            for (Node node : way.getNodes()) {
    145145                if(askedAlready) break;
    146146                boolean isInsideOneBoundingBox = false;
     
    327327    private ArrayList<OsmPrimitive> addIntersections(Way a, Way b) {
    328328        boolean same = a.equals(b);
    329         int nodesSizeA = a.nodes.size();
    330         int nodesSizeB = b.nodes.size();
     329        int nodesSizeA = a.getNodesCount();
     330        int nodesSizeB = b.getNodesCount();
    331331
    332332        // We use OsmPrimitive here instead of Node because we later need to split a way at these nodes.
     
    339339            for (int j = (same ? i + 2 : 0); j < nodesSizeB - 1; j++) {
    340340                // Avoid re-adding nodes that already exist on (some) intersections
    341                 if(a.nodes.get(i).equals(b.nodes.get(j)) || a.nodes.get(i+1).equals(b.nodes.get(j)))   {
    342                     nodes.add(b.nodes.get(j));
     341                if(a.getNode(i).equals(b.getNode(j)) || a.getNode(i+1).equals(b.getNode(j)))   {
     342                    nodes.add(b.getNode(j));
    343343                    continue;
    344344                } else
    345                 if(a.nodes.get(i).equals(b.nodes.get(j+1)) || a.nodes.get(i+1).equals(b.nodes.get(j+1))) {
    346                     nodes.add(b.nodes.get(j+1));
     345                if(a.getNode(i).equals(b.getNode(j+1)) || a.getNode(i+1).equals(b.getNode(j+1))) {
     346                    nodes.add(b.getNode(j+1));
    347347                    continue;
    348348                }
    349349                LatLon intersection = getLineLineIntersection(
    350                         a.nodes.get(i)  .getEastNorth().east(), a.nodes.get(i)  .getEastNorth().north(),
    351                         a.nodes.get(i+1).getEastNorth().east(), a.nodes.get(i+1).getEastNorth().north(),
    352                         b.nodes.get(j)  .getEastNorth().east(), b.nodes.get(j)  .getEastNorth().north(),
    353                         b.nodes.get(j+1).getEastNorth().east(), b.nodes.get(j+1).getEastNorth().north());
     350                        a.getNode(i)  .getEastNorth().east(), a.getNode(i)  .getEastNorth().north(),
     351                        a.getNode(i+1).getEastNorth().east(), a.getNode(i+1).getEastNorth().north(),
     352                        b.getNode(j)  .getEastNorth().east(), b.getNode(j)  .getEastNorth().north(),
     353                        b.getNode(j+1).getEastNorth().east(), b.getNode(j+1).getEastNorth().north());
    354354                if(intersection == null) continue;
    355355
     
    359359                nodes.add(n);
    360360                // The distance is needed to sort and add the nodes in direction of the way
    361                 nodesA.add(new NodeToSegs(i,  n, a.nodes.get(i).getCoor()));
     361                nodesA.add(new NodeToSegs(i,  n, a.getNode(i).getCoor()));
    362362                if(same)
    363                     nodesA.add(new NodeToSegs(j,  n, a.nodes.get(j).getCoor()));
     363                    nodesA.add(new NodeToSegs(j,  n, a.getNode(j).getCoor()));
    364364                else
    365                     nodesB.add(new NodeToSegs(j,  n, b.nodes.get(j).getCoor()));
     365                    nodesB.add(new NodeToSegs(j,  n, b.getNode(j).getCoor()));
    366366            }
    367367        }
     
    508508    private Collection<Node> getNodesFromWays(Collection<Way> ways) {
    509509        Collection<Node> allNodes = new ArrayList<Node>();
    510         for(Way w: ways) allNodes.addAll(w.nodes);
     510        for(Way w: ways) allNodes.addAll(w.getNodes());
    511511        return allNodes;
    512512    }
     
    524524        for(Way w: multigonWays) {
    525525            Polygon poly = new Polygon();
    526             for(Node n: (w).nodes) poly.addPoint(latlonToXY(n.getCoor().lat()), latlonToXY(n.getCoor().lon()));
     526            for(Node n: (w).getNodes()) poly.addPoint(latlonToXY(n.getCoor().lat()), latlonToXY(n.getCoor().lon()));
    527527
    528528            for(Node n: multigonNodes) {
    529                 if(!(w).nodes.contains(n) && poly.contains(latlonToXY(n.getCoor().lat()), latlonToXY(n.getCoor().lon()))) {
     529                if(!(w).containsNode(n) && poly.contains(latlonToXY(n.getCoor().lat()), latlonToXY(n.getCoor().lon()))) {
    530530                    getWaysByNode(innerWays, multigonWays, n);
    531531                }
     
    549549    private void getWaysByNode(Collection<Way> innerWays, Collection<Way> w, Node n) {
    550550        for(Way way : w) {
    551             if(!(way).nodes.contains(n)) continue;
     551            if(!(way).containsNode(n)) continue;
    552552            if(!innerWays.contains(way)) innerWays.add(way); // Will need this later for multigons
    553553        }
     
    566566            if(innerWays.contains(w)) continue;
    567567
    568             if(w.nodes.size() <= 2)
     568            if(w.getNodesCount() <= 2)
    569569                cmds.add(new DeleteCommand(w));
    570570            else
     
    608608                continue;
    609609            }
    610             if(a.nodes.get(0).equals(b.nodes.get(0)) ||
    611                a.nodes.get(a.nodes.size()-1).equals(b.nodes.get(b.nodes.size()-1))) {
     610            if(a.getNode(0).equals(b.getNode(0)) ||
     611               a.getNode(a.getNodesCount()-1).equals(b.getNode(b.getNodesCount()-1))) {
    612612                Main.main.getCurrentDataSet().setSelected(b);
    613613                new ReverseWayAction().actionPerformed(null);
     
    634634    private ArrayList<Way> fixMultigons(Collection<Way> uninterestingWays, Way outerWay) {
    635635        Collection<Node> innerNodes = getNodesFromWays(uninterestingWays);
    636         Collection<Node> outerNodes = outerWay.nodes;
     636        Collection<Node> outerNodes = outerWay.getNodes();
    637637
    638638        // The newly created inner ways. uninterestingWays is passed by reference and therefore modified in-place
     
    646646        wayIterator: for(Way w : uninterestingWays) {
    647647            boolean hasInnerNodes = false;
    648             for(Node n : w.nodes) {
     648            for(Node n : w.getNodes()) {
    649649                if(outerNodes.contains(n)) continue wayIterator;
    650650                if(!hasInnerNodes && innerNodes.contains(n)) hasInnerNodes = true;
    651651            }
    652             if(!hasInnerNodes || w.nodes.size() < 2) continue;
     652            if(!hasInnerNodes || w.getNodesCount() < 2) continue;
    653653            possibleWays.add(w);
    654654        }
     
    703703            for(int j=i+1; j < ways.size(); j++) {
    704704                Way b = ways.get(j);
    705                 List<Node> revNodes = new ArrayList<Node>(b.nodes);
     705                List<Node> revNodes = new ArrayList<Node>(b.getNodes());
    706706                Collections.reverse(revNodes);
    707                 if(a.nodes.equals(b.nodes) || a.nodes.equals(revNodes)) {
     707                if(a.getNodes().equals(b.getNodes()) || a.getNodes().equals(revNodes)) {
    708708                    removables.add(a);
    709709                    continue outer;
     
    745745     */
    746746    private boolean wayIsCollapsed(Way w) {
    747         if(w.nodes.size() <= 3) return true;
     747        if(w.getNodesCount() <= 3) return true;
    748748
    749749        // If a way contains more than one node twice, it must be collapsed (only start/end node may be the same)
    750750        Way x = new Way(w);
    751751        int count = 0;
    752         for(Node n : w.nodes) {
    753             x.nodes.remove(n);
    754             if(x.nodes.contains(n)) count++;
     752        for(Node n : w.getNodes()) {
     753            x.removeNode(n);
     754            if(x.containsNode(n)) count++;
    755755            if(count == 2) return true;
    756756        }
     
    767767        if(w1.equals(w2)) return false;
    768768
    769         if(w1.nodes.get(0).equals(w2.nodes.get(0))) return true;
    770         if(w1.nodes.get(0).equals(w2.nodes.get(w2.nodes.size()-1))) return true;
    771 
    772         if(w1.nodes.get(w1.nodes.size()-1).equals(w2.nodes.get(0))) return true;
    773         if(w1.nodes.get(w1.nodes.size()-1).equals(w2.nodes.get(w2.nodes.size()-1))) return true;
     769        if(w1.getNode(0).equals(w2.getNode(0))) return true;
     770        if(w1.getNode(0).equals(w2.getNode(w2.getNodesCount()-1))) return true;
     771
     772        if(w1.getNode(w1.getNodesCount()-1).equals(w2.getNode(0))) return true;
     773        if(w1.getNode(w1.getNodesCount()-1).equals(w2.getNode(w2.getNodesCount()-1))) return true;
    774774
    775775        return false;
     
    839839                        if(!newRel.members.contains(rm)) newRel.members.add(rm);
    840840                    // Add tags
    841                     for (String key : r.rel.keys.keySet()) {
    842                         newRel.put(key, r.rel.keys.get(key));
     841                    for (String key : r.rel.keySet()) {
     842                        newRel.put(key, r.rel.get(key));
    843843                    }
    844844                    // Delete old relation
     
    862862     */
    863863    private void stripTags(Way x) {
    864         if(x.keys == null) return;
     864        if(x.getKeys() == null) return;
    865865        Way y = new Way(x);
    866         for (String key : x.keys.keySet())
     866        for (String key : x.keySet())
    867867            y.remove(key);
    868868        cmds.add(new ChangeCommand(x, y));
Note: See TracChangeset for help on using the changeset viewer.