Commit Graph

4118 Commits

Author SHA1 Message Date
Adam Wulkiewicz
95ffd9efbc [strategies] Relocate CS-specific winding strategies. 2017-08-22 01:11:51 +02:00
Adam Wulkiewicz
74f13547be [strategies] Update intersection and within strategies after change in winding strategy. 2017-08-22 00:33:39 +02:00
Adam Wulkiewicz
9f4682403e [strategies] Fix winding strategy for specific cases in spherical and geographic.
Implement as separate strategies per CS: cartesian_winding,
spherical_winding and geographic_winding. The last one taking Geodesic
FormulaPolicy and Spheroid (interface consistent with other geographic
strategies).

Leave agnostic winding strategy for backward compatibility, sort of
because SideStrategy parameter was removed so it's compatible with Boost
1.63 and below. Internally using one of the above strategies.
2017-08-22 00:28:08 +02:00
Adam Wulkiewicz
11ce2ac02e [algorithms] Fix direction_code different Point types handling and unused variable warning. 2017-08-14 17:39:18 +02:00
Adam Wulkiewicz
98b8821be6 [sectionalize] Add full namespace to function call (mingw workaround). 2017-08-02 02:52:02 +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
Adam Wulkiewicz
e7463b35f0 [buffer][overlay] Fix get_turns/secionalize/partition for non-cartesian CS.
- Handle longitudes differently in section_functions preceding() and
  exceeding().
- Calculate directions in sectionalize differently for longitudes.
- Update buffer and get_turns due to the above changes.
2017-07-27 03:31:35 +02:00
Adam Wulkiewicz
925b715f4d [algorithms] direction_code(): Add support for non-cartesian CSes. 2017-07-21 03:36:15 +02:00
Adam Wulkiewicz
6519f7a411 [strategies] Fix geographic area strategy for sphere (a==b), error being NaN result. 2017-07-20 18:27:11 +02:00
Adam Wulkiewicz
77c54c50d9 [algorithms] Fix direction_code for very close coordinates and use it in point_is_spike_or_equal to fix it too. 2017-07-18 14:38:19 +02:00
Adam Wulkiewicz
7dcba58943 [algorithms] Use user-defined side strategy in various algorithms
... instead of using the default one created internally.

It affects buffer, is_simple, is_valid, is_convex, point_on_surface,
remove spikes and various overlay algorithms.
2017-07-14 16:13:38 +02:00
Barend Gehrels
8012d17ca6 Merge branch 'feature/intvalid' into develop 2017-07-05 17:08:52 +02:00
Barend Gehrels
de8273ab92 [is_valid] fix, using touch_only information, and checking border_point
instead of touching point
2017-07-05 14:37:29 +02:00
Adam Wulkiewicz
a51a331df9 Merge pull request #405 from awulkiew/feature/area_strategy
Add missing propagation of area strategy in buffer, is_valid and overlay.
2017-07-05 13:51:43 +02:00
Adam Wulkiewicz
0b62b81fb4 Merge pull request #403 from awulkiew/fix/non_cart_intersection
Handle degenerated segments near poles in spherical and geographic intersection strategies.
2017-07-05 13:51:31 +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
a2168a97d9 [overlay] Add missing const&. 2017-07-04 16:03:54 +02:00
Adam Wulkiewicz
e241a9a0b3 Merge pull request #408 from vissarion/patch-3
Fix problematic initialization of strategy passed as contant reference
2017-07-04 17:02:52 +03:00
Adam Wulkiewicz
a911872bf5 [disjoint] Remove unwanted double ; 2017-07-04 15:58:05 +02:00
Adam Wulkiewicz
41cb466a34 Merge pull request #406 from vissarion/patch-1
Fix uninitialized variable in topology check of multilinestrings
2017-07-04 16:55:53 +03:00
Vissarion Fisikopoulos
b6bfbe514a Update get_turn_info_helpers.hpp 2017-07-04 11:17:13 +03:00
Vissarion Fisikopoulos
bcae6f1e81 Update box_box.hpp 2017-07-04 09:58:05 +03:00
Vissarion Fisikopoulos
7ad0c0b8ff Update topology_check.hpp 2017-07-04 09:38:49 +03:00
Adam Wulkiewicz
47e5cf5c96 [extensions][dissolve] Use area strategy got from intersection strategy. 2017-07-04 04:48:13 +02:00
Adam Wulkiewicz
8a12ebdb69 [buffer][is_valid][overlay] Use area strategy got from intersection strategy. 2017-07-04 04:45:37 +02:00
Adam Wulkiewicz
4122cab822 [correct] Allow passing area strategy into correct(). 2017-07-04 04:42:13 +02:00
Adam Wulkiewicz
1026f9fd36 [strategies] Handle degenerated segments near poles in spherical and geographic intersection strategies. 2017-07-02 19:04:12 +02:00
Adam Wulkiewicz
0a56ddd654 [formulas] Fix VS std::max compilation error in vertex_longitude. 2017-06-30 17:00:00 +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