349 Commits

Author SHA1 Message Date
Barend Gehrels
475684732c buffer: add end round and join miter 2022-10-12 11:59:48 +02:00
Barend Gehrels
b18db001b8 [test] add optional csv output to view buffer test cases in qgis 2022-09-09 09:54:56 +02:00
Barend Gehrels
49004c5ddd [buffer] add join_round and side_straight for geographic
Including tests and testcode
2022-08-03 11:19:11 +02:00
Adam Wulkiewicz
d02858e68a [test][buffer] Add missing include 2022-07-06 15:13:17 +02:00
Adam Wulkiewicz
6402c9d043
Merge pull request #1027 from awulkiew/feature/buffer
Allow const inputs in buffer()
2022-06-29 22:55:01 +02:00
Adam Wulkiewicz
12530bf62f
Merge pull request #1017 from awulkiew/feature/gc12
Add support for GC and DG in buffer().
2022-06-29 22:53:27 +02:00
Adam Wulkiewicz
aef3643626 [test][buffer] Fix copyright info 2022-06-29 22:52:12 +02:00
Barend Gehrels
2462357198 [buffer] remove close_to_offset and min_distance, add edge_min_fraction 2022-06-29 11:57:24 +02:00
Barend Gehrels
e5613cb8ad [buffer] fix min distance boundary which should not have been used without rescaling
This fixes issue #988
2022-06-29 11:57:24 +02:00
Adam Wulkiewicz
959a5d2d6e [test][buffer] Add test cases for const linestring and ring 2022-06-28 16:00:02 +02:00
Adam Wulkiewicz
b96583357c [test][buffer] Add test for GC 2022-06-14 22:56:23 +02:00
Adam Wulkiewicz
f7e5a586de [test][buffer] Use buffer strategies instead of relate strategies. 2022-01-05 23:41:54 +01:00
Barend Gehrels
08116e31e6 [test] cleanup svg generation 2021-12-01 10:09:51 +01:00
Barend Gehrels
2a7db45d07 [test] take car alternate tests are test properly in old (rescaling) and new (no rescaling) regime 2021-11-17 11:21:54 +01:00
Barend Gehrels
ef1b8e33f9 [side] make the default for no-rescaling triangle to avoid regressions when rescaling is turned off
Tests are now tested in both modes
2021-10-20 10:25:28 +02:00
Adam Wulkiewicz
915564a02f [test][buffer] Add test case that was failing on macos-11, clang-12.0.5, x86-64. 2021-09-29 00:22:10 +02:00
Barend Gehrels
e99cfde120 [intersection] use balance between distance-to-end and length-of-segments to determine to use a or b 2021-09-13 09:27:47 +02:00
Adam Wulkiewicz
08f7e66f79 [test] Drop library dependencies in tests.
If possible drop type_traits, mpl, typeof, foreach, assign.
Rearrange some includes.
2021-07-22 19:46:51 +02:00
Adam Wulkiewicz
8e3785ed67
Merge pull request #855 from awulkiew/feature/strategies_improvements
Umbrella strategies improvements
2021-06-02 13:40:15 +02:00
Barend Gehrels
1d4b2e5df2 [test] adapt testcases and / or expectations 2021-06-02 11:46:31 +02:00
Adam Wulkiewicz
ec3b3b5de2 [strategies] Remove SeriesOrder from umbrella strategies and improve the implementation.
Use custom versions of enable_if for distance() getters.
Use default keyword in default ctors.
Remove unneeded strategy_converter specialization.
2021-05-24 21:30:32 +02:00
Adam Wulkiewicz
b858969108
Merge pull request #840 from awulkiew/feature/strategies_rest
Umbrella strategies for various algorithms.
2021-05-21 16:55:45 +02:00
Barend Gehrels
10142a6703 [turns] have all discarding of start_turns in one place and clean up clusters before assigning 2021-05-19 09:27:44 +02:00
Barend Gehrels
eee7fc53ea [clusters] detection is refactored to a simpler sweeping algorithm
This fixes a part (around 30%) of the remaining errors in the recursive buffer check
2021-04-07 11:13:20 +02:00
Adam Wulkiewicz
a87f924304 Merge branch 'develop' into feature/strategies_rest 2021-04-01 03:14:52 +02:00
Adam Wulkiewicz
d6a44a6601 [test] Alter buffer and douglas_peucker tests. 2021-03-02 00:50:14 +01:00
Barend Gehrels
8f95fcb52f [buffer] fix case for issue 803 where an artifact was generated on nearly collinear lines in the buffer 2021-02-25 21:26:42 +01:00
Adam Wulkiewicz
ab28baae28 Merge branch 'develop' into feature/strategies_relate 2021-01-31 21:08:38 +01:00
Barend Gehrels
d006d1e4ac [test] add testcases from recursive_polygons_buffer partly solved by handling collinear as equal 2021-01-13 09:33:57 +01:00
Barend Gehrels
59e0840d75 [sort_by_side] walk forward for point_to
(similarly to walking backwards for point_from)
2020-12-16 14:41:49 +01:00
Barend Gehrels
abaa211d3a [sort_by_side] fix cases where the cluster point is approached by segments, but the last point before is colocated with the turn itself
This fixes 50% of the errors currently found by recursive_polygons_buffer (when rescaling is turned off)
2020-12-02 14:19:50 +01:00
Barend Gehrels
42bd7cfe95 [turns] fix precision when turns are arriving or leaving.
Then their fractions should be 1 or 0 (and not nearly so)
2020-11-25 10:21:16 +01:00
Barend Gehrels
271c5ad52c [turns, buffer] add cases from robustness test going wrong, some fixed with start turn 2020-10-28 14:50:24 +01:00
Adam Wulkiewicz
6b74f7c8a3 Support umbrella strategies in relops, setops, index, buffer and more.
Also is_simple, is_valid and extensions like dissolve and nsphere relops.

Add umbrella strategies:
 - relate: used in setops, relops, buffer, is_xxx, dissolve, etc.
 - index: used in rtree
 - io: used in wkt read/write and extensions/shapefile

Replace `point_box_by_side` agnostic strategy with CS-specific strategies.

Fix passing of strategies (no defaults when user-defined strategy is
passed) in places like buffer and distance.

Alter tests accordingly.
2020-10-21 17:42:02 +02:00
Barend Gehrels
5f677775ef [TEST] Conform the countset, replace many #ifdefs with expectation limits and apply it for float, double, long double (in many tests) 2020-10-21 10:18:56 +02:00
Barend Gehrels
3272220a3c [test][doc] Clean up numeric types in tests and adapt documentation 2020-09-30 11:20:44 +02:00
Barend Gehrels
5fe26e45b4
Merge pull request #752 from barendgehrels/buffer/fix_type_conflicts
[buffer] Several changes necessary to handle different types
2020-09-13 22:06:09 +02:00
Barend Gehrels
9e1a4373dc [buffer] Several changes necessary to handle different types (float, long double, boost MP) 2020-09-09 14:11:36 +02:00
Adam Wulkiewicz
5ca542fc4f
Merge pull request #726 from awulkiew/feature/strategies
Umbrella strategies.
2020-08-28 16:16:25 +02:00
Adam Wulkiewicz
52cceae021 [strategies] Relocate area, envelope and expand strategies. 2020-08-05 22:59:13 +02:00
Barend Gehrels
adef6b24de [turns] handle ii-situation in touch,
which is a new situation which needs to be handled in the handle-as-touch,
in last commit.
2020-08-05 11:10:15 +02:00
Barend Gehrels
0969372147 [get_turns] use distance measures for side, and handle situation
with an imperfect touch (floating point issue)
2020-07-22 11:53:48 +02:00
Barend Gehrels
761170b0b4 [intersection] check for disjoint-by-range.
Without it, in FP calculations, for nearly collinear segments, it might happen that an intersection is calculated even if the ranges are farther apart from each other
2020-07-15 12:45:34 +02:00
Adam Wulkiewicz
a5b46d0f8b [algorithms][strategies] Add umbrella strategies for area, envelope and expand. 2020-07-10 12:58:23 +02:00
Barend Gehrels
d347251055 [traversal] Support additional cluster exit functionality.
This makes it more efficient too (sort-by-side one time less).
This fixes some cases in buffer when rescaling is turned off.
2020-06-24 12:36:30 +02:00
Barend Gehrels
a09b9f4b51 [test] update testsuite, write expected failures (if all failures are enabled),
use optional counts for difference tests.
2020-06-10 14:27:42 +02:00
Barend Gehrels
70ecdfdd19 [buffer] Fix direction code for some new cases.
The similar_direction function could be erroneous for corner cases,
refactored it out.
This also makes it a bit less dependent on infinite_line (cartesian)
2020-05-06 14:22:32 +02:00
Barend Gehrels
c93594b20d [buffer] add strategy to expand and
other review remarks
2020-04-29 12:27:45 +02:00
Barend Gehrels
a9617b0cad [buffer][test] Add unit test for piece_border 2020-04-29 12:27:45 +02:00
Barend Gehrels
d4af24851e [buffer] revise turn_in_piece visitor:
- avoid side_of_intersection
- use new abstraction piece_border to verify point-in-piece
- this replaces the robust_ring
- and more related
2020-04-29 12:27:43 +02:00