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
Barend Gehrels
60c9b096b1
Merge branch 'feature/intvalid' into develop
...
# Conflicts:
# include/boost/geometry/algorithms/intersects.hpp
# include/boost/geometry/algorithms/touches.hpp
2017-06-27 20:33:46 +02:00
Barend Gehrels
58e1c0bc51
[is_valid] remove false negatives from two touching interior rings
2017-06-25 17:18:26 +02:00
Barend Gehrels
c7c4800ca6
[is_valid] remove false negatives from two touching exterior rings, touching
...
each other at the touching point of an interior ring
2017-06-25 16:59:34 +02:00
Barend Gehrels
7ada36fab2
[overlay] remove debug code, submitted by accident
2017-06-25 14:17:51 +02:00
Barend Gehrels
ee3f5ea20d
[union] fix generating of false interiors by checking count_left
2017-06-25 13:56:01 +02:00
Barend Gehrels
4a116eb66e
[overlay] fix layout
2017-06-25 13:04:23 +02:00
Barend Gehrels
bfc3785cad
[overlay] Dont consider turns already discarded
2017-06-25 12:10:17 +02:00
Barend Gehrels
16213a6b1d
[union] Fix handling unions with 3 or more open spaces, where it
...
needs to check region ids to select the right to continue with
2017-06-25 12:04:49 +02:00
Barend Gehrels
e36f96d13c
[overlay] Prepare aggregation to be used for unions too
2017-06-25 11:28:34 +02:00
Barend Gehrels
63ee8f1fea
[overlay] Dont discard any self-turns in clusters
2017-06-25 11:27:19 +02:00
Barend Gehrels
6f55525db5
[traverse] remove is_touching as a reference parameter in several
...
methods, was not used anymore
2017-06-14 12:16:34 +02:00
Barend Gehrels
f832c2d334
[traverse] move reversal to union itself to finetune that later,
...
and pass open_count
2017-06-14 12:10:17 +02:00
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
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
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
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
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
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
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
52c2fde84a
[self_turns] fix behaviour (correct assignment of segment_identifiers) for ccw geometries
2017-05-21 14:41:46 +02:00
Barend Gehrels
713679f0d0
[overlay] add comment
2017-05-20 17:30:52 +02:00