106 Commits

Author SHA1 Message Date
Adam Wulkiewicz
33ece2c567 [test][algorithms] Use new intersection_strategies name. 2016-04-12 03:32:44 +02:00
Adam Wulkiewicz
f46ed34965 [test][union][intersection] Add test case (failing union). 2016-04-05 20:23:30 +02:00
Barend Gehrels
a1a16084ec [test] add testcase for ticket 11018 (fixed) 2016-03-26 16:16:50 +01:00
Barend Gehrels
4a9b2ba167 [test] add possibility to check validity to intersection tests 2016-03-26 16:14:22 +01:00
Barend Gehrels
0d10b75966 [test] add testcase for ticket 11576, which is fixed 2016-03-23 16:44:52 +01:00
Barend Gehrels
588d102b19 [union] same solution as for intersection should be applied for union,
but not in case of uu or similar
2016-03-16 17:54:03 +01:00
Barend Gehrels
7d3d0dd69f [traverse] revise last weeks fix, make it more general. It should just
skip finalized arcs. This fixes the robustness test almost completely
2016-03-16 14:46:05 +01:00
Barend Gehrels
5383c24b34 [traverse][cluster] fix cases where it selected wrong arc at cluster,
a pseudo interior ring
2016-03-09 11:51:12 +01:00
Adam Wulkiewicz
463a085698 Merge pull request #341 from awulkiew/fix/rescale_policy
Enable rescale policy only in cartesian coordinate system.
2016-03-06 22:41:39 +01:00
Barend Gehrels
de63ab3472 [test] disable exception test 2016-03-02 20:23:02 +01:00
Barend Gehrels
5677a2a764 [test] remove defines for failing tangencies test for (multi)difference and intersection 2016-03-01 18:23:50 +01:00
Adam Wulkiewicz
6162da7411 [test][intersection] Add spherical equatorial test case (ticket 11789). 2016-02-04 16:33:44 +01:00
Barend Gehrels
a236ba3391 [overlay] add counts to enrichtment info, this avoids it to be redone,
and use it in traverse omitting the operation condition
2016-01-13 15:58:51 +01:00
Barend Gehrels
8364aed91b [intersection] fix cases where intersection has to travel through uu/ux 2016-01-13 12:49:47 +01:00
Barend Gehrels
d256e57487 [overlay] now we can/need to remove functionality to discard turns
colocated with uu and the same ring.
This breaks one case (# case_recursive_boxes_23) but repairs many (about 50%
of the wrong cases in robustness test)
2016-01-13 10:52:04 +01:00
Barend Gehrels
5f028b0b04 [overlay] split polygon_count in left_count/right_count, this is necessary
for some cases (ex. #case_recursive_boxes_29). Also, necessary, now that
startable is defined, don't discard colocated cc in clusters, they are
sometimes necessary.
2016-01-10 19:06:34 +01:00
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
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
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
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
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
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
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
515d75ffe0 [test] update testcases, one more failing (but that fails for multi too)
and one fixed in the meantime
2015-11-18 17:41:37 +01:00
Barend Gehrels
a9903f8c7f [overlay] fix ordering ii-turns and skip turns afterwards 2015-11-18 17:33:23 +01:00
Barend Gehrels
67ac81e5b2 [overlay] fix cases where intersection point is in the middle of the
first segment, and not at the endpoint
2015-11-18 14:53:00 +01:00
Barend Gehrels
026abb015d [test] temporarily exclude case #81 recently added 2015-11-18 11:15:01 +01:00
Barend Gehrels
a48a935064 [overlay] self-tangencies, similarly as handling side left/right,
handle cases where one leg continues collinearly
2015-11-18 11:14:35 +01:00
Barend Gehrels
e2764a795b [overlay] sort on cc too. Also, sort/fix cases where ux is considered for intersection too.
They are discarded now, besides the sorting order is fixed (but that
alone does not help)
2015-11-15 11:55:13 +01:00
Barend Gehrels
c7d419785e [overlay] in less_by_segment_ratio, sort turns where operation occurs
(and not in the other turn) first
2015-11-14 11:23:37 +01:00
Barend Gehrels
d038e58f16 [overlay] check for sides w.r.t. both, this fixes two cases for
intersection
2015-11-13 20:08:14 +01:00
Barend Gehrels
b891bbe741 [overlay] use same functionality also for intersection 2015-11-13 19:29:55 +01:00