Commit Graph

8536 Commits

Author SHA1 Message Date
Barend Gehrels
2ac50e8b3d [overlay] split sourcefile, extract patterns 2017-06-14 11:37:24 +02:00
Barend Gehrels
437be1b2b0 [overlay] fix cases with mixed operations (no testcase) 2017-06-14 10:29:15 +02:00
Barend Gehrels
604be619d9 [overlay] fix aggregations, include blocked as from 2017-06-14 10:28:47 +02:00
Barend Gehrels
412fc452da [overlay] Relax case 2, allow both continue and intersection
Fixes new #case_recursive_boxes_53
2017-06-13 20:29:25 +02:00
Barend Gehrels
31b2a89c6d [overlay] remove duplicate condition 2017-06-13 20:18:51 +02:00
Barend Gehrels
2dbc55ed7d [dissolve] fix compilation errors reported by Johan 2017-06-12 20:30:09 +02:00
Barend Gehrels
47e1efb9e3 [test] Add testcases for variants of zoomed in cases (going OK) 2017-06-08 21:44:46 +02:00
Barend Gehrels
6b08e0b584 [test] Fix WKT (close interiors) 2017-06-08 21:43:25 +02:00
Barend Gehrels
3cd4f325ec [traverse] fix another similar case #case_137_multi now with two
different outgoing arcs
2017-06-07 22:48:18 +02:00
Barend Gehrels
9993d3697f [traverse] fix cases where touching interior/exterior is approached
from two different directions, and leave in one direction
2017-06-07 22:35:44 +02:00
Barend Gehrels
ef22284629 [traverse] refactor new method to make more options 2017-06-07 22:28:57 +02:00
Barend Gehrels
bf159328e5 [traverse] fix errors in isolation detection in switch detector by
taking clusters into account
2017-06-07 15:20:35 +02:00
Barend Gehrels
db372517b4 [traverse] fix cases where two polygons both have a touching interior ring,
which is equal to itself
2017-06-07 15:06:51 +02:00
Barend Gehrels
3f002cab91 [test] include validity check in recursive_polygons,
and by default add for self turns (necessary for validity)
2017-06-07 10:35:50 +02:00
Barend Gehrels
a8f5e53555 [test] rename out_d to out_d1 2017-06-07 10:35:03 +02:00
Barend Gehrels
95454e4c8e [traverse] redo, isolated MUST be checked. Checking interior/exterior ring is
then redundant again, besides that it does not work for differences.
This breaks case_134 but that must be fixed differently.

After this change, recursive_polygons test is flawless
w.r.t. intersections/unions (validity/with self turns not yet checked)
2017-06-05 17:45:51 +02:00
Barend Gehrels
c04f26bffa [overlay] pending commit, where operations are set to not startable,
they should not be added afterwards so set them like traversed
2017-06-05 16:00:11 +02:00
Barend Gehrels
bd16305a72 [overlay] remove original behaviour to discard turns colocated with blocked turns,
because this stops generating interior rings in certain configurations, and
it is, in the meantime, handled differently in cluster traversal.
Fixes cases like new case #case_recursive_boxes_51
2017-06-05 15:59:29 +02:00
Barend Gehrels
6088389338 [overlay] unset startable for closed turns 2017-06-05 15:26:08 +02:00
Barend Gehrels
e281d5e437 [overay] cleanup clusters properly 2017-06-05 15:25:03 +02:00
Barend Gehrels
0853342320 [traverse] fix #case_58_multi and #case_134_multi by verifying connected
regions in switch detector
2017-06-05 11:51:53 +02:00
Barend Gehrels
ecae306146 [traverse] generalize pattern for colocated interior rings by making
cases with multiple rings (#case_134_multi) possible. It also does
not check for isolated anymore but instead checks interior/exterior rings
and region_ids
2017-06-04 14:04:00 +02:00
Barend Gehrels
254203d06e [traverse] add visited to traversable
There is no unit test case for this change, but the robustness test
(recursive_polygons) gives 5 times less errors with this change
2017-06-04 12:15:23 +02:00
Barend Gehrels
b0cf8ffb59 [traverse] extend handling specific case of cc/ii with another variant,
now also solving #case_recursive_boxes_50
2017-06-04 11:23:42 +02:00
Barend Gehrels
463f778a36 [overlay] fix cases with two parallel interior rings, one touching
the exterior ring, by adding a special case for this. This solves
nearly all robustness (recursive_polygon) now.
2017-06-03 20:09:06 +02:00
Adam Wulkiewicz
5364bbb4ca Merge pull request #400 from glenfe/develop
Use pointer_traits.to_address instead of addressof(*p)
2017-05-31 13:31:10 +02:00
Barend Gehrels
3555591411 [test] add missing recursive box cases to difference_multi
(all checked visually)
2017-05-31 12:51:55 +02:00
Barend Gehrels
c051ab5724 [overlay] instead of for self-turns only, skip all discarded turns
for intersection operations
2017-05-31 11:38:52 +02:00
Barend Gehrels
390f924845 [test] add recently added cases to union/intersection tests 2017-05-31 11:22:05 +02:00
Barend Gehrels
16be4bbdb2 [overlay] fix new case #case_recursive_boxes_48 for self-intersections
by discarding self ii turns NOT located within another geometry
2017-05-31 11:12:57 +02:00
Barend Gehrels
00ef210f69 [overlay] Remove some redundant includes 2017-05-31 11:00:28 +02:00
Barend Gehrels
952a4e8a9c [overlay] extract discarding self-turns to separate headerfile 2017-05-31 10:59:52 +02:00
Barend Gehrels
acd364586f [overlay] handle todo-item, extract self_turn 2017-05-29 20:57:35 +02:00
Glen Fernandes
0ed359a624 Use pointer_traits.to_address instead of addressof(*p)
addressof(*p) before construct() is not well-defined, since p
does not alias storage that has an object constructed in it.
2017-05-29 14:01:51 -04:00
Barend Gehrels
d3481fccca [overlay] fix within-check for buffer by making it a specialization
instead of a if-condition
2017-05-28 17:28:51 +02:00
Barend Gehrels
f54f85a6de [test] update union.cpp, there is only one invalid input - but with
no robustness there are several failures
2017-05-26 22:40:15 +02:00
Barend Gehrels
c53cbe56f5 [overlay] fix cases with self-turns where interior rings are generated
within another geometry, for union
2017-05-26 22:21:10 +02:00
Barend Gehrels
7d8a46d888 [overlay] remove redundant parameter 2017-05-26 15:26:18 +02:00
Barend Gehrels
5a94c45644 [test] Check remaining problems for difference, restructure macros like in multi version 2017-05-25 16:20:35 +02:00
Barend Gehrels
36d81e18bf [test] update difference_multi, many invalid results are fixed using self-turns 2017-05-25 14:45:27 +02:00
Barend Gehrels
0bc28aadb8 [self_turns] fix direction - for this, an extra template parameter is required
(it cannot (yet) be derived from the geometry, because it causes is_valid
to fail)
2017-05-25 13:52:13 +02:00
Barend Gehrels
7d86bfdbf5 [overlay] simplify conditions to discard turns in enrich 2017-05-25 12:03:03 +02:00
Barend Gehrels
99c580a7b1 [overlay] For self-turns, remove exception for difference and,
like union, for intersection only keep ii self-turns
2017-05-25 11:45:46 +02:00
Adam Wulkiewicz
1a605740cc Merge pull request #397 from awulkiew/feature/relops_multi_point
Add missing relational operations for MultiPoint/Geometry
2017-05-23 13:24:19 +02:00
Adam Wulkiewicz
f6c28cebb7 Merge pull request #398 from vissarion/feature/disjoint_fix
Feature/disjoint fix
2017-05-23 13:23:58 +02:00
Barend Gehrels
d6c8619cdc [test] fix reverse information for ccw geometries in overlay test 2017-05-21 14:45:47 +02:00
Barend Gehrels
25f55bfac4 [test] overlay, add ccw/open/self/rob info to svg filename 2017-05-21 14:43:38 +02:00
Barend Gehrels
52c2fde84a [self_turns] fix behaviour (correct assignment of segment_identifiers) for ccw geometries 2017-05-21 14:41:46 +02:00
Barend Gehrels
27fdefbd2e [test] enhance svg filename with self info 2017-05-21 14:16:37 +02:00
Barend Gehrels
ae745f5b5c [test] enhance validity messages with ccw/open info 2017-05-21 14:15:47 +02:00