1462 Commits

Author SHA1 Message Date
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
Barend Gehrels
90485acf79 Merge branch 'develop' into feature/fix_tangencies 2015-12-06 17:45:12 +01:00
Adam Wulkiewicz
b1f31d12dd [test][traverse] Add failing case. 2015-12-03 10:39:28 +01:00
Barend Gehrels
cf42d0d08d [test] add simpler version of case_108_muli as single version, with
missing intersection point
2015-11-30 23:09:32 +01:00
Barend Gehrels
285e0ad61d Merge branch 'develop' into feature/fix_tangencies 2015-11-28 09:10:28 +01:00
Barend Gehrels
b022ae5606 [test] add failing case for missing intersection point, case_108_multi 2015-11-28 07:22:33 +01:00
Menelaos Karavelas
4dedae6eb7 Merge pull request #335 from mkaravel/fix/is_valid_invalid_coordinates
Boost.Trac ticket 11711
2015-11-26 23:30:58 +02:00
Barend Gehrels
2e13b87bce Merge pull request #336 from mapycz/fix-centroid-crash
[algorithms][centroid] Fix crash when multi-geometry contains empty geometry
2015-11-22 14:15:32 +01:00
Barend Gehrels
2945201838 [overlay] pass inverse flag for difference and use it
to reverse condition on interior/exterior touch
2015-11-22 14:01:05 +01:00
Jiri Drbalek
39ef9e6e04 [test][algorithms][centroid] More centroid tests on empty geometries 2015-11-21 19:51:03 +00:00
Barend Gehrels
9230c3f142 [traverse][test] updates test svg 2015-11-21 19:03:19 +01:00
Barend Gehrels
939bf656f9 [intersection/enrich] don' t skip after ii if it is about interior rings,
they should be traversed. This fixes case mysql_21965285_b_inv
and helps for cases #58 (no backtracking)
2015-11-21 19:01:51 +01:00
Barend Gehrels
6fb034581a [traverse] fix situations for ii by checking if in a cc case (where either
one can be selected normally) one of the options leads to the starting turn.

This, together with previous commit (finish early), fixes the many
variants of case #58
2015-11-21 18:56:40 +01:00
Barend Gehrels
324bfac801 Merge branch 'develop' into feature/fix_tangencies 2015-11-21 11:54:39 +01:00
Adam Wulkiewicz
48f64f6fbe [test][intersection][difference] Add/move failing test case.
Add a case of intersection corresponding to the failing difference case.
Move the case related with MultiPolygons to a different file.
2015-11-19 19:29:04 +01:00
Barend Gehrels
ba4a832bb7 Merge branch 'develop' into feature/fix_tangencies 2015-11-18 20:56:15 +01:00
Adam Wulkiewicz
ec86b24401 [test][difference] Add failing case. 2015-11-18 19:49:30 +01:00