Ticket #10286: ExtrudeAction.java.patch
| File ExtrudeAction.java.patch, 2.5 KB (added by , 12 years ago) |
|---|
-
src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
48 48 import org.openstreetmap.josm.gui.layer.Layer; 49 49 import org.openstreetmap.josm.gui.layer.MapViewPaintable; 50 50 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 51 import org.openstreetmap.josm.gui.util.KeyPressReleaseListener;52 51 import org.openstreetmap.josm.gui.util.GuiHelper; 52 import org.openstreetmap.josm.gui.util.KeyPressReleaseListener; 53 53 import org.openstreetmap.josm.gui.util.ModifierListener; 54 54 import org.openstreetmap.josm.tools.Geometry; 55 55 import org.openstreetmap.josm.tools.ImageProvider; … … 622 622 Node prevNode = getPreviousNode(selectedSegment.lowerIndex); 623 623 boolean nodeOverlapsSegment = prevNode != null && Geometry.segmentsParallel(initialN1en, prevNode.getEastNorth(), initialN1en, newN1en); 624 624 // segmentAngleZero marks subset of nodeOverlapsSegment. nodeOverlapsSegment is true if angle between segments is 0 or PI, segmentAngleZero only if angle is 0 625 boolean segmentAngleZero = prevNode != null && Math.abs(Geometry.getCornerAngle(prevNode.getEastNorth(), initialN1en, newN1en)) < 1e- 5;625 boolean segmentAngleZero = prevNode != null && Math.abs(Geometry.getCornerAngle(prevNode.getEastNorth(), initialN1en, newN1en)) < 1e-2; 626 626 boolean hasOtherWays = hasNodeOtherWays(selectedSegment.getFirstNode(), selectedSegment.way); 627 627 ArrayList<Node> changedNodes = new ArrayList<>(); 628 628 if (nodeOverlapsSegment && !alwaysCreateNodes && !hasOtherWays) { … … 652 652 //find if the new points overlap existing segments (in case of 90 degree angles) 653 653 Node nextNode = getNextNode(selectedSegment.lowerIndex + 1); 654 654 nodeOverlapsSegment = nextNode != null && Geometry.segmentsParallel(initialN2en, nextNode.getEastNorth(), initialN2en, newN2en); 655 segmentAngleZero = nextNode != null && Math.abs(Geometry.getCornerAngle(nextNode.getEastNorth(), initialN2en, newN2en)) < 1e- 5;655 segmentAngleZero = nextNode != null && Math.abs(Geometry.getCornerAngle(nextNode.getEastNorth(), initialN2en, newN2en)) < 1e-2; 656 656 hasOtherWays = hasNodeOtherWays(selectedSegment.getSecondNode(), selectedSegment.way); 657 657 658 658 if (nodeOverlapsSegment && !alwaysCreateNodes && !hasOtherWays) {
