Barend Gehrels
01df9eacbb
[overlay] fix implementation of startable flag, it should start if there
...
are 1 (union) or 2 (intersection) polygons on right hand
2016-01-10 13:32:08 +01:00
Barend Gehrels
e4624dad28
[union] remove discarded lonely uu turns from cluster
2016-01-09 20:09:35 +01:00
Barend Gehrels
7931e0445b
[intersection] now discarded uu turns outside clusters, they block traversal
2016-01-09 19:31:19 +01:00
Barend Gehrels
b7a16976c9
[overlay] handle startable functionality for traverse w.r.t. clusters
...
This has a small regression on 5 cases in multi_difference, to be inspected,
and can change the number of holes due to commenting handle_touch
2016-01-09 13:39:28 +01:00
Barend Gehrels
f377eebf8c
[traverse] instead of combination uu/ux for specific behaviour,
...
now check on uu/* (any turn in combination with uu) for unionts
2016-01-08 18:28:38 +01:00
Barend Gehrels
0d3ef5e3e9
[intersection] discard turns colocated with uu too (these turns are based on
...
invalid input)
2016-01-07 19:34:08 +01:00
Barend Gehrels
59125adb8d
[intersection] don't exclude ux for intersection because it is necessary
...
to block certain paths
2016-01-07 18:59:05 +01:00
Barend Gehrels
98f26765e7
[union] change solution for reversed clusters (uu/ux only),
...
this fixes the new case #case_recursive_boxes21
This fixes again all current multi union/intersection/difference and all union
2016-01-06 22:29:52 +01:00
Barend Gehrels
32ddae6c0d
[union] handle clusters with uu-only and halfway incoming arcs
2016-01-06 18:18:18 +01:00
Barend Gehrels
c9836ca17f
[union] handle clusters with uu/ux combined
2016-01-06 17:18:05 +01:00
Barend Gehrels
2c1a7b7f40
[union] fix simple cases having two colocated uu turns
...
(appearing now that uu turns are included)
2016-01-06 16:52:19 +01:00
Barend Gehrels
e52f55bd78
[test] case_36 is fixed now (handle_touch),
...
correct expected #holes
2016-01-06 13:01:00 +01:00
Barend Gehrels
655b4f887a
[debug] add visitor to handle_touch
...
and some parameter renamings
2016-01-06 12:23:07 +01:00
Barend Gehrels
0d6f2e5285
[overlay] use colocated for colocated cc turns, and if it is like that,
...
include it in turn_info_map to mark it as traversed
2016-01-03 14:44:12 +01:00
Barend Gehrels
f6411ddfcf
[overlay] changes in test program (svg output)
2016-01-03 13:23:46 +01:00
Barend Gehrels
160d8dff0a
Revert "[overlay] remove duplicate line from unit test"
...
This reverts commit 1744a27288604ae5cd66f9ebaa284652cc023c7f.
2016-01-03 13:21:55 +01:00
Barend Gehrels
1744a27288
[overlay] remove duplicate line from unit test
2016-01-03 13:17:34 +01:00
Barend Gehrels
f803c0cae2
[overlay] stop discarding uu turns. Discard cc turns colocated with uu turns.
...
Including uu turns is necessary to handle cases as in #recursive_boxes_17 and also for
validity of output polygons.
This also makes code simpler for now, removing the separate uu handling from
for example select_rings
2016-01-03 13:17:17 +01:00
Barend Gehrels
d9ccb0563f
[overlay] unit test remove duplicate line which was caused
...
by selecting lines on committing
2016-01-03 11:47:53 +01:00
Barend Gehrels
63b667aa82
Merge branch 'feature/handle_touch' into feature/cluster
...
Conflicts:
include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp
include/boost/geometry/algorithms/detail/overlay/overlay.hpp
include/boost/geometry/algorithms/detail/overlay/traverse.hpp
include/boost/geometry/algorithms/detail/overlay/turn_info.hpp
test/algorithms/overlay/Jamfile.v2
Skipped some files in merging:
unit tests, test cases, less_by_segment_index
Turned off the handling of touch (so this is merge only)
2016-01-03 11:47:19 +01:00
Barend Gehrels
fe5264ef00
[traverse] fix selection of operation in case of continue: do not
...
select a continue operation if next turn is a dead end
2016-01-01 11:09:21 +01:00
Barend Gehrels
e059715a2a
[traverse] fix selecting invalid arc in cluster
2015-12-31 18:09:10 +01:00
Barend Gehrels
f63573d58b
[colocations] fix assigning discarded turns for clusters
2015-12-31 15:55:00 +01:00
Barend Gehrels
716fe421e0
[enrich] fix cluster behaviour, only point to next turn if clusters
...
are also on
2015-12-31 14:55:31 +01:00
Barend Gehrels
eee10489ad
[traverse] fix, take the right operation in a cluster instead of using
...
select_operation
2015-12-30 15:18:54 +01:00
Barend Gehrels
e882f5e224
[traverse] fix registration of start which should be done immediately,
...
to get correct early finish for ii turns
2015-12-27 18:42:39 +01:00
Barend Gehrels
5c18dd370f
[colocations] don't discard ring if it is blocked
...
(fixes #case_recursive_boxes_4)
2015-12-24 18:20:50 +01:00
Barend Gehrels
4878e7c34c
[enrich] move discarding uu until after clustering, and within
...
clustering discarding turns colocated with uu on the same ring.
This breaks 2 cases, to be solved later, and fixes case_recursive_boxes_12
2015-12-24 17:05:05 +01:00
Barend Gehrels
65a3eeb804
[traverse] don't select starting points from clusters which are build in
2015-12-24 13:41:30 +01:00
Barend Gehrels
afd2599bc9
[overlay] instead of traversing through cluster, the next turn index
...
is determined in enrich_intersection_points
2015-12-24 13:38:48 +01:00
Barend Gehrels
90d0fdb2a3
[test] fix debug info
2015-12-23 18:45:54 +01:00
Barend Gehrels
b0684c4e08
[traverse] move traversal itself to traversal structure, only doing
...
one traversal. Currently returns error code for backtracking.
2015-12-23 17:48:51 +01:00
Barend Gehrels
7b9f39346b
[overlay] debug make text for visited gray such that the rest
...
more stands out
2015-12-23 16:34:47 +01:00
Barend Gehrels
194f3bf67c
[overlay] add check on next turn index, if -1 take next one
...
to avoid dead ends
2015-12-20 19:05:30 +01:00
Barend Gehrels
64943c0911
[intersection] fix sort_by_side order for non-colinear points on same side
2015-12-20 13:09:39 +01:00
Barend Gehrels
f2319263a0
[union] fix known cases using clustering and sort_by_side during traversal
2015-12-19 18:10:34 +01:00
Barend Gehrels
e7e425f8de
[overlay] fix #recursive_boxes by enabling 0,4 as tight corner too.
...
This introduces a ccw method, called by tight functions.
Note that it does NOT work for the two other similar methods using ranks
2015-12-11 22:00:32 +01:00
Barend Gehrels
33ada1d6e8
[fix] Fix cases by correct ordering left/right using sorted side information
...
This fixes #recursive_boxes 6, 10, 11
Debug cases added to overlay.cpp (10, 11)
2015-12-10 20:14:10 +01:00
Barend Gehrels
a0fc7307ac
[fix] use intersection point for sorting, the "both" is sometimes wrong
...
This fixes #recursive_boxes_8
2015-12-09 18:40:28 +01:00
Barend Gehrels
d08f527271
[test] added several existing and two new tests mainly for difference
...
(work in progress)
2015-12-09 18:05:40 +01:00
Barend Gehrels
378bee678a
[fix] use sort_by_side now also for ordering of ii/non_ii turns
...
This fixes cases #101 , #102 and #107 for difference (and corresponding
inverse versions for intersection)
2015-12-08 18:35:38 +01:00
Barend Gehrels
72d8c21258
[test][difference] Enable two other formerly failing cases, now fixed:
...
#ggl_list_20120915_h2 a/b
Fixed by handling turns colocated with xx
and omitting ux for intersection/difference
2015-12-08 12:20:54 +01:00
Barend Gehrels
a43cb3c171
[test][difference] Enable two formerly failing cases, now fixed:
...
#recursive_boxes_1 and #recursive_boxes_2
and updated expectations of failing/non failing tests
2015-12-08 12:15:58 +01:00
Barend Gehrels
6de8d91942
[fix] fix newly added case and get rid of different code for
...
intersection/difference
2015-12-07 22:45:29 +01:00
Barend Gehrels
9302c9f02f
[extensions][test] add inverse algorithm to calculate the inverse (in extensions)
...
and use it in overlay unit test
2015-12-07 20:17:31 +01:00
Barend Gehrels
9b299e8ab4
[test] add intersections of inverse versions of multi #65 ,
...
showing the current approach of discarding xx/ux is wrong (as neither not done
for union/difference)
2015-12-07 20:12:38 +01:00
Barend Gehrels
11844b6b74
[test] extend visitor with traversal information
2015-12-06 19:21:50 +01:00
Barend Gehrels
4a491fd77d
[overlay][test] add test visitor for overlay operation including turn and turn-order
2015-12-06 18:45:21 +01:00
Barend Gehrels
4f90bcd4a5
[fix] handle ix/ix as ux/ux
...
This fixes case #77 ; case #72 is fixed by earlier changes
2015-12-06 18:21:35 +01:00
Barend Gehrels
0c9d365d4b
[fix] copy_segment_points did not use reverse, fixed. It is now similar to
...
copy_segments
This somehow influences one unit test case but that will be handled later.
2015-12-06 18:01:19 +01:00