Commit Graph

8536 Commits

Author SHA1 Message Date
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
71fbcd8aaf [traverse] remove now redundant condition, clusters never have discarded turns 2016-01-06 18:19:40 +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
b272e9f615 [intersection] also for intersection, uu turns have to be included to
make proper decisions on clusters.
This also removes switch_source initialization (which is false anyway)

This fixes all known cases for multi union/intersection again,
except for the number of clips. Difference still has one area error
2016-01-06 13:54:07 +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
e7606cc0cd [handle_touch] stop recursion at completion 2016-01-06 12:53:17 +01:00
Barend Gehrels
429a6af590 [handle_touch] add temporary conditions to stop recursion 2016-01-06 12:23:30 +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
1ced3357d9 [overlay] changes in names of types/parameters to make them more
concise and consistent (mainly TurnPoints -> Turns)
2016-01-06 11:32:12 +01:00
Barend Gehrels
c2f4347a7f minor changes in layout/constness 2016-01-06 11:09:05 +01:00
Barend Gehrels
72356703fe [colocations] fix cases where uu turns are colocated with cc turns,
and are the only ones left, they should be removed in some cases
2016-01-06 11:08:09 +01:00
Adam Wulkiewicz
6125d24f95 [ci] Use newer versions of gcc, gcov and lcov. 2016-01-06 03:39:21 +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 1744a27288.
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
f803a5ad8e [traverse] small changes on next_turn_index and remove redundant condition
(! result was already checked a few lines before)
2016-01-01 10:51:07 +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
5dda03ac46 [enrich] remove debug info 2015-12-31 14:56:31 +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
44917ea227 [traverse] remove commented output 2015-12-31 12:50:29 +01:00
Barend Gehrels
ca2123646c [overlay] remove unused typedef 2015-12-31 12:49:53 +01:00
Barend Gehrels
3633402bf8 [colocations] handle todo item, discard colocated uu turns conditionally
based on ordering turns
2015-12-31 12:49:24 +01:00
Barend Gehrels
92dd2295ed [cololocations] simplified clustering, less merging necessary 2015-12-30 20:27:10 +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
dbb92e7088 [traverse] move logic of select_operation to inside traverse_to_next_turn,
to prepare using selected cluster operation later
2015-12-29 19:33:33 +01:00
Barend Gehrels
d104e7175f [traverse] small improvements w.r.t. using objects instead of iterators 2015-12-29 19:03:29 +01:00
Barend Gehrels
1436dc0afd [traverse] simplify loop because backtrack now just rejects, finalized
rings are preserved
2015-12-29 18:33:32 +01:00
Barend Gehrels
07a3cc3506 [traverse] minor changes in names and simplified main loop 2015-12-28 19:44:44 +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
2777d57961 [enrich] remove old block now that discarding uu is moved after
handling colocations
2015-12-24 18:35:42 +01:00
Barend Gehrels
aaae44d041 [overlay] change debug info 2015-12-24 18:34:38 +01:00
Barend Gehrels
5e6ba5ed06 [colocations] fix #case_recursive_boxes3 by adding condition
that turn should not be collinear (to be found out why)
2015-12-24 18:32:02 +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
e14d7fcd88 [traverse] in case of no outgoing arcs, always return false
This fixes all current union_multi testcases
2015-12-24 14:55:23 +01:00
Barend Gehrels
00fca1e961 [traverse] select right operation from first outgoing arcs, in case there
are multiple
2015-12-24 14:08:01 +01:00
Barend Gehrels
7614b1bce6 [traverse] add warning for subject 2015-12-24 13:42:02 +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
aa230c7f71 [traverse] make visitor/robust policy also member, and call visitor
from other visit
2015-12-23 18:43:42 +01:00
Barend Gehrels
f5e8d4d7ec [traverse] rename turn/op to start_... 2015-12-23 18:29:53 +01:00