Ignore:
Timestamp:
2009-03-06T23:47:45+01:00 (15 years ago)
Author:
stoecker
Message:

delete start/end node of closed way correctly

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/Way.java

    r1423 r1463  
    99import java.util.ArrayList;
    1010import java.util.Arrays;
     11import java.util.Collection;
    1112import java.util.List;
    1213
     
    132133    }
    133134
     135    public void removeNode(Node n)
     136    {
     137        Boolean closed = (lastNode() == n && firstNode() == n);
     138        int i;
     139        while((i = nodes.indexOf(n)) >= 0)
     140            nodes.remove(i);
     141        i = nodes.size();
     142        if(closed && i > 2) // close again
     143            addNode(firstNode());
     144        // prevent closed ways with less than 3 different nodes
     145        else if(i >= 2 && i <= 3 && nodes.get(0) == nodes.get(i-1))
     146            nodes.remove(i-1);
     147    }
     148
     149    public void removeNodes(Collection<? extends OsmPrimitive> selection)
     150    {
     151       for(OsmPrimitive p : selection)
     152       {
     153           if(p instanceof Node)
     154           {
     155               removeNode((Node)p);
     156           }
     157       }
     158    }
     159
    134160    public void addNode(Node n)
    135161    {
Note: See TracChangeset for help on using the changeset viewer.