Opened 10 years ago
Last modified 10 years ago
#10286 new defect
extruder: problem with shared nodes
Reported by: | skyper | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Core | Version: | latest |
Keywords: | template_report extruder shared node | Cc: | Hojoe |
Description (last modified by )
What steps will reproduce the problem?
- Draw two rectified rectangle closed ways with one overlapping segment and two nodes in common.
- extrude (single align) on side with one shared node of one area to the inside
What is the expected result?
The shared node remains only part of the untouched area and a new shared node is created at the new corner or the opposite considerering ids (new <-> old).
What happens instead?
The shared node remains shared and a new node only connected to the changed area is created.
Please provide any additional information below. Attach a screenshot if possible.
I changed the settings for "ignore-shared-nodes" but it did not change anything.
Have a look at attached example file.
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2014-07-20 01:36:10 Last Changed Author: stoecker Revision: 7318 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2014-07-19 21:12:28 +0200 (Sat, 19 Jul 2014) Last Changed Rev: 7318 Identification: JOSM/1.5 (7318 en) Linux Debian GNU/Linux 7.6 (wheezy) Memory Usage: 259 MB / 882 MB (126 MB allocated, but free) Java version: 1.7.0_55, Oracle Corporation, OpenJDK 64-Bit Server VM Java package: openjdk-7-jre:amd64-7u55-2.4.7-1~deb7u1 VM arguments: [-Djosm.home=/tmp/.josm] Program arguments: [--language=en, extrude_ex2.osm] Dataset consistency test: No problems found
Attachments (5)
Change History (19)
by , 10 years ago
Attachment: | extrude_ex3.osm added |
---|
comment:1 by , 10 years ago
Description: | modified (diff) |
---|
by , 10 years ago
Attachment: | V6XgIG67[1] added |
---|
by , 10 years ago
Attachment: | 2014-07-21 19_33_39-_ Java OpenStreetMap Editor.png added |
---|
correct attachement
follow-up: 4 comment:3 by , 10 years ago
Is this result correct? (or the node ids should be checked?)
comment:4 by , 10 years ago
Replying to akks:
Is this result correct? (or the node ids should be checked?)
I did not check the node ids, so far. Would be the next step.
Your example is about extruding to the outside while I am talking about extruding to the inside, e.g. smaller size.
comment:6 by , 10 years ago
Reproduced and located the code: https://josm.openstreetmap.de/browser/josm/trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java#L633
Looking for fix...
P.S. It is not so easy and certainly incorrect (after ctrl-z the result changes sometimes).
comment:7 by , 10 years ago
That's a rounding problem. If the epsilon is larger, then it seems to work. I add a small patch with a epsion of 1e-2. I hope this helps.
by , 10 years ago
Attachment: | ExtrudeAction.java.patch added |
---|
comment:8 by , 10 years ago
Summary: | extruder: problem with shared nodes → [Patch]extruder: problem with shared nodes |
---|
comment:9 by , 10 years ago
Cc: | added |
---|
comment:11 by , 10 years ago
1e-2 is 5 degrees. That's too large and probably has unwanted consequences.
The rounding error comes from Geometry.getLineLineIntersection
as the test in [7791] demonstrates.
comment:14 by , 10 years ago
Summary: | [Patch]extruder: problem with shared nodes → extruder: problem with shared nodes |
---|
sample file