Commit Graph

63 Commits

Author SHA1 Message Date
John Firebaugh
4fa88acc85 Fix connecting adjacent vertices
Can't unconditionally delete the node; it may be a member
of other ways.

I didn't preserve the behavior of dragging a midpoint to
an adjacent node being a no-op. In general we don't try to
eliminate compound operations whose net result is a no-op;
I don't think it's important to do so for this special case.

The degenerate case of connecting the endpoints of a two-vertex
line now results in a point. This is what naturally resulted
from the code, and seems ok.

Fixes #983.
2013-03-12 16:26:40 -07:00
John Firebaugh
68cc99c412 Disable Move operation on incomplete relations (fixes #972) 2013-03-11 16:43:06 -07:00
Tom MacWright
5838f05116 Merge tags without a space, fixes #941 2013-03-08 10:51:44 -05:00
John Firebaugh
cb0e02d56f Support merging point + line 2013-03-06 17:37:17 -08:00
John Firebaugh
b7894ceaf0 Calculate participating ways in AddMidpoint
Due to differenced redraw, midpoint.ways was getting stale,
so sometimes dragging a midpoint didn't add the new node to
all ways. Better to calculate participating ways when needed.
This also simplifies the code for adding a midpoint via double
click. It does make filtering midpoints on redraw a bit more
expensive, but a cursory profile didn't show it being a problem.

Fixes #763.
2013-02-27 20:41:38 -08:00
John Firebaugh
78f6a00029 Fix moving multiple entities which share nodes
While here, implement moving multipolygons too.
2013-02-27 17:12:39 -08:00
John Firebaugh
7a1800fd68 Delete orphaned relation members 2013-02-27 16:32:52 -08:00
John Firebaugh
b751c1ece9 Simplify, fix spec 2013-02-27 16:32:26 -08:00
Tom MacWright
61d7ec45b5 Banish function ( style 2013-02-12 16:35:47 -05:00
John Firebaugh
f1079a644a Fix relation role in Split (#694) 2013-02-08 20:44:14 -08:00
John Firebaugh
e05531ad6c Fix circularize boundary cases (fixes #494)
There are still more boundary cases even farther out. But this is
probably sufficient for the real world.
2013-02-08 12:08:48 -08:00
Tom MacWright
3626534a70 Remove deprecate tags test 2013-02-07 17:10:31 -05:00
John Firebaugh
e1bc78871b Handle entities that are already deleted (fixes #672) 2013-02-07 13:46:25 -08:00
John Firebaugh
0af51a0ef6 Improvements to Split
* Split a closed way at selected and antipode point (fixes #651)
* Split an area into a multipolygon (fixes #572)
2013-02-06 16:00:19 -08:00
John Firebaugh
f6e726bcd6 Join should run Reverse where necessary (fixes #652) 2013-02-06 14:31:11 -08:00
John Firebaugh
bd8c9d6a00 Support merging points into an area (#435) 2013-02-06 13:42:34 -08:00
John Firebaugh
d7639acb22 Set up iD.actions.Join to be more flexible 2013-02-06 13:42:34 -08:00
John Firebaugh
b62f106be8 Extract Relation#replaceMember 2013-02-06 13:42:34 -08:00
John Firebaugh
c9fb1444db Connect via drag and drop
Fixes #598.
2013-02-04 16:48:54 -08:00
John Firebaugh
73098d259e Specify type for relation member 2013-02-04 16:48:40 -08:00
Tom MacWright
3e71dd56cd Wipe out some tags entirely, refs #585 2013-02-04 17:20:06 -05:00
Tom MacWright
3449a680a7 Add tag deprecation action and data, not yet integrated. 2013-02-04 16:02:34 -05:00
John Firebaugh
a8410be6eb iD.actions.Join 2013-02-01 17:31:32 -05:00
John Firebaugh
9120f33aa7 ReverseWay -> Reverse 2013-02-01 17:31:32 -05:00
John Firebaugh
c86792a77b SplitWay -> Split 2013-02-01 17:31:32 -05:00
John Firebaugh
e1d5a0cb03 Unjoin -> Disconnect 2013-02-01 17:31:32 -05:00
John Firebaugh
58fcf746a2 Delete multiple 2013-02-01 15:08:41 -05:00
John Firebaugh
7ba31f05d2 Support deleting relations 2013-02-01 14:48:11 -05:00
John Firebaugh
3605895dfa ChangeEntityTags -> ChangeTags 2013-01-31 12:41:29 -05:00
John Firebaugh
df72ef254f ChangeEntityTags -> ChangeTags 2013-01-31 12:07:54 -05:00
John Firebaugh
6f7079d11c AddWay/AddNode -> AddEntity 2013-01-31 12:06:21 -05:00
John Firebaugh
6ae360a533 These tests now pass 2013-01-31 08:28:10 -05:00
John Firebaugh
e381b6ab26 Extract AddMidpoint action 2013-01-30 15:47:33 -05:00
John Firebaugh
98073b0d26 Add pending tests for #508
Update DeleteWay tests to use Graph#update. Eventually we
should do this for all action tests.
2013-01-25 16:35:50 -05:00
John Firebaugh
b6d8ddc2f8 Remove unused branch and obsolete test 2013-01-24 11:21:12 -05:00
John Firebaugh
3138ba2805 Handle incomplete relations in SplitWay (fixes #466) 2013-01-23 15:52:35 -05:00
John Firebaugh
72618574f3 Rename permitted -> enabled and add to more actions 2013-01-23 15:33:30 -05:00
John Firebaugh
278bb4a51c Fix some cases where a degenerate way was created 2013-01-23 12:40:27 -05:00
John Firebaugh
292c916cb1 Converting some actions to entity methods
The guidelines here are:

Entity methods:
  return a modified entity
  don't necessarily maintain whole-graph consistency

Actions:
  return a modified graph
  always maintain whole-graph consistency
  call entity methods liberally
  generally don't call other actions
2013-01-23 12:40:27 -05:00
John Firebaugh
29d608970b UnjoinNode action (fixes #442) 2013-01-23 10:07:10 -05:00
John Firebaugh
c8bee263e9 Split ways at T junctions (fixes #453) 2013-01-21 20:32:17 -05:00
John Firebaugh
e19f86a285 Add newly split way to member relations 2013-01-18 14:44:29 -08:00
John Firebaugh
f16c54e12f Match argument order with AddRelationMember 2013-01-18 14:44:29 -08:00
John Firebaugh
2ee07a3b74 Add iD.actions.AddRelationMember 2013-01-18 14:44:29 -08:00
John Firebaugh
2a0ef21548 Fix restriction handling 2013-01-18 14:44:29 -08:00
John Firebaugh
fe8239b81e Rewrite tests 2013-01-18 14:44:28 -08:00
John Firebaugh
ce6e11a8a0 Test copying tags to the split way 2013-01-18 14:44:28 -08:00
John Firebaugh
4c6757714c parentWays/Relations now take an entity 2013-01-11 17:26:25 -08:00
John Firebaugh
bcb4de4305 Reverse directional tags and roles when reversing a way
Reverse known direction dependent tags other than `oneway`.
We assume that correcting a backwards oneway is the primary
reason for reversing a way.

The following transforms are performed:

Keys:
      *:right=* ⟺ *:left=*
    *:forward=* ⟺ *:backward=*
   direction=up ⟺ direction=down
     incline=up ⟺ incline=down
        *=right ⟺ *=left

Relation members:
   role=forward ⟺ role=backward

In addition, numeric-valued `incline` tags are negated.

The JOSM implementation was used as a guide, but transformations that 
were of unclear benefit or adjusted tags that don't seem to be used
in practice were omitted.

References:
   http://wiki.openstreetmap.org/wiki/Forward_%26_backward,_left_%26_right
   http://wiki.openstreetmap.org/wiki/Key:direction#Steps
   http://wiki.openstreetmap.org/wiki/Key:incline
   http://wiki.openstreetmap.org/wiki/Route#Members
   http://josm.openstreetmap.de/browser/josm/trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java

Fixes #299.
2013-01-07 16:26:56 -08:00
John Firebaugh
f0acbc2653 loc -> point, dxdy -> delta 2012-12-21 12:10:44 -08:00