- Timestamp:
- 2010-10-24T00:39:02+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/Way.java
r3515 r3630 6 6 import java.util.ArrayList; 7 7 import java.util.Arrays; 8 import java.util.Collection;9 8 import java.util.List; 9 import java.util.Set; 10 10 11 11 import org.openstreetmap.josm.Main; … … 294 294 } 295 295 296 public void removeNodes( Collection<? extends OsmPrimitive> selection) {296 public void removeNodes(Set<? extends OsmPrimitive> selection) { 297 297 if (isIncomplete()) return; 298 298 boolean locked = writeLock(); 299 299 try { 300 for(OsmPrimitive p : selection) { 301 if (p instanceof Node) { 302 removeNode((Node)p); 300 boolean closed = (lastNode() == firstNode() && selection.contains(lastNode())); 301 List<Node> copy = new ArrayList<Node>(); 302 303 for (Node n: nodes) { 304 if (!selection.contains(n)) { 305 copy.add(n); 303 306 } 304 307 } 308 309 int i = copy.size(); 310 if (closed && i > 2) { 311 copy.add(copy.get(0)); 312 } else if (i >= 2 && i <= 3 && copy.get(0) == copy.get(i-1)) { 313 copy.remove(i-1); 314 } 315 setNodes(copy); 305 316 } finally { 306 317 writeUnlock(locked);
Note:
See TracChangeset
for help on using the changeset viewer.