Adam Wulkiewicz
1186dedeb8
[strategies] Add ctors, store substrategy and propagate radius in distance segment/box strategy.
2020-10-22 03:33:09 +02: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
Adam Wulkiewicz
3402c9101d
Replace boost::tuple with std::tuple or custom classes.
...
Modernize tuple support.
2020-10-21 16:21:06 +02:00
Adam Wulkiewicz
54f141779b
Include only necessary headers of Boost.Range.
2020-10-16 01:23:06 +02:00
Adam Wulkiewicz
7b8b3f694a
Merge pull request #759 from awulkiew/feature/static_assert
...
Replace MPL_ASSERT with std static_assert.
2020-10-16 01:03:34 +02:00
Adam Wulkiewicz
aeb81ebfd6
Replace MPL_ASSERT with std static_assert.
...
Also include only necessary headers from Boost.Range.
2020-10-16 00:31:22 +02:00
Barend Gehrels
64c09d07f0
Merge pull request #761 from barendgehrels/remove-ttmath
...
Remove ttmath
2020-10-13 18:25:34 +02:00
Pranam Lashkari
055684bc41
resolve c2146 on vs15 with area_result declaration
2020-10-12 19:12:54 +05:30
Barend Gehrels
84e19aff1c
[extensions] remove HAVE_TTMATH and other occurances of ttmath
2020-10-07 14:06:04 +02:00
Barend Gehrels
45d624af9b
[cleanup] remove HAVE_TTMATH and other occurances of ttmath
2020-10-07 14:05:28 +02:00
Adam Wulkiewicz
ab9f1de1ad
Merge pull request #748 from awulkiew/feature/type_traits
...
Remove direct usage of Boost.MPL and Boost.TypeTraits from the library.
2020-10-01 19:06:51 +02:00
Barend Gehrels
0fd961b595
[buffer] specify the correct types for monotonic sections and partitioning,
...
and re-introduce moving iterators to monotonic sections because it
performs around 25% better
2020-09-30 10:15:32 +02:00
Barend Gehrels
5eb1e809e9
[buffer][fix] Fix distance measure for use in multi precision types
2020-09-30 10:14:10 +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
Adam Wulkiewicz
8763d3cae3
[algorithms] Replace mpl::vector_c with std::integer_sequence in sectionalize.
2020-09-11 13:50:04 +02:00
Adam Wulkiewicz
dd5ae391bd
Move type_traits and sequence tools to util namespace.
2020-09-10 23:37:55 +02:00
Adam Wulkiewicz
9a248be454
[algorithms] Replace MPL sequences in relate().
2020-09-10 01:26:39 +02:00
Adam Wulkiewicz
d967c8f08d
[geometries] Replace MPL sequence with parameter pack in specialization of point_type for boost::variant.
2020-09-09 18:05:01 +02:00
Adam Wulkiewicz
22b2031dad
[util][strategies] Add more sequence utilities, remove type_pair and integer_pair, use sequences instead.
2020-09-09 18:02:50 +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
b0b2fd6b86
[core][util] Deprecate core/is_areal.hpp
2020-09-05 21:56:01 +02:00
Adam Wulkiewicz
9c095f4d37
Implement compile-time sequence utilities and use them instead of MPL.
...
distance and length result types are reimplemented.
distance result can no longer be variant type. This might rarely occur
if in a variant type there were two geometries using different
coordinate types and one of them were of greater precision than double.
Deprecate combine_if, compress_variant and transform_variant utilities.
2020-09-05 17:44:11 +02:00
Adam Wulkiewicz
52af5408e2
[util] Replace Boost.MPL sequence in promote_integral with parameter pack.
2020-09-04 18:27:54 +02:00
Adam Wulkiewicz
30d9fbba66
Replace select_sequence_element with select_pack_element and use it in area_result.
2020-09-04 17:48:25 +02:00
Adam Wulkiewicz
cf9549d668
Replace boost integral constants with std.
2020-09-03 19:58:49 +02:00
Adam Wulkiewicz
9b09cd2efa
Divide type_traits, replace bare_type with remove_cptrref.
...
Divide type_traits into two groups:
- util/type_traits_std.hpp - dependant only on std type_traits
- util/type_traits.hpp - dependant on geometry tags, also including the
above.
Add remove_cptrref and use it instead of bare_type.
For now keep bare_type, move it to util/type_traits_std.hpp.
2020-09-03 19:32:01 +02:00
Adam Wulkiewicz
00f00369cd
Replace add_const_if_c with transcribe_const.
...
Move add_const_if_c to util/type_traits.hpp
Remove usage when not needed.
2020-09-03 16:26:06 +02:00
Adam Wulkiewicz
c63e7a8394
Move is_range util to range.hpp to avoid Boost.Range/MPL dependency in type_traits.hpp
2020-09-03 16:24:29 +02:00
Adam Wulkiewicz
d7619d11c2
Replace Boost.MPL/TypeTraits with std type_traits in various parts of the library.
2020-09-03 13:36:18 +02:00
Adam Wulkiewicz
b9a60636e0
[util] Add more type_traits.
2020-09-03 13:35:19 +02:00
Adam Wulkiewicz
6c0490a366
Merge branch 'develop' into feature/type_traits
2020-08-31 23:33:27 +02:00
Adam Wulkiewicz
3cd74503b1
[util] Use std type_traits instead of Boost type_traits/mpl in various utils.
2020-08-31 01:43:44 +02:00
Adam Wulkiewicz
8deda7466c
[index] Replace deprecated header.
2020-08-30 04:18:14 +02:00
Adam Wulkiewicz
dda7e6b450
[index] Fix compilation error and warning in varray_detail.
...
Error with msvc-14.2: ambiguous call to destroy()
- explicitly define namespace
Warning with gcc-8.1: memcpy called for non-trivially-copyable type
- check correct type trait
2020-08-30 03:46:09 +02:00
Adam Wulkiewicz
9c4c884a4c
[strategies] Use select_calculation_type in buffer::geographic_point_circle.
2020-08-29 17:43:09 +02:00
Adam Wulkiewicz
4b75d69937
Move various traits to util/type_traits.hpp and adapt the code using them.
2020-08-29 01:48:39 +02:00
Adam Wulkiewicz
786bc54c68
Add util/type_traits, polylinear_tag, simplify types in umbrella strategies.
2020-08-28 19:12:31 +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
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
Adam Wulkiewicz
070480d97c
Merge pull request #745 from awulkiew/feature/constexpr
...
Support constexpr in points, segment, box, get, dot and cross products.
2020-08-24 12:26:52 +02:00
Barend Gehrels
5813841757
Merge pull request #744 from barendgehrels/fix/remove_is_ii
...
[get_turn_info] Remove the recently added is_ii
2020-08-19 09:51:30 +02:00
Adam Wulkiewicz
0326eaf679
[arithmetic][core][geometries] Support constexpr in points, segment, box, get, dot and cross products.
2020-08-16 00:50:35 +02:00
Adam Wulkiewicz
99fe9fe6c6
[is_valid] Add TODO comments in is_valid for linestrings.
2020-08-13 19:19:32 +02:00
Barend Gehrels
7739109b3b
[get_turn_info] Remove the recently added is_ii
2020-08-12 11:39:22 +02:00
Adam Wulkiewicz
734b6470af
[strategies] Add missing #includes.
2020-08-10 21:06:46 +02:00
Barend Gehrels
8251f19331
Merge pull request #741 from barendgehrels/fix/handle_as_touch
...
Fix/handle as touch
2020-08-10 20:46:00 +02:00
Adam Wulkiewicz
98617679bb
[algorithms] Fix dangling references for referring_segment and non-true references returned from ranges.
2020-08-10 12:40:55 +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