2430 Commits

Author SHA1 Message Date
Adam Wulkiewicz
5ca542fc4f
Merge pull request #726 from awulkiew/feature/strategies
Umbrella strategies.
2020-08-28 16:16:25 +02:00
Adam Wulkiewicz
70e505bb15 [test] Add tests for constexpr. 2020-08-27 15:28:21 +02:00
Adam Wulkiewicz
0166c8ea6e
Merge pull request #743 from awulkiew/feature/for_each
Refactor for_each_x and implement new algorithms.
2020-08-24 12:37:23 +02:00
Adam Wulkiewicz
7ef3117f27 [for_each] Refactor for_each_x and implement new algorithms.
for_each_range now expects functors instead of structs with apply()
member function.

for_each_segment now calls functor also for degenerated ranges for
consistency with segment_iterator.

New algorithms based on std::all_of, std::any_of and std::none_of
- all_points_of, any_point_of, none_point_of
- all_segments_of, any_segment_of, none_segment_of
- all_ranges_of, any_range_of, none_range_of

New algorithms used in several places in the library.

This code requires C++14.
2020-08-24 12:28:43 +02:00
Barend Gehrels
7739109b3b [get_turn_info] Remove the recently added is_ii 2020-08-12 11:39:22 +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
dfbbfc0a87 [turns] if the touch-interior touches near the end (near the IP), then handle
it as if it is a touch
2020-08-05 10:43:35 +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
9cbb2c242e [test] Remove unused defines, write test configuration 2020-06-24 12:46:06 +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
Adam Wulkiewicz
a92b5e36fc
Merge pull request #695 from awulkiew/feature/setops_output
Support tupled-output in difference, sym_difference and union_.
2020-05-13 17:04:04 +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
Adam Wulkiewicz
0a134c070a [test][setops] Add tupled-output tests for difference, sym_difference and union. 2020-04-13 15:59:19 +02:00
Adam Wulkiewicz
2b74e42436 Merge branch 'develop' into feature/setops_output 2020-03-24 14:38:46 +01:00
Mateusz Łoskot
96db897fc5
Rename Jamfile.v2 to Jamfile (#679)
There is no reason to maintain the legacy .v2 file extension,
which is unnecessary clutter, may be confusing.
2020-03-08 23:50:18 +01:00
Adam Wulkiewicz
7beb993eb7 [test][difference] Add test cases for P/A combinations. 2020-01-23 21:38:35 +01:00
Adam Wulkiewicz
07abb6a10e [test][intersection] Add test cases for tupled-output of A/A combinations. 2020-01-23 15:57:24 +01:00
Adam Wulkiewicz
5f544fd3ad [test][intersection] Add test cases for tupled-output of L/A. 2020-01-20 20:23:05 +01:00
Adam Wulkiewicz
adfff228dc [test][intersection] Add tests for tupled outputs. 2020-01-19 19:11:11 +01:00
Adam Wulkiewicz
2727dfe650 [test][intersection] Add test cases for PointLike/Areal combinations. 2020-01-18 23:34:46 +01:00
Barend Gehrels
35c5d67d4d [buffer] Cleanup, remove unused functionality, calculate originals
and monotonic sections in another way
2019-12-18 10:13:18 +01:00
Adam Wulkiewicz
d7e440c015 [test][algorithms] Add tests for tupled_output helper utils. 2019-11-27 23:33:27 +01:00
Barend Gehrels
331e7f80c9 [TEST] add testcases for reported issues 2019-11-23 14:03:40 +01:00
Barend Gehrels
e4fbc736a4 [test] update defines for non-Kramer case 2019-11-13 13:09:14 +01:00
Barend Gehrels
c3c7a99c5f [test] Skip validity check for some cases when rescaling is not used 2019-11-13 12:53:07 +01:00
Barend Gehrels
2989992d37 [test] Write test configuration and make ccw order in tests optional 2019-11-13 12:52:33 +01:00
Barend Gehrels
fbf333c8a7 [test] updates in expectations and defines 2019-11-13 12:05:24 +01:00
Barend Gehrels
090e2c4e4a [test] add testcase for issue #630 2019-11-13 11:48:44 +01:00
Adam Wulkiewicz
0af5060bbf
Merge pull request #479 from awulkiew/fix/empty_union
Fix for empty spherical union
2019-11-06 13:52:56 +01:00
Barend Gehrels
1ae1d3578a
Merge pull request #632 from barendgehrels/fix/buffer_onesided
Fix/buffer onesided
2019-10-30 22:37:01 +01:00
Barend Gehrels
af316e7a39 [buffer] fix inside-piece detection for one-sided buffers 2019-10-30 14:44:23 +01:00
Barend Gehrels
8aa31d68cc [buffer] fix round end cap for asymmetric buffers 2019-10-30 12:34:40 +01:00
Barend Gehrels
e4f2bd4ce0 [test] add testcases for mostly left/right on asymmetric buffers,
for flat end on asymmetric buffers,
enable three formerly failing cases,
renamed cases, add settings variable
2019-10-30 11:47:45 +01:00
Adam Wulkiewicz
0f9e61ceac [test][union] Add spherical A/A case. 2019-10-30 02:15:13 +01:00
Adam Wulkiewicz
1b33b57c47 Merge branch 'develop' into fix/empty_union 2019-10-29 18:57:12 +01:00
Adam Wulkiewicz
43c32764c9
Merge pull request #621 from awulkiew/fix/turns_sorting
While sorting turns in relops and setops compare also point coordinates.
2019-10-25 14:16:53 +02:00
Barend Gehrels
eedd3c1f12
Merge pull request #622 from barendgehrels/fix/buffer-pass-strategies
Fix/buffer pass strategies
2019-10-24 20:17:13 +02:00
Vissarion Fysikopoulos
14be89e703 Fix distance pt-linestring for short segments 2019-10-17 22:36:17 +03:00
Mateusz Łoskot
1263eb8718
[for_each] Fix for_each_segment to avoid incrementing iterator over empty range (#625)
Add tests to verify `for_each_segment` does not post-increment end iterator over empty range.
Fixes #624
2019-10-13 17:23:30 +02:00
Barend Gehrels
e9c45a7167 [test] update test if rescaling is turned of, for different configurations 2019-10-02 13:38:44 +02:00
Adam Wulkiewicz
8d29cc70ca [test][setops] Add difference(l,a) spherical case (issue 619). 2019-09-22 01:53:49 +02:00
Barend Gehrels
28eb87b402 [intersection] remove segment_ratio_type in most of the cases,
and where they are still used, its definition is changed making use
of the tags now available, and moving it to detail. It is to be
deprecated
2019-08-21 17:15:12 +02:00
Adam Wulkiewicz
964fa91619
Merge pull request #561 from awulkiew/feature/point_order
Add new algorithm detail::calculate_point_order() with strategies (and optimize remove_spikes()).
2019-08-14 16:32:07 +02:00