Barend Gehrels
1e99b1adf9
[traverse] use switch_source in clusters
2016-05-05 12:25:20 +02:00
Barend Gehrels
c2baa5c46b
[test] add testcases for two tickets
2016-04-27 11:42:16 +02:00
Barend Gehrels
df9a97dea8
[traverse] enhance validity by checking touching (uu or combined turns creating a touch)
...
in clusters.
2016-04-27 11:39:40 +02:00
Barend Gehrels
950c2644e5
[traverse] reimplement touch the same way as traversal, but don't create rings
...
there but detect source-switching
This fixes several touching-cases (clusters with uu not yet handled)
2016-04-20 14:13:09 +02:00
Barend Gehrels
cfa0c184f8
Merge branch 'develop' into feature/cluster_touch
2016-04-06 09:38:08 +02:00
Adam Wulkiewicz
f46ed34965
[test][union][intersection] Add test case (failing union).
2016-04-05 20:23:30 +02:00
Barend Gehrels
5a5ed0cb10
[test] in union_multi, test for the uu-interior ring cases (4 of them still failing w.r.t. validity)
2016-03-30 11:27:26 +02:00
Barend Gehrels
ebe3ffbd58
[test][union] test validity by default
2016-03-30 11:12:09 +02:00
Barend Gehrels
ebd3b6a4b9
[test] fix #exected holes
2016-03-27 10:58:46 +02:00
Barend Gehrels
7818ce8793
[test] add testcase for ticket_11984 which is solved now by last commit
2016-03-23 16:05:01 +01:00
Barend Gehrels
85e0755ccd
[traverse][fix] use two passes, in first pass avoid uu turns to get
...
the interior rings right at starting points. Second pass use uu, but
only switch source if there are only uu turns found. This fixes most
of the simple cases (complex cases can still go wrong)
2016-03-23 13:25:30 +01:00
Barend Gehrels
1439c479d6
[union][test] multi: add cases from branch handle_touch
2016-03-23 11:22:47 +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
d9ac176f27
[test] adapt expected values
2016-02-28 12:44:59 +01:00
Barend Gehrels
c4c180bb7d
[union] instead of checking uu, count open spaces to support also
...
conbined touching turns without a uu
2016-02-10 20:34:37 +01:00
Barend Gehrels
5eea0f2f61
[test] updated expected clips/holes
2016-02-03 11:18:45 +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
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
f2319263a0
[union] fix known cases using clustering and sort_by_side during traversal
2015-12-19 18:10:34 +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
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
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
e97bbb4da1
[overlay] fix cases where IP is not at endpoint. This fixes the last
...
union/buffer cases with less_by_segment_ratio instead of handle_tangencies
2015-11-12 19:46:29 +01:00
Barend Gehrels
242c619b35
[overlay] handle ux/ui and ui/ui in a more generic way, for union,
...
checking the relative sides of the outgoing segments (in the sorting)
2015-11-11 21:50:34 +01:00
Barend Gehrels
529b8e804c
[overlay] fix ux/ux cases by sort order
...
(instead of handle tangencies)
2015-11-11 16:18:19 +01:00
Barend Gehrels
4a05869d2f
[overlay] turn off handle_tangencies
2015-11-11 15:43:29 +01:00
Barend Gehrels
4270ccce20
[test] add recent regression for intersection. Found using recursive_polygon
...
Date of regression yet unknown. In 1.55 the recursive_polygons tool
never detected errors.
2015-11-11 13:34:49 +01:00
Barend Gehrels
2cf781aa68
[test] add testcase for which is failing for intersection. This is the
...
inverse testcase for difference (which is also failing and which is why it
is added). To be fixed.
2015-11-04 12:36:16 +01:00
Barend Gehrels
94dc52a931
[test] add test case for ticket 10803 and added code to test for validity
2015-11-01 12:17:45 +01:00