Commit Graph

470 Commits

Author SHA1 Message Date
Barend Gehrels
6b637c91c0 Merge branch 'feature/intvalid' into develop 2018-01-04 21:42:43 +01:00
Barend Gehrels
9f00c8501b [union] skip discarding i/e turns for union because this causes some turns
to be missed. This fixes the new case #case_recursive_boxes_88
2017-12-31 17:17:21 +01:00
Barend Gehrels
f704579ed0 [overlay] by default use self-turns. This reverses definition
of define SELF to NO_SELF. Including all unit tests.
2017-12-29 13:17:42 +01:00
Adam Wulkiewicz
b4d2f10f2b [test][algorithms] Add centroid() cases and fix MSVC x64 conversion warnings. 2017-12-27 01:55:36 +01:00
Adam Wulkiewicz
3b80d1ae71 [test] Fix unused parameter warnings. 2017-12-26 14:12:16 +01:00
Barend Gehrels
0f4712bdfb [test] add recent testcases to the other test scenarios 2017-12-20 16:54:51 +01:00
Barend Gehrels
f6c67daba6 [difference] fix cases where ii turns were not discarded, this
was a todo-item, it was not yet done for difference.

Including unit testcase using this.
2017-12-20 16:22:27 +01:00
Barend Gehrels
b28b312141 [difference] fix cases where potential inner rings have same area as
outer rings (located elsewhere), due to an earlier optimization
2017-12-20 14:07:51 +01:00
Barend Gehrels
11cff883b0 [intersection] Fix newly found case by removing some conditions from
handle_self_turns and setting ii-self-turns as non-startable instead of
discarding them.
2017-12-16 18:52:39 +01:00
Barend Gehrels
556896c7cc [traverse] need to select on operations in selecting ranks, it is not
done later. Small regression found by recursive_polygons
2017-12-15 14:37:17 +01:00
Barend Gehrels
5d99d1608d [overlay] fix new #case_recursive_boxes_82 by greatly simplifying the code.
patterns/aggregations were added to solve specific intersection problems
and validity in the past. In the meantime self-turns and isolation information
is much better, and those code is not needed anymore.
This also fixes the #mysql_regression_1_65_2017_08_31
This also makes union/intersection code for handling clusters much more similar
2017-12-15 13:20:41 +01:00
Barend Gehrels
080f0f22f4 [traverse] fix case where hole of one of the inputs formed a
disconnected interior (invalid). In the end it is fixed by only
deleting code. This code is not really old but added to fix some
cases, which are finally fixed in a more generic way.

It fixes a new case and also enhances #case_141_multi
2017-12-06 14:25:42 +01:00
Barend Gehrels
b25596dcf1 [test] remove switch_source from debug-svgs 2017-12-06 12:20:00 +01:00
Adam Wulkiewicz
4598fc01de [test][get_turns] Add geo case with antipodal endpoints. 2017-11-20 21:08:46 +01:00
Barend Gehrels
9577300b85 [difference] add testcase for ticket 9942, and a simplified version of it 2017-11-15 12:02:08 +01:00
Adam Wulkiewicz
968035415f Merge pull request #424 from awulkiew/fix/geographic_preceding
Fix preceding/exceeding in geographic CS
2017-10-25 23:28:14 +02:00
Barend Gehrels
9024c5f095 [test] Add testcase for incorrectly generated interior ring 2017-10-23 14:57:11 +02:00
Barend Gehrels
8dee4ab1c8 [is_valid] check reported testcase, it is valid now. Also add it to
union to check the self-intersection-points (which are many)
2017-10-23 13:12:39 +02:00
Barend Gehrels
94ce58de02 [overlay] fix bug in new code, it should check for the operation because
it can happen that union travels to itself and that is irrelevant
2017-10-23 11:26:21 +02:00
Barend Gehrels
b20aeba724 [overlay] fix cases where non-traversed rings were incorrectly added.
This also changes the order of checks
2017-10-11 13:54:48 +02:00
Barend Gehrels
4d1b094e6a [overlay] discard self-turns i/u for intersection traveling to themselves 2017-10-11 12:58:29 +02:00
Barend Gehrels
65a5c2ba53 [overlay] fix bug (it always returned false), and it should not consider
all turns in a cluster here. This fixes #case_recursive_boxes_76
Including unit test
2017-10-04 18:12:37 +02:00
Barend Gehrels
c5710b2ab9 [overlay] skip ranks of isolated regions 2017-10-04 14:00:40 +02:00
Barend Gehrels
210b662597 [overlay] correct (partly) the behaviour of isolation detection for
an isolated ring, connected to another isolated ring which is
connected multiple times to it
2017-09-27 13:05:25 +02:00
Barend Gehrels
3160ee6804 [overlay] fix additional case where isolation information was incorrect.
Including unit test. This also influences two other testcases but they
are not completely fixed by this fix
2017-09-20 17:00:52 +02:00
Barend Gehrels
f572abf5c1 [overlay] fix case which was not detected as isolated because it was
not clustered. Isolation is now independent on clustering.
Including unit test
2017-09-20 12:52:18 +02:00
Barend Gehrels
31f1872e46 [overlay] fix debug information 2017-09-20 10:21:50 +02:00
Adam Wulkiewicz
f93e3ad806 [test][union][overlay] Add geographic A/A test case (big polygons, one covering pole). 2017-09-17 21:14:18 +02:00
Barend Gehrels
ce9928a1aa [overlay] fix case which needed a specific selection of a matching ranked point 2017-09-13 13:07:10 +02:00
Barend Gehrels
6e4c61d202 [overlay] add check for self-cluster, which should be located within
the other geometry to avoid creating false rings
2017-09-06 14:40:44 +02:00
Barend Gehrels
3232fd0675 [test] enable testcase for all operations 2017-09-06 10:21:39 +02:00
Barend Gehrels
0591aa63ea Merge branch 'develop' into feature/intvalid 2017-08-30 13:30:46 +02:00
Barend Gehrels
a449c39e6f [overlay] fix missing ring due to discarded self-intersection turn 2017-08-30 12:56:48 +02:00
Barend Gehrels
c7c4c23f4f [test] include testcase for checking left_count 2017-08-23 15:38:18 +02:00
Barend Gehrels
2088e708cd [test] add testcase for union for last fix 2017-08-23 13:52:25 +02:00
Barend Gehrels
6db9266768 [overlay] replace colocated_ii / uu with has_colocated_both
because only one of them is used.
2017-08-23 13:49:02 +02:00
Barend Gehrels
e69c05da2f [overlay][test] add testcase for needing to avoid having blocked turns
in untraversed rings
2017-08-23 11:23:32 +02:00
Adam Wulkiewicz
35897a6a81 Merge pull request #412 from awulkiew/fix/algorithms_side_strategy
Geographic coordinate system related fixes.
2017-07-31 18:30:25 +02:00
Barend Gehrels
0938983c5e [test] add testcase 66 for startable self-turns 2017-07-31 12:16:26 +02:00
Barend Gehrels
d25fe47a93 [overlay] fix case which was not taking correct rank 2017-07-26 14:26:44 +02:00
Barend Gehrels
174ef5e38c [overlay] fix cases where two arcs leave a cluster in same direction,
one longer as the other. Remaining distance needs to be considered.
Including testcase case_recursive_boxes_64 which is fixed by this issue.
2017-07-19 18:59:55 +02:00
Barend Gehrels
497e055639 [overlay] don't check startable for determining has_traversed_turn,
and also check for turns both going in opposite direction (so uu for int)
This fixes case_recursive_boxes_63 (but not for difference yet)
2017-07-19 14:02:59 +02:00
Adam Wulkiewicz
1dad2eb97c [test][overlay] Update cases wrt recent changes (user-defined strategy). 2017-07-14 16:19:07 +02:00
Barend Gehrels
9acd4dcbba [overlay] dont excluded colocated self-turns from check within other geometry 2017-07-12 09:56:23 +02:00
Barend Gehrels
1b71880b4f [intersection] fix intersection pattern where it accidentally took last
one instead of penultimate
2017-07-08 12:45:24 +02:00
Barend Gehrels
8012d17ca6 Merge branch 'feature/intvalid' into develop 2017-07-05 17:08:52 +02:00
Barend Gehrels
4ccd4e43ce [is_valid] add extra info to turn to determine validity
Including unit test adaptions. Results are verified visually with SVG
2017-07-05 13:06:15 +02:00
Adam Wulkiewicz
77d0195d21 [test][overlay] Update select_rings test wrt recent changes in overlay. 2017-07-04 04:48:59 +02:00
Barend Gehrels
a1f92e9464 [test] remove #case_recursive_boxes1 from sort_by_side test because
it does not have one cluster (actually it has many)
2017-06-28 21:18:15 +02:00
Barend Gehrels
0a65db7b9b [test] Remove several testcases, because (after changes in discarding turns
from clusters) there were no clusters left in these cases
2017-06-28 21:17:41 +02:00