mirror of
https://github.com/boostorg/geometry.git
synced 2025-05-11 21:44:04 +00:00
Replace Boost.MPL/TypeTraits with std type_traits in various parts of the library.
This commit is contained in:
parent
b9a60636e0
commit
d7619d11c2
@ -14,6 +14,8 @@
|
||||
#define BOOST_GEOMETRY_STRATEGY_AREA_RESULT_HPP
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/coordinate_type.hpp>
|
||||
#include <boost/geometry/core/cs.hpp>
|
||||
|
||||
@ -25,9 +27,6 @@
|
||||
#include <boost/geometry/util/select_most_precise.hpp>
|
||||
#include <boost/geometry/util/select_sequence_element.hpp>
|
||||
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/variant/variant_fwd.hpp>
|
||||
|
||||
|
||||
@ -113,9 +112,9 @@ struct pred_more_precise_default_area_result
|
||||
typedef typename geometry::area_result<Curr, default_strategy>::type curr_result_t;
|
||||
typedef typename geometry::area_result<Next, default_strategy>::type next_result_t;
|
||||
|
||||
typedef typename boost::mpl::if_c
|
||||
typedef std::conditional_t
|
||||
<
|
||||
boost::is_same
|
||||
std::is_same
|
||||
<
|
||||
curr_result_t,
|
||||
typename geometry::select_most_precise
|
||||
@ -126,7 +125,7 @@ struct pred_more_precise_default_area_result
|
||||
>::value,
|
||||
Curr,
|
||||
Next
|
||||
>::type type;
|
||||
> type;
|
||||
};
|
||||
|
||||
}} // namespace detail::area
|
||||
|
@ -5,6 +5,10 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2014 Samuel Debionne, Grenoble, France.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -21,7 +25,6 @@
|
||||
#include <boost/concept/requires.hpp>
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/numeric/conversion/bounds.hpp>
|
||||
#include <boost/numeric/conversion/cast.hpp>
|
||||
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -15,7 +19,7 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_CLEAR_HPP
|
||||
|
||||
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/variant/apply_visitor.hpp>
|
||||
#include <boost/variant/static_visitor.hpp>
|
||||
@ -54,14 +58,14 @@ struct polygon_clear
|
||||
{
|
||||
traits::clear
|
||||
<
|
||||
typename boost::remove_reference
|
||||
typename std::remove_reference
|
||||
<
|
||||
typename traits::interior_mutable_type<Polygon>::type
|
||||
>::type
|
||||
>::apply(interior_rings(polygon));
|
||||
traits::clear
|
||||
<
|
||||
typename boost::remove_reference
|
||||
typename std::remove_reference
|
||||
<
|
||||
typename traits::ring_mutable_type<Polygon>::type
|
||||
>::type
|
||||
|
@ -21,11 +21,10 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/numeric/conversion/cast.hpp>
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/is_array.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/variant/apply_visitor.hpp>
|
||||
#include <boost/variant/static_visitor.hpp>
|
||||
@ -226,7 +225,7 @@ struct polygon_to_polygon
|
||||
// Container should be resizeable
|
||||
traits::resize
|
||||
<
|
||||
typename boost::remove_reference
|
||||
typename std::remove_reference
|
||||
<
|
||||
typename traits::interior_mutable_type<Polygon2>::type
|
||||
>::type
|
||||
@ -295,10 +294,15 @@ template
|
||||
typename Tag1 = typename tag_cast<typename tag<Geometry1>::type, multi_tag>::type,
|
||||
typename Tag2 = typename tag_cast<typename tag<Geometry2>::type, multi_tag>::type,
|
||||
std::size_t DimensionCount = dimension<Geometry1>::type::value,
|
||||
bool UseAssignment = boost::is_same<Geometry1, Geometry2>::value
|
||||
&& !boost::is_array<Geometry1>::value
|
||||
bool UseAssignment = std::is_same<Geometry1, Geometry2>::value
|
||||
&& !std::is_array<Geometry1>::value
|
||||
>
|
||||
struct convert: not_implemented<Tag1, Tag2, boost::mpl::int_<DimensionCount> >
|
||||
struct convert
|
||||
: not_implemented
|
||||
<
|
||||
Tag1, Tag2,
|
||||
std::integral_constant<std::size_t, DimensionCount>
|
||||
>
|
||||
{};
|
||||
|
||||
|
||||
@ -456,7 +460,7 @@ struct convert<Polygon, Ring, polygon_tag, ring_tag, DimensionCount, false>
|
||||
|
||||
// Dispatch for multi <-> multi, specifying their single-version as policy.
|
||||
// Note that, even if the multi-types are mutually different, their single
|
||||
// version types might be the same and therefore we call boost::is_same again
|
||||
// version types might be the same and therefore we call std::is_same again
|
||||
|
||||
template <typename Multi1, typename Multi2, std::size_t DimensionCount>
|
||||
struct convert<Multi1, Multi2, multi_tag, multi_tag, DimensionCount, false>
|
||||
|
@ -26,7 +26,6 @@
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/variant/apply_visitor.hpp>
|
||||
#include <boost/variant/static_visitor.hpp>
|
||||
|
@ -7,10 +7,11 @@
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2018.
|
||||
// Modifications copyright (c) 2018, Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2018-2020.
|
||||
// Modifications copyright (c) 2018-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
@ -25,7 +26,6 @@
|
||||
#include <boost/concept/requires.hpp>
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/numeric/conversion/bounds.hpp>
|
||||
#include <boost/numeric/conversion/cast.hpp>
|
||||
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// Copyright (c) 2012-2020 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2017.
|
||||
// Modifications copyright (c) 2017 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2017-2020.
|
||||
// Modifications copyright (c) 2017-2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
@ -16,21 +16,10 @@
|
||||
#include <cstddef>
|
||||
#include <iterator>
|
||||
|
||||
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/numeric/conversion/cast.hpp>
|
||||
#include <boost/range.hpp>
|
||||
|
||||
#include <boost/geometry/core/assert.hpp>
|
||||
#include <boost/geometry/core/closure.hpp>
|
||||
#include <boost/geometry/core/exterior_ring.hpp>
|
||||
#include <boost/geometry/core/interior_rings.hpp>
|
||||
|
||||
#include <boost/geometry/util/condition.hpp>
|
||||
#include <boost/geometry/util/math.hpp>
|
||||
|
||||
#include <boost/geometry/strategies/buffer.hpp>
|
||||
#include <boost/geometry/strategies/side.hpp>
|
||||
#include <boost/geometry/algorithms/detail/direction_code.hpp>
|
||||
#include <boost/geometry/algorithms/detail/buffer/buffered_piece_collection.hpp>
|
||||
#include <boost/geometry/algorithms/detail/buffer/line_line_intersection.hpp>
|
||||
@ -38,6 +27,18 @@
|
||||
#include <boost/geometry/algorithms/num_interior_rings.hpp>
|
||||
#include <boost/geometry/algorithms/simplify.hpp>
|
||||
|
||||
#include <boost/geometry/core/assert.hpp>
|
||||
#include <boost/geometry/core/closure.hpp>
|
||||
#include <boost/geometry/core/exterior_ring.hpp>
|
||||
#include <boost/geometry/core/interior_rings.hpp>
|
||||
|
||||
#include <boost/geometry/strategies/buffer.hpp>
|
||||
#include <boost/geometry/strategies/side.hpp>
|
||||
|
||||
#include <boost/geometry/util/condition.hpp>
|
||||
#include <boost/geometry/util/math.hpp>
|
||||
#include <boost/geometry/util/type_traits.hpp>
|
||||
|
||||
#include <boost/geometry/views/detail/normalized_view.hpp>
|
||||
|
||||
|
||||
@ -942,11 +943,7 @@ inline void buffer_inserter(GeometryInput const& geometry_input, OutputIterator
|
||||
collection_type collection(intersection_strategy, distance_strategy, robust_policy);
|
||||
collection_type const& const_collection = collection;
|
||||
|
||||
bool const areal = boost::is_same
|
||||
<
|
||||
typename tag_cast<typename tag<GeometryInput>::type, areal_tag>::type,
|
||||
areal_tag
|
||||
>::type::value;
|
||||
bool const areal = detail::is_areal<GeometryInput>::value;
|
||||
|
||||
dispatch::buffer_inserter
|
||||
<
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// Copyright (c) 2015-2020 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2015, 2017, 2019.
|
||||
// Modifications copyright (c) 2015-2019 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2015-2020.
|
||||
// Modifications copyright (c) 2015-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
@ -16,6 +16,8 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_DIRECTION_CODE_HPP
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
#include <boost/geometry/arithmetic/infinite_line_functions.hpp>
|
||||
#include <boost/geometry/algorithms/detail/make/make.hpp>
|
||||
@ -91,7 +93,7 @@ struct direction_code_impl<spherical_equatorial_tag>
|
||||
typedef typename coordinate_type<Point2>::type coord2_t;
|
||||
typedef typename cs_angular_units<Point1>::type units_t;
|
||||
typedef typename cs_angular_units<Point2>::type units2_t;
|
||||
BOOST_MPL_ASSERT_MSG((boost::is_same<units_t, units2_t>::value),
|
||||
BOOST_MPL_ASSERT_MSG((std::is_same<units_t, units2_t>::value),
|
||||
NOT_IMPLEMENTED_FOR_DIFFERENT_UNITS,
|
||||
(units_t, units2_t));
|
||||
|
||||
@ -223,16 +225,16 @@ struct direction_code_impl<spherical_tag>
|
||||
{
|
||||
return direction_code_impl
|
||||
<
|
||||
typename boost::mpl::if_c
|
||||
std::conditional_t
|
||||
<
|
||||
boost::is_same
|
||||
std::is_same
|
||||
<
|
||||
typename geometry::cs_tag<Point1>::type,
|
||||
spherical_polar_tag
|
||||
>::value,
|
||||
spherical_polar_tag,
|
||||
spherical_equatorial_tag
|
||||
>::type
|
||||
>
|
||||
>::apply(segment_a, segment_b, p);
|
||||
}
|
||||
};
|
||||
|
@ -6,8 +6,8 @@
|
||||
// Copyright (c) 2013-2014 Adam Wulkiewicz, Lodz, Poland.
|
||||
// Copyright (c) 2014 Samuel Debionne, Grenoble, France.
|
||||
|
||||
// This file was modified by Oracle on 2014, 2018.
|
||||
// Modifications copyright (c) 2014-2018, Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2014-2020.
|
||||
// Modifications copyright (c) 2014-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
@ -24,10 +24,6 @@
|
||||
|
||||
#include <boost/concept_check.hpp>
|
||||
|
||||
#include <boost/mpl/always.hpp>
|
||||
#include <boost/mpl/bool.hpp>
|
||||
#include <boost/mpl/vector.hpp>
|
||||
|
||||
#include <boost/geometry/core/point_type.hpp>
|
||||
|
||||
#include <boost/geometry/geometries/concepts/check.hpp>
|
||||
|
@ -1,8 +1,9 @@
|
||||
// Boost.Geometry (aka GGL, Generic Geometry Library)
|
||||
|
||||
// Copyright (c) 2014, Oracle and/or its affiliates.
|
||||
// Copyright (c) 2014-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Licensed under the Boost Software License version 1.0.
|
||||
// http://www.boost.org/users/license.html
|
||||
@ -10,7 +11,8 @@
|
||||
#ifndef BOOST_GEOMETRY_ALGORITHS_DETAIL_DISTANCE_IS_COMPARABLE_HPP
|
||||
#define BOOST_GEOMETRY_ALGORITHS_DETAIL_DISTANCE_IS_COMPARABLE_HPP
|
||||
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/strategies/distance.hpp>
|
||||
|
||||
@ -26,7 +28,7 @@ namespace detail { namespace distance
|
||||
// metafunction to determine is a strategy is comparable or not
|
||||
template <typename Strategy>
|
||||
struct is_comparable
|
||||
: boost::is_same
|
||||
: std::is_same
|
||||
<
|
||||
Strategy,
|
||||
typename strategy::distance::services::comparable_type
|
||||
|
@ -5,8 +5,8 @@
|
||||
// Copyright (c) 2009-2014 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013-2014 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2014, 2019.
|
||||
// Modifications copyright (c) 2014-2019, Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2014-2020.
|
||||
// Modifications copyright (c) 2014-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
@ -22,10 +22,10 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_DISTANCE_POINT_TO_GEOMETRY_HPP
|
||||
|
||||
#include <iterator>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
|
||||
#include <boost/geometry/core/closure.hpp>
|
||||
#include <boost/geometry/core/point_type.hpp>
|
||||
@ -259,7 +259,7 @@ template
|
||||
typename Point,
|
||||
typename MultiGeometry,
|
||||
typename Strategy,
|
||||
bool CheckCoveredBy = boost::is_same
|
||||
bool CheckCoveredBy = std::is_same
|
||||
<
|
||||
typename tag<MultiGeometry>::type, multi_polygon_tag
|
||||
>::value
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Boost.Geometry (aka GGL, Generic Geometry Library)
|
||||
|
||||
// Copyright (c) 2014-2019 Oracle and/or its affiliates.
|
||||
// Copyright (c) 2014-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
@ -13,14 +13,12 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_DISTANCE_SEGMENT_TO_BOX_HPP
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <functional>
|
||||
#include <type_traits>
|
||||
#include <vector>
|
||||
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/numeric/conversion/cast.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
#include <boost/geometry/core/assert.hpp>
|
||||
@ -771,19 +769,19 @@ public:
|
||||
if (detail::equals::equals_point_point(p[0], p[1],
|
||||
sb_strategy.get_equals_point_point_strategy()))
|
||||
{
|
||||
typedef typename boost::mpl::if_
|
||||
typedef std::conditional_t
|
||||
<
|
||||
boost::is_same
|
||||
std::is_same
|
||||
<
|
||||
ps_comparable_strategy,
|
||||
SBStrategy
|
||||
>,
|
||||
>::value,
|
||||
typename strategy::distance::services::comparable_type
|
||||
<
|
||||
typename SBStrategy::distance_pb_strategy::type
|
||||
>::type,
|
||||
typename SBStrategy::distance_pb_strategy::type
|
||||
>::type point_box_strategy_type;
|
||||
> point_box_strategy_type;
|
||||
|
||||
return dispatch::distance
|
||||
<
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Boost.Geometry (aka GGL, Generic Geometry Library)
|
||||
|
||||
// Copyright (c) 2015-2018, Oracle and/or its affiliates.
|
||||
// Copyright (c) 2015-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
@ -13,9 +13,9 @@
|
||||
#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_ENVELOPE_RANGE_OF_BOXES_HPP
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_ENVELOPE_RANGE_OF_BOXES_HPP
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
#include <vector>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
@ -239,7 +239,7 @@ struct envelope_range_of_boxes
|
||||
RangeOfBoxes const
|
||||
>::type iterator_type;
|
||||
|
||||
static const bool is_equatorial = ! boost::is_same
|
||||
static const bool is_equatorial = ! std::is_same
|
||||
<
|
||||
typename cs_tag<box_type>::type,
|
||||
spherical_polar_tag
|
||||
|
@ -5,8 +5,8 @@
|
||||
// Copyright (c) 2009-2015 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2014-2015 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2014, 2015, 2016, 2017, 2018, 2019.
|
||||
// Modifications copyright (c) 2014-2019 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2014-2020.
|
||||
// Modifications copyright (c) 2014-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
@ -23,10 +23,10 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
#include <vector>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/is_base_of.hpp>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
@ -243,14 +243,14 @@ struct equals_by_collection_or_relate
|
||||
Geometry2 const& geometry2,
|
||||
Strategy const& strategy)
|
||||
{
|
||||
typedef typename boost::is_base_of
|
||||
typedef std::is_base_of
|
||||
<
|
||||
nyi::not_implemented_tag,
|
||||
typename collected_vector
|
||||
<
|
||||
Geometry1, Geometry2, Strategy
|
||||
>::type
|
||||
>::type enable_relate_type;
|
||||
> enable_relate_type;
|
||||
|
||||
return apply(geometry1, geometry2, strategy, enable_relate_type());
|
||||
}
|
||||
@ -260,7 +260,7 @@ private:
|
||||
static inline bool apply(Geometry1 const& geometry1,
|
||||
Geometry2 const& geometry2,
|
||||
Strategy const& strategy,
|
||||
boost::false_type /*enable_relate*/)
|
||||
std::false_type /*enable_relate*/)
|
||||
{
|
||||
return equals_by_collection<TrivialCheck>::apply(geometry1, geometry2, strategy);
|
||||
}
|
||||
@ -269,7 +269,7 @@ private:
|
||||
static inline bool apply(Geometry1 const& geometry1,
|
||||
Geometry2 const& geometry2,
|
||||
Strategy const& strategy,
|
||||
boost::true_type /*enable_relate*/)
|
||||
std::true_type /*enable_relate*/)
|
||||
{
|
||||
return equals_by_relate<Geometry1, Geometry2>::apply(geometry1, geometry2, strategy);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Boost.Geometry
|
||||
|
||||
// Copyright (c) 2015-2019, Oracle and/or its affiliates.
|
||||
// Copyright (c) 2015-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -11,10 +11,9 @@
|
||||
#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_EXPAND_EXPAND_BY_EPSILON_HPP
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_EXPAND_EXPAND_BY_EPSILON_HPP
|
||||
|
||||
#include <cstddef>
|
||||
#include <algorithm>
|
||||
|
||||
#include <boost/type_traits/is_integral.hpp>
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
#include <boost/geometry/core/coordinate_dimension.hpp>
|
||||
@ -79,7 +78,7 @@ struct corner_by_epsilon<Point, PlusOrMinus, D, D>
|
||||
template
|
||||
<
|
||||
typename Box,
|
||||
bool Enable = ! boost::is_integral<typename coordinate_type<Box>::type>::value
|
||||
bool Enable = ! std::is_integral<typename coordinate_type<Box>::type>::value
|
||||
>
|
||||
struct expand_by_epsilon
|
||||
{
|
||||
|
@ -19,6 +19,7 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_FOR_EACH_RANGE_HPP
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
|
||||
#include <boost/concept/requires.hpp>
|
||||
@ -26,8 +27,6 @@
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/range/begin.hpp>
|
||||
#include <boost/range/end.hpp>
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
#include <boost/geometry/core/tag_cast.hpp>
|
||||
@ -66,7 +65,7 @@ struct fe_range_segment
|
||||
template <typename Functor>
|
||||
static inline bool apply(Segment& segment, Functor&& f)
|
||||
{
|
||||
return f(segment_view<typename boost::remove_const<Segment>::type>(segment));
|
||||
return f(segment_view<typename std::remove_const<Segment>::type>(segment));
|
||||
}
|
||||
};
|
||||
|
||||
@ -101,7 +100,7 @@ struct fe_range_box
|
||||
template <typename Functor>
|
||||
static inline bool apply(Box& box, Functor&& f)
|
||||
{
|
||||
return f(box_view<typename boost::remove_const<Box>::type>(box));
|
||||
return f(box_view<typename std::remove_const<Box>::type>(box));
|
||||
}
|
||||
};
|
||||
|
||||
@ -198,7 +197,7 @@ struct for_each_range<Geometry, multi_linestring_tag>
|
||||
<
|
||||
typename add_const_if_c
|
||||
<
|
||||
boost::is_const<Geometry>::value,
|
||||
std::is_const<Geometry>::value,
|
||||
typename boost::range_value<Geometry>::type
|
||||
>::type
|
||||
>
|
||||
@ -215,7 +214,7 @@ struct for_each_range<Geometry, multi_polygon_tag>
|
||||
<
|
||||
typename add_const_if_c
|
||||
<
|
||||
boost::is_const<Geometry>::value,
|
||||
std::is_const<Geometry>::value,
|
||||
typename boost::range_value<Geometry>::type
|
||||
>::type
|
||||
>
|
||||
|
@ -14,6 +14,8 @@
|
||||
#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_INTERSECTION_MULTI_HPP
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_INTERSECTION_MULTI_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/closure.hpp>
|
||||
#include <boost/geometry/core/geometry_id.hpp>
|
||||
#include <boost/geometry/core/point_order.hpp>
|
||||
@ -445,12 +447,12 @@ struct intersection_insert
|
||||
MultiLinestring, Ring, TupledOut,
|
||||
// NOTE: points can be the result only in case of intersection.
|
||||
// TODO: union should require L and A
|
||||
typename boost::mpl::if_c
|
||||
std::conditional_t
|
||||
<
|
||||
(OverlayType == overlay_intersection),
|
||||
point_tag,
|
||||
void
|
||||
>::type,
|
||||
>,
|
||||
linestring_tag
|
||||
>
|
||||
{};
|
||||
@ -483,12 +485,12 @@ struct intersection_insert
|
||||
MultiLinestring, Polygon, TupledOut,
|
||||
// NOTE: points can be the result only in case of intersection.
|
||||
// TODO: union should require L and A
|
||||
typename boost::mpl::if_c
|
||||
std::conditional_t
|
||||
<
|
||||
(OverlayType == overlay_intersection),
|
||||
point_tag,
|
||||
void
|
||||
>::type,
|
||||
>,
|
||||
linestring_tag
|
||||
>
|
||||
{};
|
||||
@ -523,12 +525,12 @@ struct intersection_insert
|
||||
// TODO: in general the result of difference should depend on the first argument
|
||||
// but this specialization calls L/A in reality so the first argument is linear.
|
||||
// So expect only L for difference?
|
||||
typename boost::mpl::if_c
|
||||
std::conditional_t
|
||||
<
|
||||
(OverlayType == overlay_intersection),
|
||||
point_tag,
|
||||
void
|
||||
>::type,
|
||||
>,
|
||||
linestring_tag
|
||||
>
|
||||
{};
|
||||
@ -560,12 +562,12 @@ struct intersection_insert
|
||||
MultiLinestring, MultiPolygon, TupledOut,
|
||||
// NOTE: points can be the result only in case of intersection.
|
||||
// TODO: union should require L and A
|
||||
typename boost::mpl::if_c
|
||||
std::conditional_t
|
||||
<
|
||||
(OverlayType == overlay_intersection),
|
||||
point_tag,
|
||||
void
|
||||
>::type,
|
||||
>,
|
||||
linestring_tag
|
||||
>
|
||||
{};
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Boost.Geometry (aka GGL, Generic Geometry Library)
|
||||
|
||||
// Copyright (c) 2014-2018, Oracle and/or its affiliates.
|
||||
// Copyright (c) 2014-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
@ -12,8 +12,7 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_IS_VALID_HAS_INVALID_COORDINATE_HPP
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <boost/type_traits/is_floating_point.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/check_iterator_range.hpp>
|
||||
#include <boost/geometry/algorithms/validity_failure_type.hpp>
|
||||
@ -115,7 +114,7 @@ template
|
||||
<
|
||||
typename Geometry,
|
||||
typename Tag = typename tag<Geometry>::type,
|
||||
bool HasFloatingPointCoordinates = boost::is_floating_point
|
||||
bool HasFloatingPointCoordinates = std::is_floating_point
|
||||
<
|
||||
typename coordinate_type<Geometry>::type
|
||||
>::value
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Boost.Geometry (aka GGL, Generic Geometry Library)
|
||||
|
||||
// Copyright (c) 2014-2019, Oracle and/or its affiliates.
|
||||
// Copyright (c) 2014-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
@ -12,10 +12,10 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_IS_VALID_HAS_SPIKES_HPP
|
||||
|
||||
#include <algorithm>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
|
||||
#include <boost/geometry/core/assert.hpp>
|
||||
#include <boost/geometry/core/point_type.hpp>
|
||||
@ -137,8 +137,8 @@ struct has_spikes
|
||||
typedef typename closeable_view<Range const, Closure>::type view_type;
|
||||
typedef typename boost::range_iterator<view_type const>::type iterator;
|
||||
|
||||
bool const is_linear
|
||||
= boost::is_same<typename tag<Range>::type, linestring_tag>::value;
|
||||
bool const is_linestring
|
||||
= std::is_same<typename tag<Range>::type, linestring_tag>::value;
|
||||
|
||||
view_type const view(range);
|
||||
|
||||
@ -169,7 +169,7 @@ struct has_spikes
|
||||
if (detail::is_spike_or_equal(*next, *cur, *prev, strategy))
|
||||
{
|
||||
return
|
||||
! visitor.template apply<failure_spikes>(is_linear, *cur);
|
||||
! visitor.template apply<failure_spikes>(is_linestring, *cur);
|
||||
}
|
||||
prev = cur;
|
||||
cur = next;
|
||||
@ -180,7 +180,7 @@ struct has_spikes
|
||||
equals_point_point(range::front(view), range::back(view),
|
||||
strategy.get_equals_point_point_strategy()))
|
||||
{
|
||||
return apply_at_closure(view, visitor, strategy, is_linear);
|
||||
return apply_at_closure(view, visitor, strategy, is_linestring);
|
||||
}
|
||||
|
||||
return ! visitor.template apply<no_failure>();
|
||||
|
@ -1,8 +1,9 @@
|
||||
// Boost.Geometry (aka GGL, Generic Geometry Library)
|
||||
|
||||
// Copyright (c) 2015, Oracle and/or its affiliates.
|
||||
// Copyright (c) 2015-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Licensed under the Boost Software License version 1.0.
|
||||
// http://www.boost.org/users/license.html
|
||||
@ -11,14 +12,12 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_MAX_INTERVAL_GAP_HPP
|
||||
|
||||
#include <cstddef>
|
||||
#include <functional>
|
||||
#include <queue>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include <boost/core/ref.hpp>
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/geometry/core/assert.hpp>
|
||||
#include <boost/geometry/util/math.hpp>
|
||||
@ -49,7 +48,7 @@ public:
|
||||
typedef typename Interval::value_type time_type;
|
||||
|
||||
sweep_event(Interval const& interval, bool start_event = true)
|
||||
: m_interval(boost::cref(interval))
|
||||
: m_interval(std::cref(interval))
|
||||
, m_start_event(start_event)
|
||||
{}
|
||||
|
||||
@ -81,7 +80,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
boost::reference_wrapper<Interval const> m_interval;
|
||||
std::reference_wrapper<Interval const> m_interval;
|
||||
bool m_start_event;
|
||||
};
|
||||
|
||||
@ -118,15 +117,6 @@ class event_visitor
|
||||
typedef typename Event::time_type event_time_type;
|
||||
typedef typename Event::interval_type::difference_type difference_type;
|
||||
|
||||
typedef typename boost::remove_const
|
||||
<
|
||||
typename boost::remove_reference
|
||||
<
|
||||
event_time_type
|
||||
>::type
|
||||
>::type bare_time_type;
|
||||
|
||||
|
||||
public:
|
||||
event_visitor()
|
||||
: m_overlap_count(0)
|
||||
@ -162,12 +152,12 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
bare_time_type const& max_gap_left() const
|
||||
event_time_type const& max_gap_left() const
|
||||
{
|
||||
return m_max_gap_left;
|
||||
}
|
||||
|
||||
bare_time_type const& max_gap_right() const
|
||||
event_time_type const& max_gap_right() const
|
||||
{
|
||||
return m_max_gap_right;
|
||||
}
|
||||
@ -179,7 +169,7 @@ public:
|
||||
|
||||
private:
|
||||
std::size_t m_overlap_count;
|
||||
bare_time_type m_max_gap_left, m_max_gap_right;
|
||||
event_time_type m_max_gap_left, m_max_gap_right;
|
||||
};
|
||||
|
||||
}} // namespace detail::max_interval_gap
|
||||
@ -256,18 +246,9 @@ template <typename RangeOfIntervals>
|
||||
inline typename boost::range_value<RangeOfIntervals>::type::difference_type
|
||||
maximum_gap(RangeOfIntervals const& range_of_intervals)
|
||||
{
|
||||
typedef typename boost::remove_const
|
||||
<
|
||||
typename boost::remove_reference
|
||||
<
|
||||
typename boost::range_value
|
||||
<
|
||||
RangeOfIntervals
|
||||
>::type::value_type
|
||||
>::type
|
||||
>::type value_type;
|
||||
typedef typename boost::range_value<RangeOfIntervals>::type interval_type;
|
||||
|
||||
value_type left, right;
|
||||
typename interval_type::value_type left, right;
|
||||
|
||||
return maximum_gap(range_of_intervals, left, right);
|
||||
}
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2014, 2017, 2018.
|
||||
// Modifications copyright (c) 2014-2018 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2014-2020.
|
||||
// Modifications copyright (c) 2014-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -14,6 +14,9 @@
|
||||
#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_OVERLAY_APPEND_NO_DUPS_OR_SPIKES_HPP
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_OVERLAY_APPEND_NO_DUPS_OR_SPIKES_HPP
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
|
||||
@ -64,7 +67,7 @@ inline bool points_equal_or_close(Point1 const& point1,
|
||||
geometry::recalculate(point2_rob, point2, robust_policy);
|
||||
|
||||
// Only if this is the case the same strategy can be used.
|
||||
BOOST_STATIC_ASSERT((boost::is_same
|
||||
BOOST_STATIC_ASSERT((std::is_same
|
||||
<
|
||||
typename geometry::cs_tag<Point1>::type,
|
||||
typename geometry::cs_tag<robust_point_type>::type
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// Copyright (c) 2007-2014 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2014, 2017, 2018.
|
||||
// Modifications copyright (c) 2014-2018 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2014-2020.
|
||||
// Modifications copyright (c) 2014-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
@ -16,12 +16,12 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_OVERLAY_COPY_SEGMENTS_HPP
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
#include <vector>
|
||||
|
||||
#include <boost/array.hpp>
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/integral_constant.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/assign_box_corners.hpp>
|
||||
#include <boost/geometry/algorithms/detail/signed_size_type.hpp>
|
||||
@ -130,7 +130,7 @@ private:
|
||||
Point const& point,
|
||||
SideStrategy const& strategy,
|
||||
RobustPolicy const& robust_policy,
|
||||
boost::true_type const&)
|
||||
std::true_type const&)
|
||||
{
|
||||
detail::overlay::append_no_dups_or_spikes(current_output, point,
|
||||
strategy,
|
||||
@ -143,7 +143,7 @@ private:
|
||||
Point const& point,
|
||||
SideStrategy const& strategy,
|
||||
RobustPolicy const&,
|
||||
boost::false_type const&)
|
||||
std::false_type const&)
|
||||
{
|
||||
detail::overlay::append_no_duplicates(current_output, point, strategy.get_equals_point_point_strategy());
|
||||
}
|
||||
@ -182,7 +182,7 @@ public:
|
||||
for (signed_size_type i = 0; i < count; ++i, ++it)
|
||||
{
|
||||
append_to_output(current_output, *it, strategy, robust_policy,
|
||||
boost::integral_constant<bool, RemoveSpikes>());
|
||||
std::integral_constant<bool, RemoveSpikes>());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2017.
|
||||
// Modifications copyright (c) 2017 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2017-2020.
|
||||
// Modifications copyright (c) 2017-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -16,8 +16,8 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/range.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/convert.hpp>
|
||||
@ -59,7 +59,7 @@ struct get_turn_without_info
|
||||
OutputIterator out)
|
||||
{
|
||||
// Make sure this is only called with no rescaling
|
||||
BOOST_STATIC_ASSERT((boost::is_same
|
||||
BOOST_STATIC_ASSERT((std::is_same
|
||||
<
|
||||
no_rescale_policy_tag,
|
||||
typename rescale_policy_type<RobustPolicy>::type
|
||||
@ -117,7 +117,7 @@ inline void get_intersection_points(Geometry1 const& geometry1,
|
||||
|
||||
detail::get_turns::no_interrupt_policy interrupt_policy;
|
||||
|
||||
boost::mpl::if_c
|
||||
std::conditional_t
|
||||
<
|
||||
reverse_dispatch<Geometry1, Geometry2>::type::value,
|
||||
dispatch::get_turns_reversed
|
||||
@ -136,12 +136,11 @@ inline void get_intersection_points(Geometry1 const& geometry1,
|
||||
false, false,
|
||||
TurnPolicy
|
||||
>
|
||||
>::type::apply(
|
||||
0, geometry1,
|
||||
1, geometry2,
|
||||
strategy,
|
||||
robust_policy,
|
||||
turns, interrupt_policy);
|
||||
>::apply(0, geometry1,
|
||||
1, geometry2,
|
||||
strategy,
|
||||
robust_policy,
|
||||
turns, interrupt_policy);
|
||||
}
|
||||
|
||||
|
||||
|
@ -22,10 +22,23 @@
|
||||
#include <boost/array.hpp>
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/mpl/vector_c.hpp>
|
||||
#include <boost/range.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/disjoint/box_box.hpp>
|
||||
#include <boost/geometry/algorithms/detail/disjoint/point_point.hpp>
|
||||
#include <boost/geometry/algorithms/detail/interior_iterator.hpp>
|
||||
#include <boost/geometry/algorithms/detail/overlay/get_turn_info.hpp>
|
||||
#include <boost/geometry/algorithms/detail/overlay/get_turn_info_ll.hpp>
|
||||
#include <boost/geometry/algorithms/detail/overlay/get_turn_info_la.hpp>
|
||||
#include <boost/geometry/algorithms/detail/overlay/segment_identifier.hpp>
|
||||
#include <boost/geometry/algorithms/detail/partition.hpp>
|
||||
#include <boost/geometry/algorithms/detail/recalculate.hpp>
|
||||
#include <boost/geometry/algorithms/detail/sections/range_by_section.hpp>
|
||||
#include <boost/geometry/algorithms/detail/sections/section_box_policies.hpp>
|
||||
#include <boost/geometry/algorithms/detail/sections/section_functions.hpp>
|
||||
#include <boost/geometry/algorithms/detail/sections/sectionalize.hpp>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
#include <boost/geometry/core/assert.hpp>
|
||||
#include <boost/geometry/core/coordinate_dimension.hpp>
|
||||
@ -35,14 +48,8 @@
|
||||
#include <boost/geometry/core/ring_type.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
|
||||
#include <boost/geometry/geometries/concepts/check.hpp>
|
||||
|
||||
#include <boost/geometry/util/math.hpp>
|
||||
#include <boost/geometry/views/closeable_view.hpp>
|
||||
#include <boost/geometry/views/reversible_view.hpp>
|
||||
#include <boost/geometry/views/detail/range_type.hpp>
|
||||
|
||||
#include <boost/geometry/geometries/box.hpp>
|
||||
#include <boost/geometry/geometries/concepts/check.hpp>
|
||||
#include <boost/geometry/geometries/segment.hpp>
|
||||
|
||||
#include <boost/geometry/iterators/ever_circling_iterator.hpp>
|
||||
@ -50,22 +57,13 @@
|
||||
#include <boost/geometry/strategies/intersection_strategies.hpp>
|
||||
#include <boost/geometry/strategies/intersection_result.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/disjoint/box_box.hpp>
|
||||
#include <boost/geometry/algorithms/detail/disjoint/point_point.hpp>
|
||||
#include <boost/geometry/util/math.hpp>
|
||||
#include <boost/geometry/util/type_traits.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/interior_iterator.hpp>
|
||||
#include <boost/geometry/algorithms/detail/partition.hpp>
|
||||
#include <boost/geometry/algorithms/detail/recalculate.hpp>
|
||||
#include <boost/geometry/algorithms/detail/sections/section_box_policies.hpp>
|
||||
#include <boost/geometry/views/closeable_view.hpp>
|
||||
#include <boost/geometry/views/reversible_view.hpp>
|
||||
#include <boost/geometry/views/detail/range_type.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/overlay/get_turn_info.hpp>
|
||||
#include <boost/geometry/algorithms/detail/overlay/get_turn_info_ll.hpp>
|
||||
#include <boost/geometry/algorithms/detail/overlay/get_turn_info_la.hpp>
|
||||
#include <boost/geometry/algorithms/detail/overlay/segment_identifier.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/sections/range_by_section.hpp>
|
||||
#include <boost/geometry/algorithms/detail/sections/sectionalize.hpp>
|
||||
#include <boost/geometry/algorithms/detail/sections/section_functions.hpp>
|
||||
|
||||
#ifdef BOOST_GEOMETRY_DEBUG_INTERSECTION
|
||||
# include <sstream>
|
||||
@ -267,15 +265,7 @@ class get_turns_in_sections
|
||||
|
||||
boost::ignore_unused(n, index1, index2);
|
||||
|
||||
return boost::is_same
|
||||
<
|
||||
typename tag_cast
|
||||
<
|
||||
typename geometry::tag<Geometry>::type,
|
||||
areal_tag
|
||||
>::type,
|
||||
areal_tag
|
||||
>::value
|
||||
return detail::is_areal<Geometry>::value
|
||||
&& index1 == 0
|
||||
&& index2 >= n - 2
|
||||
;
|
||||
@ -296,17 +286,8 @@ public :
|
||||
{
|
||||
boost::ignore_unused(interrupt_policy);
|
||||
|
||||
static bool const areal1 = boost::is_same
|
||||
<
|
||||
typename tag_cast<typename tag<Geometry1>::type, areal_tag>::type,
|
||||
areal_tag
|
||||
>::type::value;
|
||||
static bool const areal2 = boost::is_same
|
||||
<
|
||||
typename tag_cast<typename tag<Geometry2>::type, areal_tag>::type,
|
||||
areal_tag
|
||||
>::type::value;
|
||||
|
||||
static bool const areal1 = detail::is_areal<Geometry1>::value;
|
||||
static bool const areal2 = detail::is_areal<Geometry2>::value;
|
||||
|
||||
if ((sec1.duplicate && (sec1.count + 1) < sec1.range_count)
|
||||
|| (sec2.duplicate && (sec2.count + 1) < sec2.range_count))
|
||||
@ -1174,7 +1155,7 @@ inline void get_turns(Geometry1 const& geometry1,
|
||||
typedef detail::overlay::get_turn_info<AssignPolicy> TurnPolicy;
|
||||
//typedef detail::get_turns::get_turn_info_type<Geometry1, Geometry2, AssignPolicy> TurnPolicy;
|
||||
|
||||
boost::mpl::if_c
|
||||
std::conditional_t
|
||||
<
|
||||
reverse_dispatch<Geometry1, Geometry2>::type::value,
|
||||
dispatch::get_turns_reversed
|
||||
@ -1193,11 +1174,11 @@ inline void get_turns(Geometry1 const& geometry1,
|
||||
Reverse1, Reverse2,
|
||||
TurnPolicy
|
||||
>
|
||||
>::type::apply(0, geometry1,
|
||||
1, geometry2,
|
||||
intersection_strategy,
|
||||
robust_policy,
|
||||
turns, interrupt_policy);
|
||||
>::apply(0, geometry1,
|
||||
1, geometry2,
|
||||
intersection_strategy,
|
||||
robust_policy,
|
||||
turns, interrupt_policy);
|
||||
}
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
// Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2014, 2015, 2017, 2019, 2020.
|
||||
// This file was modified by Oracle on 2014-2020.
|
||||
// Modifications copyright (c) 2014-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
@ -17,12 +17,11 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/range/metafunctions.hpp>
|
||||
|
||||
|
||||
#include <boost/geometry/core/point_order.hpp>
|
||||
#include <boost/geometry/core/reverse_dispatch.hpp>
|
||||
#include <boost/geometry/geometries/concepts/check.hpp>
|
||||
@ -77,7 +76,7 @@ struct intersection_segment_segment_point
|
||||
Strategy const& strategy)
|
||||
{
|
||||
// Make sure this is only called with no rescaling
|
||||
BOOST_STATIC_ASSERT((boost::is_same
|
||||
BOOST_STATIC_ASSERT((std::is_same
|
||||
<
|
||||
no_rescale_policy_tag,
|
||||
typename rescale_policy_type<RobustPolicy>::type
|
||||
@ -126,7 +125,7 @@ struct intersection_linestring_linestring_point
|
||||
Strategy const& strategy)
|
||||
{
|
||||
// Make sure this is only called with no rescaling
|
||||
BOOST_STATIC_ASSERT((boost::is_same
|
||||
BOOST_STATIC_ASSERT((std::is_same
|
||||
<
|
||||
no_rescale_policy_tag,
|
||||
typename rescale_policy_type<RobustPolicy>::type
|
||||
@ -284,7 +283,7 @@ struct intersection_of_linestring_with_areal
|
||||
Strategy const& strategy)
|
||||
{
|
||||
// Make sure this is only called with no rescaling
|
||||
BOOST_STATIC_ASSERT((boost::is_same
|
||||
BOOST_STATIC_ASSERT((std::is_same
|
||||
<
|
||||
no_rescale_policy_tag,
|
||||
typename rescale_policy_type<RobustPolicy>::type
|
||||
@ -455,7 +454,7 @@ struct intersection_linear_areal_point
|
||||
Strategy const& strategy)
|
||||
{
|
||||
// Make sure this is only called with no rescaling
|
||||
BOOST_STATIC_ASSERT((boost::is_same
|
||||
BOOST_STATIC_ASSERT((std::is_same
|
||||
<
|
||||
no_rescale_policy_tag,
|
||||
typename rescale_policy_type<RobustPolicy>::type
|
||||
@ -935,12 +934,12 @@ struct intersection_insert
|
||||
<
|
||||
Linear1, Linear2, TupledOut,
|
||||
// NOTE: points can be the result only in case of intersection.
|
||||
typename boost::mpl::if_c
|
||||
std::conditional_t
|
||||
<
|
||||
(OverlayType == overlay_intersection),
|
||||
point_tag,
|
||||
void
|
||||
>::type,
|
||||
>,
|
||||
linestring_tag
|
||||
>
|
||||
{
|
||||
@ -1427,26 +1426,26 @@ inline OutputIterator insert(Geometry1 const& geometry1,
|
||||
OutputIterator out,
|
||||
Strategy const& strategy)
|
||||
{
|
||||
return boost::mpl::if_c
|
||||
<
|
||||
geometry::reverse_dispatch<Geometry1, Geometry2>::type::value,
|
||||
geometry::dispatch::intersection_insert_reversed
|
||||
return std::conditional_t
|
||||
<
|
||||
Geometry1, Geometry2,
|
||||
GeometryOut,
|
||||
OverlayType,
|
||||
overlay::do_reverse<geometry::point_order<Geometry1>::value>::value,
|
||||
overlay::do_reverse<geometry::point_order<Geometry2>::value, ReverseSecond>::value
|
||||
>,
|
||||
geometry::dispatch::intersection_insert
|
||||
<
|
||||
Geometry1, Geometry2,
|
||||
GeometryOut,
|
||||
OverlayType,
|
||||
geometry::detail::overlay::do_reverse<geometry::point_order<Geometry1>::value>::value,
|
||||
geometry::detail::overlay::do_reverse<geometry::point_order<Geometry2>::value, ReverseSecond>::value
|
||||
>
|
||||
>::type::apply(geometry1, geometry2, robust_policy, out, strategy);
|
||||
geometry::reverse_dispatch<Geometry1, Geometry2>::type::value,
|
||||
geometry::dispatch::intersection_insert_reversed
|
||||
<
|
||||
Geometry1, Geometry2,
|
||||
GeometryOut,
|
||||
OverlayType,
|
||||
overlay::do_reverse<geometry::point_order<Geometry1>::value>::value,
|
||||
overlay::do_reverse<geometry::point_order<Geometry2>::value, ReverseSecond>::value
|
||||
>,
|
||||
geometry::dispatch::intersection_insert
|
||||
<
|
||||
Geometry1, Geometry2,
|
||||
GeometryOut,
|
||||
OverlayType,
|
||||
geometry::detail::overlay::do_reverse<geometry::point_order<Geometry1>::value>::value,
|
||||
geometry::detail::overlay::do_reverse<geometry::point_order<Geometry2>::value, ReverseSecond>::value
|
||||
>
|
||||
>::apply(geometry1, geometry2, robust_policy, out, strategy);
|
||||
}
|
||||
|
||||
|
||||
|
@ -3,8 +3,8 @@
|
||||
// Copyright (c) 2011-2015 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
// Copyright (c) 2017 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2015, 2017, 2018, 2019.
|
||||
// Modifications copyright (c) 2015-2019 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2015-2020.
|
||||
// Modifications copyright (c) 2015-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
@ -16,10 +16,12 @@
|
||||
#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_PARTITION_HPP
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_PARTITION_HPP
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
#include <vector>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/is_integral.hpp>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
#include <boost/geometry/core/coordinate_type.hpp>
|
||||
@ -32,7 +34,7 @@ namespace boost { namespace geometry
|
||||
namespace detail { namespace partition
|
||||
{
|
||||
|
||||
template <typename T, bool IsIntegral = boost::is_integral<T>::value>
|
||||
template <typename T, bool IsIntegral = std::is_integral<T>::value>
|
||||
struct divide_interval
|
||||
{
|
||||
static inline T apply(T const& mi, T const& ma)
|
||||
|
@ -5,6 +5,10 @@
|
||||
// Copyright (c) 2013 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -18,7 +22,6 @@
|
||||
#include <boost/concept/requires.hpp>
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/numeric/conversion/bounds.hpp>
|
||||
#include <boost/numeric/conversion/cast.hpp>
|
||||
#include <boost/range/begin.hpp>
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2013, 2014, 2015, 2017.
|
||||
// Modifications copyright (c) 2013-2017 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2013-2020.
|
||||
// Modifications copyright (c) 2013-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -15,21 +15,22 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_RELATE_INTERFACE_HPP
|
||||
|
||||
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/mpl/is_sequence.hpp>
|
||||
#include <boost/tuple/tuple.hpp>
|
||||
#include <boost/variant/apply_visitor.hpp>
|
||||
#include <boost/variant/static_visitor.hpp>
|
||||
#include <boost/variant/variant_fwd.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/relate/de9im.hpp>
|
||||
#include <boost/geometry/algorithms/not_implemented.hpp>
|
||||
#include <boost/geometry/core/coordinate_dimension.hpp>
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
#include <boost/geometry/core/topological_dimension.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/relate/de9im.hpp>
|
||||
#include <boost/geometry/algorithms/not_implemented.hpp>
|
||||
#include <boost/geometry/geometries/concepts/check.hpp>
|
||||
#include <boost/geometry/strategies/default_strategy.hpp>
|
||||
#include <boost/geometry/strategies/relate.hpp>
|
||||
#include <boost/geometry/util/type_traits.hpp>
|
||||
|
||||
|
||||
namespace boost { namespace geometry {
|
||||
@ -38,50 +39,20 @@ namespace boost { namespace geometry {
|
||||
#ifndef DOXYGEN_NO_DETAIL
|
||||
namespace detail { namespace relate {
|
||||
|
||||
// Those are used only to allow dispatch::relate to produce compile-time error
|
||||
|
||||
template <typename Geometry,
|
||||
typename Tag = typename geometry::tag<Geometry>::type>
|
||||
struct is_supported_by_generic
|
||||
{
|
||||
static const bool value
|
||||
= boost::is_same<Tag, linestring_tag>::value
|
||||
|| boost::is_same<Tag, multi_linestring_tag>::value
|
||||
|| boost::is_same<Tag, ring_tag>::value
|
||||
|| boost::is_same<Tag, polygon_tag>::value
|
||||
|| boost::is_same<Tag, multi_polygon_tag>::value;
|
||||
};
|
||||
|
||||
template <typename Geometry1,
|
||||
typename Geometry2,
|
||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
||||
typename Tag2 = typename geometry::tag<Geometry2>::type>
|
||||
// is_generic allows dispatch::relate to generate compile-time error
|
||||
template <typename Geometry1, typename Geometry2>
|
||||
struct is_generic
|
||||
{
|
||||
static const bool value = is_supported_by_generic<Geometry1>::value
|
||||
&& is_supported_by_generic<Geometry2>::value;
|
||||
static const bool value = (detail::is_polysegmental<Geometry1>::value
|
||||
&& detail::is_polysegmental<Geometry2>::value)
|
||||
||
|
||||
(detail::is_point<Geometry1>::value
|
||||
&& detail::is_polysegmental<Geometry2>::value)
|
||||
||
|
||||
(detail::is_polysegmental<Geometry1>::value
|
||||
&& detail::is_point<Geometry2>::value);
|
||||
};
|
||||
|
||||
|
||||
template <typename Point, typename Geometry, typename Tag>
|
||||
struct is_generic<Point, Geometry, point_tag, Tag>
|
||||
{
|
||||
static const bool value = is_supported_by_generic<Geometry>::value;
|
||||
};
|
||||
|
||||
template <typename Geometry, typename Point, typename Tag>
|
||||
struct is_generic<Geometry, Point, Tag, point_tag>
|
||||
{
|
||||
static const bool value = is_supported_by_generic<Geometry>::value;
|
||||
};
|
||||
|
||||
template <typename Point1, typename Point2>
|
||||
struct is_generic<Point1, Point2, point_tag, point_tag>
|
||||
{
|
||||
static const bool value = false;
|
||||
};
|
||||
|
||||
|
||||
}} // namespace detail::relate
|
||||
#endif // DOXYGEN_NO_DETAIL
|
||||
|
||||
|
@ -29,12 +29,13 @@
|
||||
|
||||
#include <boost/geometry/index/rtree.hpp>
|
||||
|
||||
|
||||
// TEMP
|
||||
#include <boost/geometry/strategies/envelope/cartesian.hpp>
|
||||
#include <boost/geometry/strategies/envelope/geographic.hpp>
|
||||
#include <boost/geometry/strategies/envelope/spherical.hpp>
|
||||
|
||||
#include <boost/geometry/util/type_traits.hpp>
|
||||
|
||||
|
||||
namespace boost { namespace geometry
|
||||
{
|
||||
@ -606,14 +607,7 @@ template
|
||||
<
|
||||
typename MultiPoint, typename Geometry,
|
||||
bool Transpose = false,
|
||||
bool isMulti = boost::is_same
|
||||
<
|
||||
typename tag_cast
|
||||
<
|
||||
typename tag<Geometry>::type, multi_tag
|
||||
>::type,
|
||||
multi_tag
|
||||
>::value
|
||||
bool isMulti = detail::is_multi<Geometry>::value
|
||||
>
|
||||
struct multi_point_geometry
|
||||
: multi_point_single_geometry<MultiPoint, Geometry, Transpose>
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2013, 2014, 2015, 2019.
|
||||
// Modifications copyright (c) 2013-2019 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2013-2020.
|
||||
// Modifications copyright (c) 2013-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -14,9 +14,7 @@
|
||||
#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_RELATE_RELATE_IMPL_HPP
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_RELATE_RELATE_IMPL_HPP
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/mpl/or.hpp>
|
||||
#include <boost/type_traits/is_base_of.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/relate/interface.hpp>
|
||||
#include <boost/geometry/algorithms/not_implemented.hpp>
|
||||
@ -36,9 +34,9 @@ template
|
||||
typename Geometry2
|
||||
>
|
||||
struct relate_impl_base
|
||||
: boost::mpl::if_c
|
||||
: std::conditional_t
|
||||
<
|
||||
boost::is_base_of
|
||||
std::is_base_of
|
||||
<
|
||||
nyi::not_implemented_tag,
|
||||
dispatch::relate<Geometry1, Geometry2>
|
||||
@ -49,7 +47,7 @@ struct relate_impl_base
|
||||
typename geometry::tag<Geometry2>::type
|
||||
>,
|
||||
implemented_tag
|
||||
>::type
|
||||
>
|
||||
{};
|
||||
|
||||
template
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include <algorithm>
|
||||
#include <cstddef>
|
||||
#include <cstring>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/at.hpp>
|
||||
@ -30,7 +31,6 @@
|
||||
#include <boost/static_assert.hpp>
|
||||
#include <boost/throw_exception.hpp>
|
||||
#include <boost/tuple/tuple.hpp>
|
||||
#include <boost/type_traits/integral_constant.hpp>
|
||||
|
||||
#include <boost/geometry/core/assert.hpp>
|
||||
#include <boost/geometry/core/coordinate_dimension.hpp>
|
||||
@ -167,7 +167,7 @@ public:
|
||||
{
|
||||
static const bool in_bounds = F1 < Matrix::static_height
|
||||
&& F2 < Matrix::static_width;
|
||||
typedef boost::integral_constant<bool, in_bounds> in_bounds_t;
|
||||
typedef std::integral_constant<bool, in_bounds> in_bounds_t;
|
||||
set_dispatch<F1, F2, V>(in_bounds_t());
|
||||
}
|
||||
|
||||
@ -176,13 +176,13 @@ public:
|
||||
{
|
||||
static const bool in_bounds = F1 < Matrix::static_height
|
||||
&& F2 < Matrix::static_width;
|
||||
typedef boost::integral_constant<bool, in_bounds> in_bounds_t;
|
||||
typedef std::integral_constant<bool, in_bounds> in_bounds_t;
|
||||
update_dispatch<F1, F2, D>(in_bounds_t());
|
||||
}
|
||||
|
||||
private:
|
||||
template <field F1, field F2, char V>
|
||||
inline void set_dispatch(integral_constant<bool, true>)
|
||||
inline void set_dispatch(std::true_type)
|
||||
{
|
||||
static const std::size_t index = F1 * Matrix::static_width + F2;
|
||||
BOOST_STATIC_ASSERT(index < Matrix::static_size);
|
||||
@ -190,11 +190,11 @@ private:
|
||||
m_matrix.template set<F1, F2, V>();
|
||||
}
|
||||
template <field F1, field F2, char V>
|
||||
inline void set_dispatch(integral_constant<bool, false>)
|
||||
inline void set_dispatch(std::false_type)
|
||||
{}
|
||||
|
||||
template <field F1, field F2, char D>
|
||||
inline void update_dispatch(integral_constant<bool, true>)
|
||||
inline void update_dispatch(std::true_type)
|
||||
{
|
||||
static const std::size_t index = F1 * Matrix::static_width + F2;
|
||||
BOOST_STATIC_ASSERT(index < Matrix::static_size);
|
||||
@ -204,7 +204,7 @@ private:
|
||||
m_matrix.template set<F1, F2, D>();
|
||||
}
|
||||
template <field F1, field F2, char D>
|
||||
inline void update_dispatch(integral_constant<bool, false>)
|
||||
inline void update_dispatch(std::false_type)
|
||||
{}
|
||||
|
||||
Matrix m_matrix;
|
||||
@ -864,35 +864,37 @@ struct static_may_update_dispatch
|
||||
: mask_el >= '0' && mask_el <= '9' ? 2
|
||||
: 3;
|
||||
|
||||
// TODO: use std::enable_if_t instead of std::integral_constant
|
||||
|
||||
template <typename Matrix>
|
||||
static inline bool apply(Matrix const& matrix)
|
||||
{
|
||||
return apply_dispatch(matrix, integral_constant<int, version>());
|
||||
return apply_dispatch(matrix, std::integral_constant<int, version>());
|
||||
}
|
||||
|
||||
// mask_el == 'F'
|
||||
template <typename Matrix>
|
||||
static inline bool apply_dispatch(Matrix const& , integral_constant<int, 0>)
|
||||
static inline bool apply_dispatch(Matrix const& , std::integral_constant<int, 0>)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
// mask_el == 'T'
|
||||
template <typename Matrix>
|
||||
static inline bool apply_dispatch(Matrix const& matrix, integral_constant<int, 1>)
|
||||
static inline bool apply_dispatch(Matrix const& matrix, std::integral_constant<int, 1>)
|
||||
{
|
||||
char const c = matrix.template get<F1, F2>();
|
||||
return c == 'F'; // if it's T or between 0 and 9, the result will be the same
|
||||
}
|
||||
// mask_el >= '0' && mask_el <= '9'
|
||||
template <typename Matrix>
|
||||
static inline bool apply_dispatch(Matrix const& matrix, integral_constant<int, 2>)
|
||||
static inline bool apply_dispatch(Matrix const& matrix, std::integral_constant<int, 2>)
|
||||
{
|
||||
char const c = matrix.template get<F1, F2>();
|
||||
return D > c || c > '9';
|
||||
}
|
||||
// else
|
||||
template <typename Matrix>
|
||||
static inline bool apply_dispatch(Matrix const&, integral_constant<int, 3>)
|
||||
static inline bool apply_dispatch(Matrix const&, std::integral_constant<int, 3>)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@ -990,30 +992,32 @@ struct static_check_dispatch
|
||||
: mask_el >= '0' && mask_el <= '9' ? 2
|
||||
: 3;
|
||||
|
||||
// TODO: use std::enable_if_t instead of std::integral_constant
|
||||
|
||||
template <typename Matrix>
|
||||
static inline bool apply(Matrix const& matrix)
|
||||
{
|
||||
const char el = matrix.template get<F1, F2>();
|
||||
return apply_dispatch(el, integral_constant<int, version>());
|
||||
return apply_dispatch(el, std::integral_constant<int, version>());
|
||||
}
|
||||
|
||||
// mask_el == 'F'
|
||||
static inline bool apply_dispatch(char el, integral_constant<int, 0>)
|
||||
static inline bool apply_dispatch(char el, std::integral_constant<int, 0>)
|
||||
{
|
||||
return el == 'F';
|
||||
}
|
||||
// mask_el == 'T'
|
||||
static inline bool apply_dispatch(char el, integral_constant<int, 1>)
|
||||
static inline bool apply_dispatch(char el, std::integral_constant<int, 1>)
|
||||
{
|
||||
return el == 'T' || ( el >= '0' && el <= '9' );
|
||||
}
|
||||
// mask_el >= '0' && mask_el <= '9'
|
||||
static inline bool apply_dispatch(char el, integral_constant<int, 2>)
|
||||
static inline bool apply_dispatch(char el, std::integral_constant<int, 2>)
|
||||
{
|
||||
return el == mask_el;
|
||||
}
|
||||
// else
|
||||
static inline bool apply_dispatch(char /*el*/, integral_constant<int, 3>)
|
||||
static inline bool apply_dispatch(char /*el*/, std::integral_constant<int, 3>)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2013, 2014, 2015, 2017, 2019.
|
||||
// Modifications copyright (c) 2013-2019 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2013-2020.
|
||||
// Modifications copyright (c) 2013-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
@ -15,7 +15,7 @@
|
||||
#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_RELATE_TURNS_HPP
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_RELATE_TURNS_HPP
|
||||
|
||||
#include <boost/geometry/strategies/distance.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/overlay/do_reverse.hpp>
|
||||
#include <boost/geometry/algorithms/detail/overlay/get_turns.hpp>
|
||||
#include <boost/geometry/algorithms/detail/overlay/get_turn_info.hpp>
|
||||
@ -25,8 +25,7 @@
|
||||
|
||||
#include <boost/geometry/strategies/cartesian/point_in_point.hpp>
|
||||
#include <boost/geometry/strategies/spherical/point_in_point.hpp>
|
||||
|
||||
#include <boost/type_traits/is_base_of.hpp>
|
||||
#include <boost/geometry/strategies/distance.hpp>
|
||||
|
||||
|
||||
namespace boost { namespace geometry {
|
||||
|
@ -22,6 +22,7 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_SECTIONS_SECTIONALIZE_HPP
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
#include <vector>
|
||||
|
||||
#include <boost/concept/requires.hpp>
|
||||
@ -30,8 +31,6 @@
|
||||
#include <boost/mpl/vector_c.hpp>
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/type_traits/is_fundamental.hpp>
|
||||
|
||||
#include <boost/geometry/core/config.hpp>
|
||||
|
||||
@ -804,7 +803,7 @@ struct expand_by_epsilon<spherical_tag>
|
||||
static inline void apply(Box & box)
|
||||
{
|
||||
typedef typename coordinate_type<Box>::type coord_t;
|
||||
static const coord_t eps = boost::is_same<coord_t, float>::value
|
||||
static const coord_t eps = std::is_same<coord_t, float>::value
|
||||
? coord_t(1e-6)
|
||||
: coord_t(1e-12);
|
||||
detail::expand_by_epsilon(box, eps);
|
||||
@ -1009,7 +1008,7 @@ inline void sectionalize(Geometry const& geometry,
|
||||
int source_index = 0,
|
||||
std::size_t max_count = 10)
|
||||
{
|
||||
BOOST_STATIC_ASSERT((! boost::is_fundamental<EnvelopeStrategy>::value));
|
||||
BOOST_STATIC_ASSERT((! std::is_fundamental<EnvelopeStrategy>::value));
|
||||
|
||||
concepts::check<Geometry const>();
|
||||
|
||||
@ -1030,7 +1029,7 @@ inline void sectionalize(Geometry const& geometry,
|
||||
>::type
|
||||
>::type ctype2;
|
||||
|
||||
BOOST_MPL_ASSERT((boost::is_same<ctype1, ctype2>));
|
||||
BOOST_STATIC_ASSERT((std::is_same<ctype1, ctype2>::value));
|
||||
|
||||
|
||||
sections.clear();
|
||||
@ -1074,12 +1073,12 @@ inline void sectionalize(Geometry const& geometry,
|
||||
|
||||
typedef typename strategy::expand::services::default_strategy
|
||||
<
|
||||
typename boost::mpl::if_c
|
||||
std::conditional_t
|
||||
<
|
||||
boost::is_same<typename tag<Geometry>::type, box_tag>::value,
|
||||
std::is_same<typename tag<Geometry>::type, box_tag>::value,
|
||||
box_tag,
|
||||
segment_tag
|
||||
>::type,
|
||||
>,
|
||||
typename cs_tag<Geometry>::type
|
||||
>::type expand_strategy_type;
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Boost.Geometry (aka GGL, Generic Geometry Library)
|
||||
|
||||
// Copyright (c) 2014-2015, Oracle and/or its affiliates.
|
||||
// Copyright (c) 2014-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -13,14 +13,14 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
#include <boost/type_traits/make_signed.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
namespace boost { namespace geometry
|
||||
{
|
||||
|
||||
|
||||
typedef boost::make_signed<std::size_t>::type signed_size_type;
|
||||
typedef std::make_signed<std::size_t>::type signed_size_type;
|
||||
|
||||
|
||||
}} // namespace boost::geometry
|
||||
|
@ -2,20 +2,18 @@
|
||||
|
||||
// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2013, 2014.
|
||||
// Modifications copyright (c) 2013-2014, Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2013-2020.
|
||||
// Modifications copyright (c) 2013-2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_SINGLE_GEOMETRY_HPP
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_SINGLE_GEOMETRY_HPP
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/type_traits/is_base_of.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/assert.hpp>
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
@ -28,12 +26,14 @@ namespace detail_dispatch {
|
||||
|
||||
// Returns single geometry by Id
|
||||
// for single geometries returns the geometry itself
|
||||
template <typename Geometry,
|
||||
bool IsMulti = boost::is_base_of
|
||||
<
|
||||
multi_tag,
|
||||
typename geometry::tag<Geometry>::type
|
||||
>::value
|
||||
template
|
||||
<
|
||||
typename Geometry,
|
||||
bool IsMulti = std::is_base_of
|
||||
<
|
||||
multi_tag,
|
||||
typename geometry::tag<Geometry>::type
|
||||
>::value
|
||||
>
|
||||
struct single_geometry
|
||||
{
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2013, 2014, 2018.
|
||||
// Modifications copyright (c) 2013-2018, Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2013-2020.
|
||||
// Modifications copyright (c) 2013-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -14,8 +14,7 @@
|
||||
#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_SUB_RANGE_HPP
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_SUB_RANGE_HPP
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/type_traits/is_base_of.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/algorithms/not_implemented.hpp>
|
||||
|
||||
@ -36,7 +35,7 @@ namespace detail_dispatch {
|
||||
|
||||
template <typename Geometry,
|
||||
typename Tag = typename geometry::tag<Geometry>::type,
|
||||
bool IsMulti = boost::is_base_of<multi_tag, Tag>::value>
|
||||
bool IsMulti = std::is_base_of<multi_tag, Tag>::value>
|
||||
struct sub_range : not_implemented<Tag>
|
||||
{};
|
||||
|
||||
@ -80,12 +79,12 @@ template <typename Geometry, typename Tag>
|
||||
struct sub_range<Geometry, Tag, true>
|
||||
{
|
||||
typedef typename boost::range_value<Geometry>::type value_type;
|
||||
typedef typename boost::mpl::if_c
|
||||
typedef std::conditional_t
|
||||
<
|
||||
boost::is_const<Geometry>::value,
|
||||
typename boost::add_const<value_type>::type,
|
||||
std::is_const<Geometry>::value,
|
||||
typename std::add_const<value_type>::type,
|
||||
value_type
|
||||
>::type sub_type;
|
||||
> sub_type;
|
||||
|
||||
typedef detail_dispatch::sub_range<sub_type> sub_sub_range;
|
||||
|
||||
|
@ -21,6 +21,8 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_TOUCHES_IMPLEMENTATION_HPP
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/for_each_range.hpp>
|
||||
#include <boost/geometry/algorithms/detail/overlay/overlay.hpp>
|
||||
#include <boost/geometry/algorithms/detail/overlay/self_turn_points.hpp>
|
||||
@ -101,7 +103,7 @@ struct box_box
|
||||
template <typename Box1, typename Box2, typename Strategy>
|
||||
static inline bool apply(Box1 const& b1, Box2 const& b2, Strategy const& /*strategy*/)
|
||||
{
|
||||
BOOST_STATIC_ASSERT((boost::is_same
|
||||
BOOST_STATIC_ASSERT((std::is_same
|
||||
<
|
||||
typename geometry::coordinate_system<Box1>::type,
|
||||
typename geometry::coordinate_system<Box2>::type
|
||||
|
@ -311,13 +311,11 @@ struct tupled_back_inserters<std::pair<F, S> >
|
||||
|
||||
#ifdef BOOST_GEOMETRY_CXX11_TUPLE
|
||||
|
||||
// NOTE: In C++14 std::integer_sequence and std::make_integer_sequence could be used
|
||||
|
||||
template <typename Is, typename Tuple>
|
||||
struct tupled_back_inserters_st;
|
||||
|
||||
template <int ...Is, typename ...Ts>
|
||||
struct tupled_back_inserters_st<geometry::tuples::int_sequence<Is...>, std::tuple<Ts...> >
|
||||
template <std::size_t ...Is, typename ...Ts>
|
||||
struct tupled_back_inserters_st<std::index_sequence<Is...>, std::tuple<Ts...> >
|
||||
{
|
||||
typedef std::tuple<geometry::range::back_insert_iterator<Ts>...> type;
|
||||
|
||||
@ -331,7 +329,7 @@ template <typename ...Ts>
|
||||
struct tupled_back_inserters<std::tuple<Ts...> >
|
||||
: tupled_back_inserters_st
|
||||
<
|
||||
typename geometry::tuples::make_int_sequence<sizeof...(Ts)>::type,
|
||||
std::make_index_sequence<sizeof...(Ts)>,
|
||||
std::tuple<Ts...>
|
||||
>
|
||||
{};
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Boost.Geometry
|
||||
|
||||
// Copyright (c) 2017, 2019 Oracle and/or its affiliates.
|
||||
// Copyright (c) 2017-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -16,7 +16,6 @@
|
||||
#include <vector>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/disjoint/box_box.hpp>
|
||||
#include <boost/geometry/algorithms/detail/disjoint/point_box.hpp>
|
||||
@ -37,6 +36,8 @@
|
||||
#include <boost/geometry/strategies/covered_by.hpp>
|
||||
#include <boost/geometry/strategies/disjoint.hpp>
|
||||
|
||||
#include <boost/geometry/util/type_traits.hpp>
|
||||
|
||||
|
||||
namespace boost { namespace geometry {
|
||||
|
||||
@ -167,15 +168,7 @@ struct multi_point_multi_geometry
|
||||
{
|
||||
typedef typename point_type<LinearOrAreal>::type point2_type;
|
||||
typedef model::box<point2_type> box2_type;
|
||||
static const bool is_linear = is_same
|
||||
<
|
||||
typename tag_cast
|
||||
<
|
||||
typename tag<LinearOrAreal>::type,
|
||||
linear_tag
|
||||
>::type,
|
||||
linear_tag
|
||||
>::value;
|
||||
static const bool is_linear = detail::is_linear<LinearOrAreal>::value;
|
||||
|
||||
typename Strategy::envelope_strategy_type const
|
||||
envelope_strategy = strategy.get_envelope_strategy();
|
||||
|
@ -5,8 +5,8 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2014 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2013, 2014, 2015, 2017, 2018, 2019.
|
||||
// Modifications copyright (c) 2013-2019, Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2013-2020.
|
||||
// Modifications copyright (c) 2013-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -24,8 +24,6 @@
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/geometry/core/assert.hpp>
|
||||
|
||||
|
@ -23,11 +23,9 @@
|
||||
|
||||
|
||||
#include <algorithm>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/interior_iterator.hpp>
|
||||
#include <boost/geometry/algorithms/not_implemented.hpp>
|
||||
@ -112,7 +110,7 @@ struct fe_range_value
|
||||
{
|
||||
typedef typename add_const_if_c
|
||||
<
|
||||
boost::is_const<Range>::value,
|
||||
std::is_const<Range>::value,
|
||||
typename boost::range_value<Range>::type
|
||||
>::type type;
|
||||
};
|
||||
@ -122,7 +120,7 @@ struct fe_point_type
|
||||
{
|
||||
typedef typename add_const_if_c
|
||||
<
|
||||
boost::is_const<Range>::value,
|
||||
std::is_const<Range>::value,
|
||||
typename point_type<Range>::type
|
||||
>::type type;
|
||||
};
|
||||
@ -132,8 +130,8 @@ template <typename Range>
|
||||
struct fe_point_type_is_referencable
|
||||
{
|
||||
static const bool value =
|
||||
boost::is_const<Range>::value
|
||||
|| boost::is_same
|
||||
std::is_const<Range>::value
|
||||
|| std::is_same
|
||||
<
|
||||
typename boost::range_reference<Range>::type,
|
||||
typename fe_point_type<Range>::type&
|
||||
|
@ -4,8 +4,8 @@
|
||||
// Copyright (c) 2008-2014 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2014 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2014, 2015.
|
||||
// Modifications copyright (c) 2014-2015, Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2014-2020.
|
||||
// Modifications copyright (c) 2014-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
@ -24,14 +24,6 @@
|
||||
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/mpl/fold.hpp>
|
||||
#include <boost/mpl/greater.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/mpl/insert.hpp>
|
||||
#include <boost/mpl/int.hpp>
|
||||
#include <boost/mpl/set.hpp>
|
||||
#include <boost/mpl/size.hpp>
|
||||
#include <boost/mpl/transform.hpp>
|
||||
#include <boost/range/begin.hpp>
|
||||
#include <boost/range/end.hpp>
|
||||
#include <boost/range/iterator.hpp>
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Boost.Geometry (aka GGL, Generic Geometry Library)
|
||||
|
||||
// Copyright (c) 2018, 2019 Oracle and/or its affiliates.
|
||||
// Copyright (c) 2018-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
@ -13,6 +13,7 @@
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_LINE_INTERPOLATE_HPP
|
||||
|
||||
#include <iterator>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/range/begin.hpp>
|
||||
#include <boost/range/end.hpp>
|
||||
@ -119,7 +120,7 @@ struct interpolate_range
|
||||
p,
|
||||
diff_distance);
|
||||
policy.apply(p, pointlike);
|
||||
if (boost::is_same<PointLike, point_t>::value)
|
||||
if (std::is_same<PointLike, point_t>::value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -4,10 +4,11 @@
|
||||
// Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
// Copyright (c) 2009-2015 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2015.
|
||||
// Modifications copyright (c) 2015, Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2015-2020.
|
||||
// Modifications copyright (c) 2015-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
@ -93,8 +94,8 @@ template <> struct tag_to_term<multi_point_tag> { typedef info::MULT
|
||||
template <> struct tag_to_term<multi_linestring_tag> { typedef info::MULTI_LINESTRING type; };
|
||||
template <> struct tag_to_term<multi_polygon_tag> { typedef info::MULTI_POLYGON type; };
|
||||
template <> struct tag_to_term<geometry_collection_tag> { typedef info::GEOMETRY_COLLECTION type; };
|
||||
template <int D> struct tag_to_term<boost::mpl::int_<D> > { typedef info::DIMENSION<D> type; };
|
||||
|
||||
template <int D> struct tag_to_term<std::integral_constant<int, D> > { typedef info::DIMENSION<D> type; };
|
||||
template <size_t D> struct tag_to_term<std::integral_constant<size_t, D> > { typedef info::DIMENSION<D> type; };
|
||||
|
||||
}
|
||||
|
||||
|
@ -5,10 +5,11 @@
|
||||
// Copyright (c) 2009-2014 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2014 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2014.
|
||||
// Modifications copyright (c) 2014, Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2014-2020.
|
||||
// Modifications copyright (c) 2014-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
@ -22,8 +23,6 @@
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <boost/mpl/size_t.hpp>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
|
||||
#include <boost/variant/apply_visitor.hpp>
|
||||
|
@ -1,8 +1,9 @@
|
||||
// Boost.Geometry (aka GGL, Generic Geometry Library)
|
||||
|
||||
// Copyright (c) 2014, Oracle and/or its affiliates.
|
||||
// Copyright (c) 2014-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Licensed under the Boost Software License version 1.0.
|
||||
// http://www.boost.org/users/license.html
|
||||
@ -12,9 +13,6 @@
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <boost/mpl/size_t.hpp>
|
||||
#include <boost/mpl/times.hpp>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
|
||||
#include <boost/variant/apply_visitor.hpp>
|
||||
|
@ -5,8 +5,8 @@
|
||||
// Copyright (c) 2009-2013 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013-2014 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2017.
|
||||
// Modifications copyright (c) 2017 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2017-2020.
|
||||
// Modifications copyright (c) 2017-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -20,7 +20,6 @@
|
||||
#include <deque>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/variant/apply_visitor.hpp>
|
||||
#include <boost/variant/static_visitor.hpp>
|
||||
|
@ -5,6 +5,10 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2014 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -18,7 +22,6 @@
|
||||
#include <algorithm>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/variant/apply_visitor.hpp>
|
||||
#include <boost/variant/static_visitor.hpp>
|
||||
|
@ -5,6 +5,10 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2014 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -17,9 +21,9 @@
|
||||
|
||||
#include <cmath>
|
||||
#include <iterator>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/variant/apply_visitor.hpp>
|
||||
#include <boost/variant/static_visitor.hpp>
|
||||
@ -170,7 +174,7 @@ struct transform_polygon
|
||||
// Note: here a resizeable container is assumed.
|
||||
traits::resize
|
||||
<
|
||||
typename boost::remove_reference
|
||||
typename std::remove_reference
|
||||
<
|
||||
typename traits::interior_mutable_type<Polygon2>::type
|
||||
>::type
|
||||
|
@ -5,6 +5,10 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2014 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -18,7 +22,6 @@
|
||||
#include <algorithm>
|
||||
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/detail/interior_iterator.hpp>
|
||||
#include <boost/geometry/core/interior_rings.hpp>
|
||||
|
@ -17,9 +17,9 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/size_t.hpp>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
#include <boost/geometry/core/coordinate_dimension.hpp>
|
||||
@ -43,7 +43,7 @@ struct cross_product
|
||||
// wedge product but it is not direct analogue to binary cross product.
|
||||
BOOST_MPL_ASSERT_MSG((false),
|
||||
NOT_IMPLEMENTED_FOR_THIS_DIMENSION,
|
||||
(mpl::size_t<Dimension>));
|
||||
(std::integral_constant<std::size_t, Dimension>));
|
||||
};
|
||||
|
||||
template <>
|
||||
|
@ -20,10 +20,9 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/type_traits/is_pointer.hpp>
|
||||
#include <boost/type_traits/remove_pointer.hpp>
|
||||
|
||||
#include <boost/geometry/core/coordinate_type.hpp>
|
||||
#include <boost/geometry/core/point_type.hpp>
|
||||
@ -118,11 +117,11 @@ struct indexed_access_pointer
|
||||
{
|
||||
static constexpr CoordinateType get(Geometry const* geometry)
|
||||
{
|
||||
return traits::indexed_access<typename boost::remove_pointer<Geometry>::type, Index, Dimension>::get(*geometry);
|
||||
return traits::indexed_access<typename std::remove_pointer<Geometry>::type, Index, Dimension>::get(*geometry);
|
||||
}
|
||||
static void set(Geometry* geometry, CoordinateType const& value)
|
||||
{
|
||||
traits::indexed_access<typename boost::remove_pointer<Geometry>::type, Index, Dimension>::set(*geometry, value);
|
||||
traits::indexed_access<typename std::remove_pointer<Geometry>::type, Index, Dimension>::set(*geometry, value);
|
||||
}
|
||||
};
|
||||
|
||||
@ -166,7 +165,7 @@ struct indexed_access
|
||||
};
|
||||
|
||||
template <typename Point, typename CoordinateType, std::size_t Dimension>
|
||||
struct access<point_tag, Point, CoordinateType, Dimension, boost::false_type>
|
||||
struct access<point_tag, Point, CoordinateType, Dimension, std::false_type>
|
||||
{
|
||||
static constexpr CoordinateType get(Point const& point)
|
||||
{
|
||||
@ -179,15 +178,15 @@ struct access<point_tag, Point, CoordinateType, Dimension, boost::false_type>
|
||||
};
|
||||
|
||||
template <typename Point, typename CoordinateType, std::size_t Dimension>
|
||||
struct access<point_tag, Point, CoordinateType, Dimension, boost::true_type>
|
||||
struct access<point_tag, Point, CoordinateType, Dimension, std::true_type>
|
||||
{
|
||||
static constexpr CoordinateType get(Point const* point)
|
||||
{
|
||||
return traits::access<typename boost::remove_pointer<Point>::type, Dimension>::get(*point);
|
||||
return traits::access<typename std::remove_pointer<Point>::type, Dimension>::get(*point);
|
||||
}
|
||||
static void set(Point* p, CoordinateType const& value)
|
||||
{
|
||||
traits::access<typename boost::remove_pointer<Point>::type, Dimension>::set(*p, value);
|
||||
traits::access<typename std::remove_pointer<Point>::type, Dimension>::set(*p, value);
|
||||
}
|
||||
};
|
||||
|
||||
@ -199,7 +198,7 @@ template
|
||||
std::size_t Index,
|
||||
std::size_t Dimension
|
||||
>
|
||||
struct indexed_access<box_tag, Box, CoordinateType, Index, Dimension, boost::false_type>
|
||||
struct indexed_access<box_tag, Box, CoordinateType, Index, Dimension, std::false_type>
|
||||
: detail::indexed_access_non_pointer<Box, CoordinateType, Index, Dimension>
|
||||
{};
|
||||
|
||||
@ -210,7 +209,7 @@ template
|
||||
std::size_t Index,
|
||||
std::size_t Dimension
|
||||
>
|
||||
struct indexed_access<box_tag, Box, CoordinateType, Index, Dimension, boost::true_type>
|
||||
struct indexed_access<box_tag, Box, CoordinateType, Index, Dimension, std::true_type>
|
||||
: detail::indexed_access_pointer<Box, CoordinateType, Index, Dimension>
|
||||
{};
|
||||
|
||||
@ -222,7 +221,7 @@ template
|
||||
std::size_t Index,
|
||||
std::size_t Dimension
|
||||
>
|
||||
struct indexed_access<segment_tag, Segment, CoordinateType, Index, Dimension, boost::false_type>
|
||||
struct indexed_access<segment_tag, Segment, CoordinateType, Index, Dimension, std::false_type>
|
||||
: detail::indexed_access_non_pointer<Segment, CoordinateType, Index, Dimension>
|
||||
{};
|
||||
|
||||
@ -234,7 +233,7 @@ template
|
||||
std::size_t Index,
|
||||
std::size_t Dimension
|
||||
>
|
||||
struct indexed_access<segment_tag, Segment, CoordinateType, Index, Dimension, boost::true_type>
|
||||
struct indexed_access<segment_tag, Segment, CoordinateType, Index, Dimension, std::true_type>
|
||||
: detail::indexed_access_pointer<Segment, CoordinateType, Index, Dimension>
|
||||
{};
|
||||
|
||||
@ -281,7 +280,7 @@ constexpr inline typename coordinate_type<Geometry>::type get(Geometry const& ge
|
||||
typename geometry::util::bare_type<Geometry>::type,
|
||||
typename coordinate_type<Geometry>::type,
|
||||
Dimension,
|
||||
typename boost::is_pointer<Geometry>::type
|
||||
typename std::is_pointer<Geometry>::type
|
||||
> coord_access_type;
|
||||
|
||||
return coord_access_type::get(geometry);
|
||||
@ -314,7 +313,7 @@ inline void set(Geometry& geometry
|
||||
typename geometry::util::bare_type<Geometry>::type,
|
||||
typename coordinate_type<Geometry>::type,
|
||||
Dimension,
|
||||
typename boost::is_pointer<Geometry>::type
|
||||
typename std::is_pointer<Geometry>::type
|
||||
> coord_access_type;
|
||||
|
||||
coord_access_type::set(geometry, value);
|
||||
@ -348,7 +347,7 @@ constexpr inline typename coordinate_type<Geometry>::type get(Geometry const& ge
|
||||
typename coordinate_type<Geometry>::type,
|
||||
Index,
|
||||
Dimension,
|
||||
typename boost::is_pointer<Geometry>::type
|
||||
typename std::is_pointer<Geometry>::type
|
||||
> coord_access_type;
|
||||
|
||||
return coord_access_type::get(geometry);
|
||||
@ -383,7 +382,7 @@ inline void set(Geometry& geometry
|
||||
typename coordinate_type<Geometry>::type,
|
||||
Index,
|
||||
Dimension,
|
||||
typename boost::is_pointer<Geometry>::type
|
||||
typename std::is_pointer<Geometry>::type
|
||||
> coord_access_type;
|
||||
|
||||
coord_access_type::set(geometry, value);
|
||||
|
@ -4,8 +4,8 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2014.
|
||||
// Modifications copyright (c) 2014 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2014-2020.
|
||||
// Modifications copyright (c) 2014-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -19,8 +19,9 @@
|
||||
#ifndef BOOST_GEOMETRY_CORE_CLOSURE_HPP
|
||||
#define BOOST_GEOMETRY_CORE_CLOSURE_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/size_t.hpp>
|
||||
#include <boost/range/value_type.hpp>
|
||||
|
||||
#include <boost/geometry/core/ring_type.hpp>
|
||||
@ -97,10 +98,14 @@ template <closure_selector Closure>
|
||||
struct minimum_ring_size {};
|
||||
|
||||
template <>
|
||||
struct minimum_ring_size<geometry::closed> : boost::mpl::size_t<4> {};
|
||||
struct minimum_ring_size<geometry::closed>
|
||||
: std::integral_constant<std::size_t, 4>
|
||||
{};
|
||||
|
||||
template <>
|
||||
struct minimum_ring_size<geometry::open> : boost::mpl::size_t<3> {};
|
||||
struct minimum_ring_size<geometry::open>
|
||||
: std::integral_constant<std::size_t, 3>
|
||||
{};
|
||||
|
||||
|
||||
}} // namespace detail::point_order
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -16,6 +20,7 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
@ -34,7 +39,7 @@ namespace traits
|
||||
\par Geometries:
|
||||
- point
|
||||
\par Specializations should provide:
|
||||
- value (should be derived from boost::mpl::int_<D>
|
||||
- value (e.g. derived from std::integral_constant<std::size_t, D>)
|
||||
\ingroup traits
|
||||
*/
|
||||
template <typename Point, typename Enable = void>
|
||||
@ -54,11 +59,17 @@ namespace core_dispatch
|
||||
|
||||
// Base class derive from its own specialization of point-tag
|
||||
template <typename T, typename G>
|
||||
struct dimension : dimension<point_tag, typename point_type<T, G>::type> {};
|
||||
struct dimension
|
||||
: dimension<point_tag, typename point_type<T, G>::type>::type
|
||||
{};
|
||||
|
||||
template <typename P>
|
||||
struct dimension<point_tag, P>
|
||||
: traits::dimension<typename geometry::util::bare_type<P>::type>
|
||||
: std::integral_constant
|
||||
<
|
||||
std::size_t,
|
||||
traits::dimension<typename geometry::util::bare_type<P>::type>::value
|
||||
>
|
||||
{
|
||||
BOOST_MPL_ASSERT_MSG(
|
||||
(traits::dimension<typename geometry::util::bare_type<P>::type>::value > 0),
|
||||
@ -103,13 +114,13 @@ constexpr inline void assert_dimension()
|
||||
template <typename Geometry, int Dimensions>
|
||||
constexpr inline void assert_dimension_less_equal()
|
||||
{
|
||||
BOOST_STATIC_ASSERT(( static_cast<int>(dimension<Geometry>::type::value) <= Dimensions ));
|
||||
BOOST_STATIC_ASSERT(( static_cast<int>(dimension<Geometry>::value) <= Dimensions ));
|
||||
}
|
||||
|
||||
template <typename Geometry, int Dimensions>
|
||||
constexpr inline void assert_dimension_greater_equal()
|
||||
{
|
||||
BOOST_STATIC_ASSERT(( static_cast<int>(dimension<Geometry>::type::value) >= Dimensions ));
|
||||
BOOST_STATIC_ASSERT(( static_cast<int>(dimension<Geometry>::value) >= Dimensions ));
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -119,7 +130,7 @@ constexpr inline void assert_dimension_greater_equal()
|
||||
template <typename G1, typename G2>
|
||||
constexpr inline void assert_dimension_equal()
|
||||
{
|
||||
BOOST_STATIC_ASSERT(( static_cast<size_t>(dimension<G1>::type::value) == static_cast<size_t>(dimension<G2>::type::value) ));
|
||||
BOOST_STATIC_ASSERT(( static_cast<size_t>(dimension<G1>::value) == static_cast<size_t>(dimension<G2>::value) ));
|
||||
}
|
||||
|
||||
}} // namespace boost::geometry
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -16,10 +20,9 @@
|
||||
#define BOOST_GEOMETRY_CORE_EXTERIOR_RING_HPP
|
||||
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
|
||||
#include <boost/geometry/core/ring_type.hpp>
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
@ -82,13 +85,13 @@ struct exterior_ring<polygon_tag, Polygon>
|
||||
typename geometry::ring_return_type<Polygon>::type
|
||||
apply(typename add_const_if_c
|
||||
<
|
||||
boost::is_const<Polygon>::type::value,
|
||||
std::is_const<Polygon>::type::value,
|
||||
Polygon
|
||||
>::type& polygon)
|
||||
{
|
||||
return traits::exterior_ring
|
||||
<
|
||||
typename boost::remove_const<Polygon>::type
|
||||
typename std::remove_const<Polygon>::type
|
||||
>::get(polygon);
|
||||
}
|
||||
};
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -16,8 +20,9 @@
|
||||
#define BOOST_GEOMETRY_CORE_GEOMETRY_ID_HPP
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/int.hpp>
|
||||
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
@ -43,39 +48,39 @@ struct geometry_id
|
||||
|
||||
|
||||
template <>
|
||||
struct geometry_id<point_tag> : boost::mpl::int_<1> {};
|
||||
struct geometry_id<point_tag> : std::integral_constant<int, 1> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct geometry_id<linestring_tag> : boost::mpl::int_<2> {};
|
||||
struct geometry_id<linestring_tag> : std::integral_constant<int, 2> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct geometry_id<polygon_tag> : boost::mpl::int_<3> {};
|
||||
struct geometry_id<polygon_tag> : std::integral_constant<int, 3> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct geometry_id<multi_point_tag> : boost::mpl::int_<4> {};
|
||||
struct geometry_id<multi_point_tag> : std::integral_constant<int, 4> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct geometry_id<multi_linestring_tag> : boost::mpl::int_<5> {};
|
||||
struct geometry_id<multi_linestring_tag> : std::integral_constant<int, 5> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct geometry_id<multi_polygon_tag> : boost::mpl::int_<6> {};
|
||||
struct geometry_id<multi_polygon_tag> : std::integral_constant<int, 6> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct geometry_id<segment_tag> : boost::mpl::int_<92> {};
|
||||
struct geometry_id<segment_tag> : std::integral_constant<int, 92> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct geometry_id<ring_tag> : boost::mpl::int_<93> {};
|
||||
struct geometry_id<ring_tag> : std::integral_constant<int, 93> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct geometry_id<box_tag> : boost::mpl::int_<94> {};
|
||||
struct geometry_id<box_tag> : std::integral_constant<int, 94> {};
|
||||
|
||||
|
||||
} // namespace core_dispatch
|
||||
@ -86,7 +91,7 @@ struct geometry_id<box_tag> : boost::mpl::int_<94> {};
|
||||
/*!
|
||||
\brief Meta-function returning the id of a geometry type
|
||||
\details The meta-function geometry_id defines a numerical ID (based on
|
||||
boost::mpl::int_<...> ) for each geometry concept. A numerical ID is
|
||||
std::integral_constant<int, ...> ) for each geometry concept. A numerical ID is
|
||||
sometimes useful, and within Boost.Geometry it is used for the
|
||||
reverse_dispatch metafuntion.
|
||||
\note Used for e.g. reverse meta-function
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -15,10 +19,10 @@
|
||||
#define BOOST_GEOMETRY_CORE_INTERIOR_RINGS_HPP
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/range/value_type.hpp>
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
@ -79,7 +83,7 @@ struct interior_rings<polygon_tag, Polygon>
|
||||
{
|
||||
return traits::interior_rings
|
||||
<
|
||||
typename boost::remove_const<Polygon>::type
|
||||
typename std::remove_const<Polygon>::type
|
||||
>::get(polygon);
|
||||
}
|
||||
};
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -15,12 +19,9 @@
|
||||
#ifndef BOOST_GEOMETRY_CORE_INTERIOR_TYPE_HPP
|
||||
#define BOOST_GEOMETRY_CORE_INTERIOR_TYPE_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
@ -87,14 +88,14 @@ struct interior_return_type
|
||||
template <typename Polygon>
|
||||
struct interior_return_type<polygon_tag, Polygon>
|
||||
{
|
||||
typedef typename boost::remove_const<Polygon>::type nc_polygon_type;
|
||||
typedef typename std::remove_const<Polygon>::type nc_polygon_type;
|
||||
|
||||
typedef typename boost::mpl::if_
|
||||
typedef std::conditional_t
|
||||
<
|
||||
boost::is_const<Polygon>,
|
||||
std::is_const<Polygon>::value,
|
||||
typename traits::interior_const_type<nc_polygon_type>::type,
|
||||
typename traits::interior_mutable_type<nc_polygon_type>::type
|
||||
>::type type;
|
||||
> type;
|
||||
};
|
||||
|
||||
|
||||
@ -114,7 +115,7 @@ struct interior_type
|
||||
template <typename Polygon>
|
||||
struct interior_type<polygon_tag, Polygon>
|
||||
{
|
||||
typedef typename boost::remove_reference
|
||||
typedef typename std::remove_reference
|
||||
<
|
||||
typename interior_return_type<polygon_tag, Polygon>::type
|
||||
>::type type;
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -16,7 +20,7 @@
|
||||
#define BOOST_GEOMETRY_CORE_IS_AREAL_HPP
|
||||
|
||||
|
||||
#include <boost/type_traits/integral_constant.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
@ -30,12 +34,12 @@ namespace boost { namespace geometry
|
||||
namespace core_dispatch
|
||||
{
|
||||
|
||||
template <typename GeometryTag> struct is_areal : boost::false_type {};
|
||||
template <typename GeometryTag> struct is_areal : std::false_type {};
|
||||
|
||||
template <> struct is_areal<ring_tag> : boost::true_type {};
|
||||
template <> struct is_areal<box_tag> : boost::true_type {};
|
||||
template <> struct is_areal<polygon_tag> : boost::true_type {};
|
||||
template <> struct is_areal<multi_polygon_tag> : boost::true_type {};
|
||||
template <> struct is_areal<ring_tag> : std::true_type {};
|
||||
template <> struct is_areal<box_tag> : std::true_type {};
|
||||
template <> struct is_areal<polygon_tag> : std::true_type {};
|
||||
template <> struct is_areal<multi_polygon_tag> : std::true_type {};
|
||||
|
||||
} // namespace core_dispatch
|
||||
#endif
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -16,9 +20,9 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/range/value_type.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
|
||||
namespace boost { namespace geometry
|
||||
@ -36,7 +40,7 @@ namespace traits
|
||||
template <typename Range>
|
||||
struct rvalue_type
|
||||
{
|
||||
typedef typename boost::remove_reference<Range>::type& type;
|
||||
typedef typename std::remove_reference<Range>::type& type;
|
||||
};
|
||||
|
||||
|
||||
@ -63,7 +67,7 @@ struct push_back
|
||||
{
|
||||
typedef typename boost::range_value
|
||||
<
|
||||
typename boost::remove_reference<Range>::type
|
||||
typename std::remove_reference<Range>::type
|
||||
>::type item_type;
|
||||
|
||||
static inline void apply(typename rvalue_type<Range>::type range,
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -15,15 +19,17 @@
|
||||
#define BOOST_GEOMETRY_CORE_POINT_TYPE_HPP
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/range/value_type.hpp>
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
|
||||
#include <boost/geometry/core/ring_type.hpp>
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
#include <boost/geometry/util/bare_type.hpp>
|
||||
|
||||
|
||||
namespace boost { namespace geometry
|
||||
{
|
||||
|
||||
@ -60,7 +66,7 @@ template <typename Tag, typename Geometry>
|
||||
struct point_type
|
||||
{
|
||||
// Default: call traits to get point type
|
||||
typedef typename boost::remove_const
|
||||
typedef typename std::remove_const
|
||||
<
|
||||
typename traits::point_type<Geometry>::type
|
||||
>::type type;
|
||||
|
@ -4,8 +4,8 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2014.
|
||||
// Modifications copyright (c) 2014 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2014-2020.
|
||||
// Modifications copyright (c) 2014-2020 Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -22,9 +22,9 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/static_assert.hpp>
|
||||
#include <boost/type_traits/is_pointer.hpp>
|
||||
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
@ -130,7 +130,7 @@ inline typename radius_type<Geometry>::type get_radius(Geometry const& geometry)
|
||||
typename tag<Geometry>::type,
|
||||
typename util::bare_type<Geometry>::type,
|
||||
I,
|
||||
typename boost::is_pointer<Geometry>::type
|
||||
typename std::is_pointer<Geometry>::type
|
||||
>::get(geometry);
|
||||
}
|
||||
|
||||
@ -150,7 +150,7 @@ inline void set_radius(Geometry& geometry,
|
||||
typename tag<Geometry>::type,
|
||||
typename util::bare_type<Geometry>::type,
|
||||
I,
|
||||
typename boost::is_pointer<Geometry>::type
|
||||
typename std::is_pointer<Geometry>::type
|
||||
>::set(geometry, radius);
|
||||
}
|
||||
|
||||
@ -185,7 +185,7 @@ namespace core_dispatch
|
||||
template <typename Tag,
|
||||
typename Geometry,
|
||||
std::size_t Dimension>
|
||||
struct radius_access<Tag, Geometry, Dimension, boost::true_type>
|
||||
struct radius_access<Tag, Geometry, Dimension, std::true_type>
|
||||
{
|
||||
typedef typename geometry::radius_type<Geometry>::type radius_type;
|
||||
|
||||
@ -196,7 +196,7 @@ struct radius_access<Tag, Geometry, Dimension, boost::true_type>
|
||||
Tag,
|
||||
Geometry,
|
||||
Dimension,
|
||||
typename boost::is_pointer<Geometry>::type
|
||||
typename std::is_pointer<Geometry>::type
|
||||
>::get(*geometry);
|
||||
}
|
||||
|
||||
@ -207,7 +207,7 @@ struct radius_access<Tag, Geometry, Dimension, boost::true_type>
|
||||
Tag,
|
||||
Geometry,
|
||||
Dimension,
|
||||
typename boost::is_pointer<Geometry>::type
|
||||
typename std::is_pointer<Geometry>::type
|
||||
>::set(*geometry, value);
|
||||
}
|
||||
};
|
||||
@ -220,7 +220,7 @@ struct radius_type<srs_sphere_tag, Geometry>
|
||||
};
|
||||
|
||||
template <typename Geometry, std::size_t Dimension>
|
||||
struct radius_access<srs_sphere_tag, Geometry, Dimension, boost::false_type>
|
||||
struct radius_access<srs_sphere_tag, Geometry, Dimension, std::false_type>
|
||||
: detail::radius_access<srs_sphere_tag, Geometry, Dimension>
|
||||
{
|
||||
//BOOST_STATIC_ASSERT(Dimension == 0);
|
||||
@ -234,7 +234,7 @@ struct radius_type<srs_spheroid_tag, Geometry>
|
||||
};
|
||||
|
||||
template <typename Geometry, std::size_t Dimension>
|
||||
struct radius_access<srs_spheroid_tag, Geometry, Dimension, boost::false_type>
|
||||
struct radius_access<srs_spheroid_tag, Geometry, Dimension, std::false_type>
|
||||
: detail::radius_access<srs_spheroid_tag, Geometry, Dimension>
|
||||
{
|
||||
//BOOST_STATIC_ASSERT(Dimension == 0 || Dimension == 2);
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -17,9 +21,7 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/type_traits/integral_constant.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/geometry_id.hpp>
|
||||
|
||||
@ -34,18 +36,18 @@ namespace detail
|
||||
|
||||
// Different geometries: reverse_dispatch if second ID < first ID
|
||||
template <std::size_t GeometryId1, std::size_t GeometryId2>
|
||||
struct reverse_dispatch : boost::mpl::if_c
|
||||
<
|
||||
(GeometryId1 > GeometryId2),
|
||||
boost::true_type,
|
||||
boost::false_type
|
||||
>
|
||||
struct reverse_dispatch
|
||||
: std::integral_constant
|
||||
<
|
||||
bool,
|
||||
(GeometryId1 > GeometryId2)
|
||||
>
|
||||
{};
|
||||
|
||||
|
||||
// Same geometry: never reverse_dispatch
|
||||
template <std::size_t GeometryId>
|
||||
struct reverse_dispatch<GeometryId, GeometryId> : boost::false_type {};
|
||||
struct reverse_dispatch<GeometryId, GeometryId> : std::false_type {};
|
||||
|
||||
|
||||
} // namespace detail
|
||||
|
@ -4,10 +4,10 @@
|
||||
// Copyright (c) 2008-2015 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2015 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2015.
|
||||
// Modifications copyright (c) 2015, Oracle and/or its affiliates.
|
||||
|
||||
// This file was modified by Oracle on 2015-2020.
|
||||
// Modifications copyright (c) 2015-2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
@ -20,13 +20,10 @@
|
||||
#ifndef BOOST_GEOMETRY_CORE_RING_TYPE_HPP
|
||||
#define BOOST_GEOMETRY_CORE_RING_TYPE_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/range/value_type.hpp>
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
@ -98,14 +95,14 @@ struct ring_return_type<ring_tag, Ring>
|
||||
template <typename Polygon>
|
||||
struct ring_return_type<polygon_tag, Polygon>
|
||||
{
|
||||
typedef typename boost::remove_const<Polygon>::type nc_polygon_type;
|
||||
typedef typename std::remove_const<Polygon>::type nc_polygon_type;
|
||||
|
||||
typedef typename boost::mpl::if_
|
||||
typedef std::conditional_t
|
||||
<
|
||||
boost::is_const<Polygon>,
|
||||
std::is_const<Polygon>::value,
|
||||
typename traits::ring_const_type<nc_polygon_type>::type,
|
||||
typename traits::ring_mutable_type<nc_polygon_type>::type
|
||||
>::type type;
|
||||
> type;
|
||||
};
|
||||
|
||||
|
||||
@ -115,12 +112,12 @@ struct ring_return_type<multi_linestring_tag, MultiLinestring>
|
||||
typedef typename ring_return_type
|
||||
<
|
||||
linestring_tag,
|
||||
typename boost::mpl::if_
|
||||
std::conditional_t
|
||||
<
|
||||
boost::is_const<MultiLinestring>,
|
||||
std::is_const<MultiLinestring>::value,
|
||||
typename boost::range_value<MultiLinestring>::type const,
|
||||
typename boost::range_value<MultiLinestring>::type
|
||||
>::type
|
||||
>
|
||||
>::type type;
|
||||
};
|
||||
|
||||
@ -131,12 +128,12 @@ struct ring_return_type<multi_polygon_tag, MultiPolygon>
|
||||
typedef typename ring_return_type
|
||||
<
|
||||
polygon_tag,
|
||||
typename boost::mpl::if_
|
||||
std::conditional_t
|
||||
<
|
||||
boost::is_const<MultiPolygon>,
|
||||
std::is_const<MultiPolygon>::value,
|
||||
typename boost::range_value<MultiPolygon>::type const,
|
||||
typename boost::range_value<MultiPolygon>::type
|
||||
>::type
|
||||
>
|
||||
>::type type;
|
||||
};
|
||||
|
||||
@ -156,7 +153,7 @@ struct ring_type<ring_tag, Ring>
|
||||
template <typename Polygon>
|
||||
struct ring_type<polygon_tag, Polygon>
|
||||
{
|
||||
typedef typename boost::remove_reference
|
||||
typedef typename std::remove_reference
|
||||
<
|
||||
typename ring_return_type<polygon_tag, Polygon>::type
|
||||
>::type type;
|
||||
@ -166,7 +163,7 @@ struct ring_type<polygon_tag, Polygon>
|
||||
template <typename MultiLinestring>
|
||||
struct ring_type<multi_linestring_tag, MultiLinestring>
|
||||
{
|
||||
typedef typename boost::remove_reference
|
||||
typedef typename std::remove_reference
|
||||
<
|
||||
typename ring_return_type<multi_linestring_tag, MultiLinestring>::type
|
||||
>::type type;
|
||||
@ -176,7 +173,7 @@ struct ring_type<multi_linestring_tag, MultiLinestring>
|
||||
template <typename MultiPolygon>
|
||||
struct ring_type<multi_polygon_tag, MultiPolygon>
|
||||
{
|
||||
typedef typename boost::remove_reference
|
||||
typedef typename std::remove_reference
|
||||
<
|
||||
typename ring_return_type<multi_polygon_tag, MultiPolygon>::type
|
||||
>::type type;
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -15,8 +19,8 @@
|
||||
#define BOOST_GEOMETRY_CORE_TAG_CAST_HPP
|
||||
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/type_traits/is_base_of.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
namespace boost { namespace geometry
|
||||
{
|
||||
@ -30,50 +34,30 @@ namespace boost { namespace geometry
|
||||
can be casted to a more basic tag, and then dispatched by that tag.
|
||||
\ingroup core
|
||||
\tparam Tag The tag to be casted to one of the base tags
|
||||
\tparam BaseTag First base tag
|
||||
\tparam BaseTag2 Optional second base tag
|
||||
\tparam BaseTag3 Optional third base tag
|
||||
\tparam BaseTag4 Optional fourth base tag
|
||||
\tparam BaseTag5 Optional fifth base tag
|
||||
\tparam BaseTag6 Optional sixth base tag
|
||||
\tparam BaseTag7 Optional seventh base tag
|
||||
\tparam BaseTags Base tags
|
||||
|
||||
\qbk{[include reference/core/tag_cast.qbk]}
|
||||
*/
|
||||
template
|
||||
<
|
||||
typename Tag,
|
||||
typename BaseTag,
|
||||
typename BaseTag2 = void,
|
||||
typename BaseTag3 = void,
|
||||
typename BaseTag4 = void,
|
||||
typename BaseTag5 = void,
|
||||
typename BaseTag6 = void,
|
||||
typename BaseTag7 = void
|
||||
>
|
||||
template <typename Tag, typename ...BaseTags>
|
||||
struct tag_cast
|
||||
{
|
||||
typedef typename boost::mpl::if_
|
||||
<
|
||||
typename boost::is_base_of<BaseTag, Tag>::type,
|
||||
BaseTag,
|
||||
// Try next one in line:
|
||||
typename tag_cast
|
||||
<
|
||||
Tag, BaseTag2, BaseTag3, BaseTag4,
|
||||
BaseTag5, BaseTag6, BaseTag7, void
|
||||
>::type
|
||||
>::type type;
|
||||
typedef Tag type;
|
||||
};
|
||||
|
||||
#ifndef DOXYGEN_NO_SPECIALIZATIONS
|
||||
|
||||
// Specialization for last one
|
||||
template <typename Tag>
|
||||
struct tag_cast<Tag, void, void, void, void, void, void, void>
|
||||
template <typename Tag, typename BaseTag, typename ...BaseTags>
|
||||
struct tag_cast<Tag, BaseTag, BaseTags...>
|
||||
{
|
||||
// If not found, take specified tag, so do not cast
|
||||
typedef Tag type;
|
||||
typedef std::conditional_t
|
||||
<
|
||||
std::is_base_of<BaseTag, Tag>::value,
|
||||
BaseTag,
|
||||
typename tag_cast
|
||||
<
|
||||
Tag, BaseTags...
|
||||
>::type
|
||||
> type;
|
||||
};
|
||||
|
||||
#endif // DOXYGEN_NO_SPECIALIZATIONS
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -16,8 +20,7 @@
|
||||
#define BOOST_GEOMETRY_CORE_TOPOLOGICAL_DIMENSION_HPP
|
||||
|
||||
|
||||
#include <boost/mpl/int.hpp>
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
@ -37,42 +40,42 @@ struct top_dim {};
|
||||
|
||||
|
||||
template <>
|
||||
struct top_dim<point_tag> : boost::mpl::int_<0> {};
|
||||
struct top_dim<point_tag> : std::integral_constant<int, 0> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct top_dim<linestring_tag> : boost::mpl::int_<1> {};
|
||||
struct top_dim<linestring_tag> : std::integral_constant<int, 1> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct top_dim<segment_tag> : boost::mpl::int_<1> {};
|
||||
struct top_dim<segment_tag> : std::integral_constant<int, 1> {};
|
||||
|
||||
|
||||
// ring: topological dimension of two, but some people say: 1 !!
|
||||
// NOTE: This is not OGC LinearRing!
|
||||
template <>
|
||||
struct top_dim<ring_tag> : boost::mpl::int_<2> {};
|
||||
struct top_dim<ring_tag> : std::integral_constant<int, 2> {};
|
||||
|
||||
|
||||
// TODO: This is wrong! Boxes may have various topological dimensions
|
||||
template <>
|
||||
struct top_dim<box_tag> : boost::mpl::int_<2> {};
|
||||
struct top_dim<box_tag> : std::integral_constant<int, 2> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct top_dim<polygon_tag> : boost::mpl::int_<2> {};
|
||||
struct top_dim<polygon_tag> : std::integral_constant<int, 2> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct top_dim<multi_point_tag> : boost::mpl::int_<0> {};
|
||||
struct top_dim<multi_point_tag> : std::integral_constant<int, 0> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct top_dim<multi_linestring_tag> : boost::mpl::int_<1> {};
|
||||
struct top_dim<multi_linestring_tag> : std::integral_constant<int, 1> {};
|
||||
|
||||
|
||||
template <>
|
||||
struct top_dim<multi_polygon_tag> : boost::mpl::int_<2> {};
|
||||
struct top_dim<multi_polygon_tag> : std::integral_constant<int, 2> {};
|
||||
|
||||
|
||||
} // namespace core_dispatch
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2018.
|
||||
// Modifications copyright (c) 2018 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2018-2020.
|
||||
// Modifications copyright (c) 2018-2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
@ -13,6 +13,8 @@
|
||||
#ifndef BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_ALGORITHMS_ROTATION_HPP
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_ALGORITHMS_ROTATION_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/util/math.hpp>
|
||||
|
||||
#include <boost/geometry/extensions/algebra/algorithms/detail.hpp>
|
||||
@ -37,8 +39,8 @@ template <typename V1, typename V2, typename Rotation>
|
||||
struct matrix<V1, V2, Rotation, vector_tag, vector_tag, 3>
|
||||
{
|
||||
static const bool cs_check =
|
||||
::boost::is_same<typename traits::coordinate_system<V1>::type, cs::cartesian>::value &&
|
||||
::boost::is_same<typename traits::coordinate_system<V2>::type, cs::cartesian>::value;
|
||||
std::is_same<typename traits::coordinate_system<V1>::type, cs::cartesian>::value &&
|
||||
std::is_same<typename traits::coordinate_system<V2>::type, cs::cartesian>::value;
|
||||
|
||||
BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THOSE_SYSTEMS, (V1, V2));
|
||||
|
||||
@ -118,8 +120,8 @@ template <typename V1, typename V2, typename Rotation>
|
||||
struct matrix<V1, V2, Rotation, vector_tag, vector_tag, 2>
|
||||
{
|
||||
static const bool cs_check =
|
||||
::boost::is_same<typename traits::coordinate_system<V1>::type, cs::cartesian>::value &&
|
||||
::boost::is_same<typename traits::coordinate_system<V2>::type, cs::cartesian>::value;
|
||||
std::is_same<typename traits::coordinate_system<V1>::type, cs::cartesian>::value &&
|
||||
std::is_same<typename traits::coordinate_system<V2>::type, cs::cartesian>::value;
|
||||
|
||||
BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THOSE_SYSTEMS, (V1, V2));
|
||||
|
||||
@ -185,8 +187,8 @@ template <typename V1, typename V2, typename Rotation>
|
||||
struct rotation<V1, V2, Rotation, vector_tag, vector_tag, rotation_quaternion_tag>
|
||||
{
|
||||
static const bool cs_check =
|
||||
::boost::is_same<typename traits::coordinate_system<V1>::type, cs::cartesian>::value &&
|
||||
::boost::is_same<typename traits::coordinate_system<V2>::type, cs::cartesian>::value;
|
||||
std::is_same<typename traits::coordinate_system<V1>::type, cs::cartesian>::value &&
|
||||
std::is_same<typename traits::coordinate_system<V2>::type, cs::cartesian>::value;
|
||||
|
||||
BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THOSE_SYSTEMS, (V1, V2));
|
||||
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2018.
|
||||
// Modifications copyright (c) 2018 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2018-2020.
|
||||
// Modifications copyright (c) 2018-2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
@ -13,6 +13,8 @@
|
||||
#ifndef BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_ALGORITHMS_TRANSFORM_HPP
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_ALGORITHMS_TRANSFORM_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/algorithms/convert.hpp>
|
||||
#include <boost/geometry/arithmetic/arithmetic.hpp>
|
||||
#include <boost/geometry/extensions/algebra/algorithms/detail.hpp>
|
||||
@ -70,21 +72,20 @@ struct transform_geometrically<Point, Vector, point_tag, vector_tag>
|
||||
|
||||
static inline void apply(Point & point, Vector const& vector)
|
||||
{
|
||||
typedef boost::mpl::bool_<
|
||||
boost::is_same<
|
||||
typedef std::is_same
|
||||
<
|
||||
typename traits::coordinate_system<Point>::type,
|
||||
cs::cartesian
|
||||
>::value
|
||||
> is_cartesian;
|
||||
> is_cartesian;
|
||||
apply(point, vector, is_cartesian());
|
||||
}
|
||||
|
||||
static inline void apply(Point & point, Vector const& vector, boost::mpl::bool_<true> /*is_cartesian*/)
|
||||
static inline void apply(Point & point, Vector const& vector, std::true_type /*is_cartesian*/)
|
||||
{
|
||||
for_each_coordinate(point, detail::point_operation<Vector, std::plus>(vector));
|
||||
}
|
||||
|
||||
static inline void apply(Point & point, Vector const& vector, boost::mpl::bool_<false> /*is_cartesian*/)
|
||||
static inline void apply(Point & point, Vector const& vector, std::false_type /*is_cartesian*/)
|
||||
{
|
||||
typedef typename traits::coordinate_system<Point>::type cs;
|
||||
BOOST_MPL_ASSERT_MSG(false, NOT_IMPLEMENTED_FOR_THIS_CS, (cs));
|
||||
@ -102,23 +103,22 @@ struct transform_geometrically<Box, Vector, box_tag, vector_tag>
|
||||
|
||||
static inline void apply(Box & box, Vector const& vector)
|
||||
{
|
||||
typedef boost::mpl::bool_<
|
||||
boost::is_same<
|
||||
typedef std::is_same
|
||||
<
|
||||
typename traits::coordinate_system<point_type>::type,
|
||||
cs::cartesian
|
||||
>::value
|
||||
> is_cartesian;
|
||||
> is_cartesian;
|
||||
apply(box, vector, is_cartesian());
|
||||
}
|
||||
|
||||
static inline void apply(Box & box, Vector const& vector, boost::mpl::bool_<true> /*is_cartesian*/)
|
||||
static inline void apply(Box & box, Vector const& vector, std::true_type /*is_cartesian*/)
|
||||
{
|
||||
geometry::detail::transform_geometrically::box_vector_cartesian<
|
||||
Box, Vector, traits::dimension<point_type>::value
|
||||
>::apply(box, vector);
|
||||
}
|
||||
|
||||
static inline void apply(Box & box, Vector const& vector, boost::mpl::bool_<false> /*is_cartesian*/)
|
||||
static inline void apply(Box & box, Vector const& vector, std::false_type /*is_cartesian*/)
|
||||
{
|
||||
typedef typename traits::coordinate_system<point_type>::type cs;
|
||||
BOOST_MPL_ASSERT_MSG(false, NOT_IMPLEMENTED_FOR_THIS_CS, (cs));
|
||||
|
@ -5,6 +5,10 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -47,11 +51,11 @@ struct access<vector_tag, Vector, CoordinateType, Dimension, boost::true_type>
|
||||
{
|
||||
static inline CoordinateType get(Vector const* v)
|
||||
{
|
||||
return traits::access<typename boost::remove_pointer<Vector>::type, Dimension>::get(*v);
|
||||
return traits::access<typename std::remove_pointer<Vector>::type, Dimension>::get(*v);
|
||||
}
|
||||
static inline void set(Vector* v, CoordinateType const& value)
|
||||
{
|
||||
traits::access<typename boost::remove_pointer<Vector>::type, Dimension>::set(*v, value);
|
||||
traits::access<typename std::remove_pointer<Vector>::type, Dimension>::set(*v, value);
|
||||
}
|
||||
};
|
||||
|
||||
@ -73,11 +77,11 @@ struct access<quaternion_tag, Q, CoordinateType, Dimension, boost::true_type>
|
||||
{
|
||||
static inline CoordinateType get(Q const* v)
|
||||
{
|
||||
return traits::access<typename boost::remove_pointer<Q>::type, Dimension>::get(*v);
|
||||
return traits::access<typename std::remove_pointer<Q>::type, Dimension>::get(*v);
|
||||
}
|
||||
static inline void set(Q* v, CoordinateType const& value)
|
||||
{
|
||||
traits::access<typename boost::remove_pointer<Q>::type, Dimension>::set(*v, value);
|
||||
traits::access<typename std::remove_pointer<Q>::type, Dimension>::set(*v, value);
|
||||
}
|
||||
};
|
||||
|
||||
@ -110,11 +114,11 @@ struct access<rotation_quaternion_tag, Q, CoordinateType, Dimension, boost::true
|
||||
{
|
||||
static inline CoordinateType get(Q const* v)
|
||||
{
|
||||
return traits::access<typename boost::remove_pointer<Q>::type, Dimension>::get(*v);
|
||||
return traits::access<typename std::remove_pointer<Q>::type, Dimension>::get(*v);
|
||||
}
|
||||
static inline void set(Q* v, CoordinateType const& value)
|
||||
{
|
||||
traits::access<typename boost::remove_pointer<Q>::type, Dimension>::set(*v, value);
|
||||
traits::access<typename std::remove_pointer<Q>::type, Dimension>::set(*v, value);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -5,8 +5,8 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2018.
|
||||
// Modifications copyright (c) 2018 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2018-2020.
|
||||
// Modifications copyright (c) 2018-2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
@ -19,6 +19,8 @@
|
||||
#ifndef BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_CONCEPTS_MATRIX_CONCEPT_HPP
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_CONCEPTS_MATRIX_CONCEPT_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/geometry/core/cs.hpp>
|
||||
@ -78,7 +80,7 @@ public:
|
||||
/// BCCL macro to apply the concept
|
||||
BOOST_CONCEPT_USAGE(Matrix)
|
||||
{
|
||||
static const bool cs_check = ::boost::is_same<csystem, cs::cartesian>::value;
|
||||
static const bool cs_check = std::is_same<csystem, cs::cartesian>::value;
|
||||
BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THIS_CS, (csystem));
|
||||
|
||||
dimension_checker<Geometry, 0, ccount>::apply();
|
||||
@ -136,7 +138,7 @@ public:
|
||||
/// BCCL macro to apply the concept
|
||||
BOOST_CONCEPT_USAGE(ConstMatrix)
|
||||
{
|
||||
//static const bool cs_check = ::boost::is_same<csystem, cs::cartesian>::value;
|
||||
//static const bool cs_check = std::is_same<csystem, cs::cartesian>::value;
|
||||
//BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THIS_CS, (csystem));
|
||||
|
||||
//dimension_checker<Geometry, 0, ccount>::apply();
|
||||
|
@ -5,7 +5,7 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2018.
|
||||
// This file was modified by Oracle on 2018-2020.
|
||||
// Modifications copyright (c) 2018 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -19,6 +19,8 @@
|
||||
#ifndef BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_CONCEPTS_QUATERNION_CONCEPT_HPP
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_CONCEPTS_QUATERNION_CONCEPT_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/geometry/core/coordinate_dimension.hpp>
|
||||
@ -59,7 +61,7 @@ public:
|
||||
{
|
||||
//static const bool dim_check = dimension<Geometry>::value == 4;
|
||||
//BOOST_MPL_ASSERT_MSG(dim_check, INVALID_DIMENSION, (RotationQuaternion));
|
||||
//static const bool cs_check = ::boost::is_same<csystem, cs::cartesian>::value;
|
||||
//static const bool cs_check = std::is_same<csystem, cs::cartesian>::value;
|
||||
//BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THIS_CS, (csystem));
|
||||
|
||||
dimension_checker<Geometry, 0, 4>::apply();
|
||||
@ -102,7 +104,7 @@ public:
|
||||
{
|
||||
//static const bool dim_check = dimension<Geometry>::value == 4;
|
||||
//BOOST_MPL_ASSERT_MSG(dim_check, INVALID_DIMENSION, (ConstRotationQuaternion));
|
||||
//static const bool cs_check = ::boost::is_same<csystem, cs::cartesian>::value;
|
||||
//static const bool cs_check = std::is_same<csystem, cs::cartesian>::value;
|
||||
//BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THIS_CS, (csystem));
|
||||
|
||||
dimension_checker<Geometry, 0, 4>::apply();
|
||||
|
@ -5,7 +5,7 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2018.
|
||||
// This file was modified by Oracle on 2018-2020.
|
||||
// Modifications copyright (c) 2018 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -19,6 +19,8 @@
|
||||
#ifndef BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_CONCEPTS_ROTATION_MATRIX_CONCEPT_HPP
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_CONCEPTS_ROTATION_MATRIX_CONCEPT_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/geometry/core/cs.hpp>
|
||||
@ -78,7 +80,7 @@ public:
|
||||
/// BCCL macro to apply the concept
|
||||
BOOST_CONCEPT_USAGE(RotationMatrix)
|
||||
{
|
||||
static const bool cs_check = ::boost::is_same<csystem, cs::cartesian>::value;
|
||||
static const bool cs_check = std::is_same<csystem, cs::cartesian>::value;
|
||||
BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THIS_CS, (csystem));
|
||||
|
||||
dimension_checker<Geometry, 0, ccount>::apply();
|
||||
@ -136,7 +138,7 @@ public:
|
||||
/// BCCL macro to apply the concept
|
||||
BOOST_CONCEPT_USAGE(ConstRotationMatrix)
|
||||
{
|
||||
static const bool cs_check = ::boost::is_same<csystem, cs::cartesian>::value;
|
||||
static const bool cs_check = std::is_same<csystem, cs::cartesian>::value;
|
||||
BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THIS_CS, (csystem));
|
||||
|
||||
dimension_checker<Geometry, 0, ccount>::apply();
|
||||
|
@ -5,7 +5,7 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2018.
|
||||
// This file was modified by Oracle on 2018-2020.
|
||||
// Modifications copyright (c) 2018 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -19,6 +19,8 @@
|
||||
#ifndef BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_CONCEPTS_ROTATION_QUATERNION_CONCEPT_HPP
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_CONCEPTS_ROTATION_QUATERNION_CONCEPT_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/geometry/core/cs.hpp>
|
||||
@ -63,7 +65,7 @@ public:
|
||||
{
|
||||
static const bool dim_check = dimension<Geometry>::value == 3;
|
||||
BOOST_MPL_ASSERT_MSG(dim_check, INVALID_DIMENSION, (RotationQuaternion));
|
||||
static const bool cs_check = ::boost::is_same<csystem, cs::cartesian>::value;
|
||||
static const bool cs_check = std::is_same<csystem, cs::cartesian>::value;
|
||||
BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THIS_CS, (csystem));
|
||||
|
||||
dimension_checker<Geometry, 0, 4>::apply();
|
||||
@ -106,7 +108,7 @@ public:
|
||||
{
|
||||
static const bool dim_check = dimension<Geometry>::value == 3;
|
||||
BOOST_MPL_ASSERT_MSG(dim_check, INVALID_DIMENSION, (ConstRotationQuaternion));
|
||||
static const bool cs_check = ::boost::is_same<csystem, cs::cartesian>::value;
|
||||
static const bool cs_check = std::is_same<csystem, cs::cartesian>::value;
|
||||
BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THIS_CS, (csystem));
|
||||
|
||||
dimension_checker<Geometry, 0, 4>::apply();
|
||||
|
@ -5,7 +5,7 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2018.
|
||||
// This file was modified by Oracle on 2018-2020.
|
||||
// Modifications copyright (c) 2018 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
@ -19,6 +19,8 @@
|
||||
#ifndef BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_CONCEPTS_VECTOR_CONCEPT_HPP
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_CONCEPTS_VECTOR_CONCEPT_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/geometry/core/cs.hpp>
|
||||
@ -63,7 +65,7 @@ public:
|
||||
/// BCCL macro to apply the Vector concept
|
||||
BOOST_CONCEPT_USAGE(Vector)
|
||||
{
|
||||
static const bool cs_check = ::boost::is_same<csystem, cs::cartesian>::value;
|
||||
static const bool cs_check = std::is_same<csystem, cs::cartesian>::value;
|
||||
BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THIS_CS, (csystem));
|
||||
|
||||
dimension_checker<Geometry, 0, ccount>::apply();
|
||||
@ -106,7 +108,7 @@ public:
|
||||
/// BCCL macro to apply the ConstVector concept
|
||||
BOOST_CONCEPT_USAGE(ConstVector)
|
||||
{
|
||||
static const bool cs_check = ::boost::is_same<csystem, cs::cartesian>::value;
|
||||
static const bool cs_check = std::is_same<csystem, cs::cartesian>::value;
|
||||
BOOST_MPL_ASSERT_MSG(cs_check, NOT_IMPLEMENTED_FOR_THIS_CS, (csystem));
|
||||
|
||||
dimension_checker<Geometry, 0, ccount>::apply();
|
||||
|
@ -5,8 +5,8 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2018.
|
||||
// Modifications copyright (c) 2018 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2018-2020.
|
||||
// Modifications copyright (c) 2018-2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
@ -20,6 +20,7 @@
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_ROTATION_MATRIX_HPP
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/cs.hpp>
|
||||
|
||||
@ -97,7 +98,7 @@ struct coordinate_system<model::rotation_matrix<CoordinateType, Dimension> >
|
||||
|
||||
template <typename CoordinateType, std::size_t Dimension>
|
||||
struct dimension<model::rotation_matrix<CoordinateType, Dimension> >
|
||||
: boost::mpl::int_<Dimension>
|
||||
: std::integral_constant<std::size_t, Dimension>
|
||||
{};
|
||||
|
||||
template <typename CoordinateType, std::size_t Dimension, std::size_t I, std::size_t J>
|
||||
|
@ -5,8 +5,8 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2018.
|
||||
// Modifications copyright (c) 2018 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2018-2020.
|
||||
// Modifications copyright (c) 2018-2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
@ -20,6 +20,7 @@
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_ROTATION_QUATERNION_HPP
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/cs.hpp>
|
||||
|
||||
@ -109,7 +110,7 @@ struct coordinate_system<model::rotation_quaternion<CoordinateType> >
|
||||
|
||||
template <typename CoordinateType>
|
||||
struct dimension<model::rotation_quaternion<CoordinateType> >
|
||||
: boost::mpl::int_<3>
|
||||
: std::integral_constant<std::size_t, 3>
|
||||
{};
|
||||
|
||||
template
|
||||
|
@ -5,6 +5,10 @@
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -16,6 +20,7 @@
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_GEOMETRIES_VECTOR_HPP
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/algorithms/assign.hpp>
|
||||
#include <boost/geometry/algorithms/convert.hpp>
|
||||
@ -100,7 +105,7 @@ struct coordinate_system<model::vector<CoordinateType, DimensionCount> >
|
||||
|
||||
template <typename CoordinateType, std::size_t DimensionCount>
|
||||
struct dimension<model::vector<CoordinateType, DimensionCount> >
|
||||
: boost::mpl::int_<DimensionCount>
|
||||
: std::integral_constant<std::size_t, DimensionCount>
|
||||
{};
|
||||
|
||||
template
|
||||
|
@ -5,6 +5,10 @@
|
||||
// Copyright (c) 2009-2013 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -12,7 +16,6 @@
|
||||
#ifndef BOOST_GEOMETRY_ALGORITHMS_DISTANCE_INFO_HPP
|
||||
#define BOOST_GEOMETRY_ALGORITHMS_DISTANCE_INFO_HPP
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/range/functions.hpp>
|
||||
#include <boost/range/metafunctions.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -29,7 +33,7 @@ namespace cs
|
||||
\see
|
||||
\ingroup cs
|
||||
\tparam Code the EPSG code
|
||||
\todo Maybe derive from boost::mpl::int_<EpsgCode>
|
||||
\todo Maybe derive from std::integral_constant<std::size_t, EpsgCode>
|
||||
*/
|
||||
template<std::size_t Code>
|
||||
struct epsg
|
||||
|
@ -2,6 +2,10 @@
|
||||
|
||||
// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -10,15 +14,13 @@
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_STRATEGIES_GEOGRAPHIC_DISTANCE_CROSS_TRACK_HPP
|
||||
|
||||
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/type_traits/is_void.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/concept_check.hpp>
|
||||
|
||||
#include <boost/geometry/strategies/spherical/distance_cross_track.hpp>
|
||||
|
||||
|
||||
|
||||
#ifndef DOXYGEN_NO_STRATEGY_SPECIALIZATIONS
|
||||
namespace boost { namespace geometry
|
||||
{
|
||||
@ -36,16 +38,16 @@ struct default_strategy<point_tag, segment_tag, Point, PointOfSegment, geographi
|
||||
typedef cross_track
|
||||
<
|
||||
void,
|
||||
typename boost::mpl::if_
|
||||
std::conditional_t
|
||||
<
|
||||
boost::is_void<Strategy>,
|
||||
std::is_void<Strategy>::value,
|
||||
typename default_strategy
|
||||
<
|
||||
point_tag, point_tag, Point, PointOfSegment,
|
||||
geographic_tag, geographic_tag
|
||||
>::type,
|
||||
Strategy
|
||||
>::type
|
||||
>
|
||||
> type;
|
||||
};
|
||||
|
||||
|
@ -2,6 +2,10 @@
|
||||
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -22,12 +26,12 @@
|
||||
#include <climits>
|
||||
#include <cstring>
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/cstdint.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
#include <boost/detail/endian.hpp>
|
||||
#include <boost/type_traits/is_signed.hpp>
|
||||
|
||||
#if CHAR_BIT != 8
|
||||
#error Platforms with CHAR_BIT != 8 are not supported
|
||||
@ -54,7 +58,7 @@ typedef little_endian_tag native_endian_tag;
|
||||
|
||||
// Unrolled loops for loading and storing streams of bytes.
|
||||
|
||||
template <typename T, std::size_t N, bool Sign = boost::is_signed<T>::value>
|
||||
template <typename T, std::size_t N, bool Sign = std::is_signed<T>::value>
|
||||
struct unrolled_byte_loops
|
||||
{
|
||||
typedef unrolled_byte_loops<T, N - 1, Sign> next;
|
||||
@ -137,7 +141,7 @@ struct unrolled_byte_loops<T, 1, true>
|
||||
template <typename Iterator>
|
||||
static void store_forward(Iterator& bytes, T value)
|
||||
{
|
||||
BOOST_STATIC_ASSERT((boost::is_signed<typename Iterator::value_type>::value));
|
||||
BOOST_STATIC_ASSERT((std::is_signed<typename Iterator::value_type>::value));
|
||||
|
||||
*bytes = static_cast<typename Iterator::value_type>(value);
|
||||
}
|
||||
@ -145,7 +149,7 @@ struct unrolled_byte_loops<T, 1, true>
|
||||
template <typename Iterator>
|
||||
static void store_backward(Iterator& bytes, T value)
|
||||
{
|
||||
BOOST_STATIC_ASSERT((boost::is_signed<typename Iterator::value_type>::value));
|
||||
BOOST_STATIC_ASSERT((std::is_signed<typename Iterator::value_type>::value));
|
||||
|
||||
*(bytes - 1) = static_cast<typename Iterator::value_type>(value);
|
||||
}
|
||||
|
@ -2,6 +2,10 @@
|
||||
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -14,13 +18,12 @@
|
||||
#include <cstddef>
|
||||
#include <iterator>
|
||||
#include <limits>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/exception.hpp>
|
||||
|
||||
#include <boost/concept_check.hpp>
|
||||
#include <boost/cstdint.hpp>
|
||||
#include <boost/type_traits/is_integral.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
@ -66,7 +69,7 @@ struct value_parser
|
||||
{
|
||||
// Very basic pre-conditions check on stream of bytes passed in
|
||||
BOOST_STATIC_ASSERT((
|
||||
boost::is_integral<typename std::iterator_traits<Iterator>::value_type>::value
|
||||
std::is_integral<typename std::iterator_traits<Iterator>::value_type>::value
|
||||
));
|
||||
BOOST_STATIC_ASSERT((sizeof(boost::uint8_t) ==
|
||||
sizeof(typename std::iterator_traits<Iterator>::value_type)
|
||||
|
@ -2,6 +2,10 @@
|
||||
//
|
||||
// Copyright (c) 2015 Mats Taraldsvik.
|
||||
//
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
//
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -19,8 +23,6 @@
|
||||
#include <boost/cstdint.hpp>
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
#include <boost/type_traits/is_integral.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
#include <boost/geometry/core/coordinate_dimension.hpp>
|
||||
|
@ -2,6 +2,10 @@
|
||||
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -10,8 +14,8 @@
|
||||
#define BOOST_GEOMETRY_IO_WKB_READ_WKB_HPP
|
||||
|
||||
#include <iterator>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/type_traits/is_convertible.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
@ -71,7 +75,7 @@ inline bool read_wkb(Iterator begin, Iterator end, Geometry& geometry)
|
||||
{
|
||||
// Stream of bytes can only be parsed using random access iterator.
|
||||
BOOST_STATIC_ASSERT((
|
||||
boost::is_convertible
|
||||
std::is_convertible
|
||||
<
|
||||
typename std::iterator_traits<Iterator>::iterator_category,
|
||||
const std::random_access_iterator_tag&
|
||||
@ -93,7 +97,7 @@ inline bool read_wkb(Iterator begin, Iterator end, Geometry& geometry)
|
||||
template <typename ByteType, typename Geometry>
|
||||
inline bool read_wkb(ByteType const* bytes, std::size_t length, Geometry& geometry)
|
||||
{
|
||||
BOOST_STATIC_ASSERT((boost::is_integral<ByteType>::value));
|
||||
BOOST_STATIC_ASSERT((std::is_integral<ByteType>::value));
|
||||
BOOST_STATIC_ASSERT((sizeof(boost::uint8_t) == sizeof(ByteType)));
|
||||
|
||||
ByteType const* begin = bytes;
|
||||
|
@ -2,6 +2,10 @@
|
||||
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -13,10 +17,10 @@
|
||||
#include <iterator>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/cstdint.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
#include <boost/type_traits/is_convertible.hpp>
|
||||
|
||||
#include <boost/geometry/core/assert.hpp>
|
||||
|
||||
@ -30,7 +34,7 @@ template <typename OutputIterator>
|
||||
bool hex2wkb(std::string const& hex, OutputIterator bytes)
|
||||
{
|
||||
// Bytes can be only written to output iterator.
|
||||
BOOST_STATIC_ASSERT((boost::is_convertible<
|
||||
BOOST_STATIC_ASSERT((std::is_convertible<
|
||||
typename std::iterator_traits<OutputIterator>::iterator_category,
|
||||
const std::output_iterator_tag&>::value));
|
||||
|
||||
@ -61,7 +65,7 @@ template <typename Iterator>
|
||||
bool wkb2hex(Iterator begin, Iterator end, std::string& hex)
|
||||
{
|
||||
// Stream of bytes can only be passed using random access iterator.
|
||||
BOOST_STATIC_ASSERT((boost::is_convertible<
|
||||
BOOST_STATIC_ASSERT((std::is_convertible<
|
||||
typename std::iterator_traits<Iterator>::iterator_category,
|
||||
const std::random_access_iterator_tag&>::value));
|
||||
|
||||
|
@ -2,6 +2,10 @@
|
||||
//
|
||||
// Copyright (c) 2015 Mats Taraldsvik.
|
||||
//
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
//
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -10,8 +14,8 @@
|
||||
#define BOOST_GEOMETRY_IO_WKB_WRITE_WKB_HPP
|
||||
|
||||
#include <iterator>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/type_traits/is_convertible.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
@ -70,7 +74,7 @@ inline bool write_wkb(const G& geometry, OutputIterator iter)
|
||||
{
|
||||
// The WKB is written to an OutputIterator.
|
||||
BOOST_STATIC_ASSERT((
|
||||
boost::is_convertible
|
||||
std::is_convertible
|
||||
<
|
||||
typename std::iterator_traits<OutputIterator>::iterator_category,
|
||||
const std::output_iterator_tag&
|
||||
@ -103,7 +107,7 @@ inline bool write_wkb(const G& geometry, OutputIterator iter)
|
||||
// {
|
||||
// // The WKB is written to an OutputIterator.
|
||||
// BOOST_STATIC_ASSERT((
|
||||
// boost::is_convertible
|
||||
// std::is_convertible
|
||||
// <
|
||||
// typename std::iterator_traits<OutputIterator>::iterator_category,
|
||||
// const std::output_iterator_tag&
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -17,6 +21,7 @@
|
||||
#include <cstddef>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/numeric/conversion/cast.hpp>
|
||||
|
||||
@ -219,7 +224,7 @@ struct dimension
|
||||
DimensionCount
|
||||
>
|
||||
>
|
||||
: boost::mpl::int_<DimensionCount>
|
||||
: std::integral_constant<std::size_t, DimensionCount>
|
||||
{};
|
||||
|
||||
template
|
||||
|
@ -2,6 +2,10 @@
|
||||
//
|
||||
// Copyright (c) 2015 Mats Taraldsvik.
|
||||
//
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
//
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -18,8 +22,6 @@
|
||||
#include <boost/cstdint.hpp>
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
#include <boost/type_traits/is_integral.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
|
||||
#include <boost/geometry/extensions/gis/io/wkb/detail/writer.hpp>
|
||||
|
||||
|
@ -2,6 +2,10 @@
|
||||
//
|
||||
// Copyright (c) 2015 Mats Taraldsvik.
|
||||
//
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
//
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -9,11 +13,6 @@
|
||||
#ifndef BOOST_GEOMETRY_MULTI_IO_WKB_WRITE_WKB_HPP
|
||||
#define BOOST_GEOMETRY_MULTI_IO_WKB_WRITE_WKB_HPP
|
||||
|
||||
#include <iterator>
|
||||
|
||||
#include <boost/type_traits/is_convertible.hpp>
|
||||
#include <boost/static_assert.hpp>
|
||||
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
|
||||
#include <boost/geometry/extensions/multi/gis/io/wkb/detail/writer.hpp>
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -14,6 +18,9 @@
|
||||
#ifndef BOOST_GEOMETRY_EXTENSIONS_NSPHERE_ALGORITHMS_AREA_HPP
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_NSPHERE_ALGORITHMS_AREA_HPP
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/math/constants/constants.hpp>
|
||||
|
||||
#include <boost/geometry/algorithms/area.hpp>
|
||||
@ -35,12 +42,12 @@ struct circle_area
|
||||
typedef typename coordinate_type<C>::type coordinate_type;
|
||||
|
||||
// Returning the coordinate precision, but if integer, returning a double
|
||||
typedef typename boost::mpl::if_c
|
||||
<
|
||||
boost::is_integral<coordinate_type>::type::value,
|
||||
double,
|
||||
coordinate_type
|
||||
>::type return_type;
|
||||
typedef std::conditional_t
|
||||
<
|
||||
std::is_integral<coordinate_type>::value,
|
||||
double,
|
||||
coordinate_type
|
||||
> return_type;
|
||||
|
||||
template <typename S>
|
||||
static inline return_type apply(C const& c, S const&)
|
||||
|
@ -5,6 +5,10 @@
|
||||
// Copyright (c) 2009-2015 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013-2019 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -15,14 +19,15 @@
|
||||
#ifndef BOOST_GEOMETRY_EXTENSIONS_NSPHERE_ALGORITHMS_DISJOINT_HPP
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_NSPHERE_ALGORITHMS_DISJOINT_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/algorithms/disjoint.hpp>
|
||||
#include <boost/geometry/algorithms/comparable_distance.hpp>
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
|
||||
#include <boost/geometry/extensions/nsphere/views/center_view.hpp>
|
||||
|
||||
#include <boost/geometry/util/select_most_precise.hpp>
|
||||
|
||||
namespace boost { namespace geometry
|
||||
{
|
||||
|
||||
@ -98,8 +103,8 @@ struct disjoint<Point, NSphere, DimensionCount, point_tag, nsphere_tag, Reverse>
|
||||
{
|
||||
typedef typename coordinate_system<Point>::type p_cs;
|
||||
typedef typename coordinate_system<NSphere>::type s_cs;
|
||||
static const bool check_cs = ::boost::is_same<p_cs, cs::cartesian>::value
|
||||
&& ::boost::is_same<s_cs, cs::cartesian>::value;
|
||||
static const bool check_cs = std::is_same<p_cs, cs::cartesian>::value
|
||||
&& std::is_same<s_cs, cs::cartesian>::value;
|
||||
BOOST_MPL_ASSERT_MSG(check_cs,
|
||||
NOT_IMPLEMENTED_FOR_THOSE_COORDINATE_SYSTEMS,
|
||||
(p_cs, s_cs));
|
||||
@ -122,8 +127,8 @@ struct disjoint<NSphere, Box, DimensionCount, nsphere_tag, box_tag, Reverse>
|
||||
{
|
||||
typedef typename coordinate_system<Box>::type b_cs;
|
||||
typedef typename coordinate_system<NSphere>::type s_cs;
|
||||
static const bool check_cs = ::boost::is_same<b_cs, cs::cartesian>::value
|
||||
&& ::boost::is_same<s_cs, cs::cartesian>::value;
|
||||
static const bool check_cs = std::is_same<b_cs, cs::cartesian>::value
|
||||
&& std::is_same<s_cs, cs::cartesian>::value;
|
||||
BOOST_MPL_ASSERT_MSG(check_cs,
|
||||
NOT_IMPLEMENTED_FOR_THOSE_COORDINATE_SYSTEMS,
|
||||
(b_cs, s_cs));
|
||||
@ -146,8 +151,8 @@ struct disjoint<NSphere1, NSphere2, DimensionCount, nsphere_tag, nsphere_tag, Re
|
||||
{
|
||||
typedef typename coordinate_system<NSphere1>::type s1_cs;
|
||||
typedef typename coordinate_system<NSphere2>::type s2_cs;
|
||||
static const bool check_cs = ::boost::is_same<s1_cs, cs::cartesian>::value
|
||||
&& ::boost::is_same<s2_cs, cs::cartesian>::value;
|
||||
static const bool check_cs = std::is_same<s1_cs, cs::cartesian>::value
|
||||
&& std::is_same<s2_cs, cs::cartesian>::value;
|
||||
BOOST_MPL_ASSERT_MSG(check_cs,
|
||||
NOT_IMPLEMENTED_FOR_THOSE_COORDINATE_SYSTEMS,
|
||||
(s1_cs, s2_cs));
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -16,6 +20,8 @@
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_NSPHERE_CORE_GEOMETRY_ID_HPP
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/geometry_id.hpp>
|
||||
|
||||
#include <boost/geometry/extensions/nsphere/core/tags.hpp>
|
||||
@ -31,7 +37,7 @@ namespace core_dispatch
|
||||
|
||||
|
||||
template <>
|
||||
struct geometry_id<nsphere_tag> : boost::mpl::int_<91> {};
|
||||
struct geometry_id<nsphere_tag> : std::integral_constant<int, 91> {};
|
||||
|
||||
|
||||
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -16,6 +20,8 @@
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_NSPHERE_CORE_TOPOLOGICAL_DIMENSION_HPP
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/topological_dimension.hpp>
|
||||
|
||||
#include <boost/geometry/extensions/nsphere/core/tags.hpp>
|
||||
@ -34,7 +40,7 @@ namespace core_dispatch
|
||||
// nsphere: 2, but there is discussion. Is it CLOSED? Then 2, but
|
||||
// then it should be called "disk"...
|
||||
template <>
|
||||
struct top_dim<nsphere_tag> : boost::mpl::int_<2> {};
|
||||
struct top_dim<nsphere_tag> : std::integral_constant<int, 2> {};
|
||||
|
||||
|
||||
|
||||
|
@ -5,6 +5,10 @@
|
||||
// Copyright (c) 2008 Federico J. Fernandez.
|
||||
// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
//
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
//
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -12,6 +16,8 @@
|
||||
#ifndef BOOST_GEOMETRY_EXTENSIONS_NSPHERE_INDEX_DETAIL_RTREE_LINEAR_REDISTRIBUTE_ELEMENTS_HPP
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_NSPHERE_INDEX_DETAIL_RTREE_LINEAR_REDISTRIBUTE_ELEMENTS_HPP
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
|
||||
#include <boost/geometry/index/detail/rtree/linear/redistribute_elements.hpp>
|
||||
@ -27,11 +33,12 @@ struct find_greatest_normalized_separation<Elements, Parameters, Translator, nsp
|
||||
typedef typename rtree::element_indexable_type<element_type, Translator>::type indexable_type;
|
||||
typedef typename coordinate_type<indexable_type>::type coordinate_type;
|
||||
|
||||
typedef typename boost::mpl::if_c<
|
||||
boost::is_integral<coordinate_type>::value,
|
||||
double,
|
||||
coordinate_type
|
||||
>::type separation_type;
|
||||
typedef std::conditional_t
|
||||
<
|
||||
std::is_integral<coordinate_type>::value,
|
||||
double,
|
||||
coordinate_type
|
||||
> separation_type;
|
||||
|
||||
static inline void apply(Elements const& elements,
|
||||
Parameters const& parameters,
|
||||
|
@ -5,8 +5,8 @@
|
||||
// Copyright (c) 2009-2013 Mateusz Loskot, London, UK.
|
||||
// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland.
|
||||
|
||||
// This file was modified by Oracle on 2018.
|
||||
// Modifications copyright (c) 2018 Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2018-2020.
|
||||
// Modifications copyright (c) 2018-2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
@ -17,7 +17,6 @@
|
||||
#define BOOST_GEOMETRY_STRATEGY_CARTESIAN_DISTANCE_INFO_HPP
|
||||
|
||||
#include <boost/core/ignore_unused.hpp>
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
#include <boost/geometry/core/point_type.hpp>
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -16,8 +20,7 @@
|
||||
#define BOOST_GEOMETRY_EXTENSIONS_UTIL_REPLACE_POINT_TYPE_HPP
|
||||
|
||||
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/tag.hpp>
|
||||
#include <boost/geometry/core/tags.hpp>
|
||||
@ -88,7 +91,7 @@ template <typename Geometry, typename NewPointType>
|
||||
struct replace_point_type : core_dispatch::replace_point_type
|
||||
<
|
||||
typename tag<Geometry>::type,
|
||||
typename boost::remove_const<Geometry>::type,
|
||||
typename std::remove_const<Geometry>::type,
|
||||
NewPointType
|
||||
>
|
||||
{};
|
||||
|
@ -4,6 +4,10 @@
|
||||
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
|
||||
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
|
||||
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
|
||||
|
||||
@ -18,7 +22,6 @@
|
||||
// Note the addition of this whole file was committed to SVN by accident,
|
||||
// probably obsolete
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/range.hpp>
|
||||
|
||||
#include <boost/geometry/core/ring_type.hpp>
|
||||
|
@ -3,6 +3,10 @@
|
||||
// Copyright (c) 2010 Alfredo Correa
|
||||
// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020 Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -21,8 +25,7 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <boost/type_traits/is_arithmetic.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
#include <boost/geometry/core/cs.hpp>
|
||||
@ -69,7 +72,7 @@ struct boost_array_tag<true>
|
||||
// Assign the point-tag, preventing arrays of points getting a point-tag
|
||||
template <typename CoordinateType, std::size_t DimensionCount>
|
||||
struct tag<boost::array<CoordinateType, DimensionCount> >
|
||||
: detail::boost_array_tag<boost::is_arithmetic<CoordinateType>::value> {};
|
||||
: detail::boost_array_tag<std::is_arithmetic<CoordinateType>::value> {};
|
||||
|
||||
|
||||
template <typename CoordinateType, std::size_t DimensionCount>
|
||||
@ -80,7 +83,9 @@ struct coordinate_type<boost::array<CoordinateType, DimensionCount> >
|
||||
|
||||
|
||||
template <typename CoordinateType, std::size_t DimensionCount>
|
||||
struct dimension<boost::array<CoordinateType, DimensionCount> >: boost::mpl::int_<DimensionCount> {};
|
||||
struct dimension<boost::array<CoordinateType, DimensionCount> >
|
||||
: std::integral_constant<std::size_t, DimensionCount>
|
||||
{};
|
||||
|
||||
|
||||
template <typename CoordinateType, std::size_t DimensionCount, std::size_t Dimension>
|
||||
|
@ -3,10 +3,11 @@
|
||||
// Copyright (c) 2011-2015 Akira Takahashi
|
||||
// Copyright (c) 2011-2015 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2015.
|
||||
// Modifications copyright (c) 2015, Oracle and/or its affiliates.
|
||||
// This file was modified by Oracle on 2015-2020.
|
||||
// Modifications copyright (c) 2015-2020, Oracle and/or its affiliates.
|
||||
|
||||
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
@ -17,8 +18,7 @@
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <boost/core/enable_if.hpp>
|
||||
#include <type_traits>
|
||||
|
||||
#include <boost/fusion/include/is_sequence.hpp>
|
||||
#include <boost/fusion/include/size.hpp>
|
||||
@ -35,7 +35,6 @@
|
||||
#include <boost/mpl/size.hpp>
|
||||
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/geometry/core/access.hpp>
|
||||
#include <boost/geometry/core/coordinate_dimension.hpp>
|
||||
@ -53,27 +52,46 @@ namespace fusion_adapt_detail
|
||||
|
||||
template <class Sequence>
|
||||
struct all_same :
|
||||
boost::mpl::bool_<
|
||||
boost::mpl::count_if<
|
||||
Sequence,
|
||||
boost::is_same<
|
||||
typename boost::mpl::front<Sequence>::type,
|
||||
boost::mpl::_
|
||||
>
|
||||
>::value == boost::mpl::size<Sequence>::value
|
||||
>
|
||||
std::integral_constant
|
||||
<
|
||||
bool,
|
||||
boost::mpl::count_if<
|
||||
Sequence,
|
||||
boost::is_same<
|
||||
typename boost::mpl::front<Sequence>::type,
|
||||
boost::mpl::_
|
||||
>
|
||||
>::value == boost::mpl::size<Sequence>::value
|
||||
>
|
||||
{};
|
||||
|
||||
template <class Sequence>
|
||||
struct is_coordinate_size : boost::mpl::bool_<
|
||||
boost::fusion::result_of::size<Sequence>::value == 2 ||
|
||||
boost::fusion::result_of::size<Sequence>::value == 3> {};
|
||||
struct is_coordinate_size
|
||||
: std::integral_constant
|
||||
<
|
||||
bool,
|
||||
(boost::fusion::result_of::size<Sequence>::value == 2
|
||||
|| boost::fusion::result_of::size<Sequence>::value == 3)
|
||||
>
|
||||
{};
|
||||
|
||||
template
|
||||
<
|
||||
typename Sequence,
|
||||
bool IsSequence = boost::fusion::traits::is_sequence<Sequence>::value
|
||||
>
|
||||
struct is_fusion_sequence
|
||||
: std::integral_constant
|
||||
<
|
||||
bool,
|
||||
(fusion_adapt_detail::is_coordinate_size<Sequence>::value
|
||||
&& fusion_adapt_detail::all_same<Sequence>::value)
|
||||
>
|
||||
{};
|
||||
|
||||
template<typename Sequence>
|
||||
struct is_fusion_sequence
|
||||
: boost::mpl::and_<boost::fusion::traits::is_sequence<Sequence>,
|
||||
fusion_adapt_detail::is_coordinate_size<Sequence>,
|
||||
fusion_adapt_detail::all_same<Sequence> >
|
||||
struct is_fusion_sequence<Sequence, false>
|
||||
: std::false_type
|
||||
{};
|
||||
|
||||
|
||||
@ -89,10 +107,10 @@ template <typename Sequence>
|
||||
struct coordinate_type
|
||||
<
|
||||
Sequence,
|
||||
typename boost::enable_if
|
||||
std::enable_if_t
|
||||
<
|
||||
fusion_adapt_detail::is_fusion_sequence<Sequence>
|
||||
>::type
|
||||
fusion_adapt_detail::is_fusion_sequence<Sequence>::value
|
||||
>
|
||||
>
|
||||
{
|
||||
typedef typename boost::mpl::front<Sequence>::type type;
|
||||
@ -103,10 +121,10 @@ template <typename Sequence>
|
||||
struct dimension
|
||||
<
|
||||
Sequence,
|
||||
typename boost::enable_if
|
||||
std::enable_if_t
|
||||
<
|
||||
fusion_adapt_detail::is_fusion_sequence<Sequence>
|
||||
>::type
|
||||
fusion_adapt_detail::is_fusion_sequence<Sequence>::value
|
||||
>
|
||||
> : boost::mpl::size<Sequence>
|
||||
{};
|
||||
|
||||
@ -116,10 +134,10 @@ struct access
|
||||
<
|
||||
Sequence,
|
||||
Dimension,
|
||||
typename boost::enable_if
|
||||
std::enable_if_t
|
||||
<
|
||||
fusion_adapt_detail::is_fusion_sequence<Sequence>
|
||||
>::type
|
||||
fusion_adapt_detail::is_fusion_sequence<Sequence>::value
|
||||
>
|
||||
>
|
||||
{
|
||||
typedef typename coordinate_type<Sequence>::type ctype;
|
||||
@ -141,10 +159,10 @@ template <typename Sequence>
|
||||
struct tag
|
||||
<
|
||||
Sequence,
|
||||
typename boost::enable_if
|
||||
std::enable_if_t
|
||||
<
|
||||
fusion_adapt_detail::is_fusion_sequence<Sequence>
|
||||
>::type
|
||||
fusion_adapt_detail::is_fusion_sequence<Sequence>::value
|
||||
>
|
||||
>
|
||||
{
|
||||
typedef point_tag type;
|
||||
@ -166,10 +184,10 @@ struct tag
|
||||
struct coordinate_system \
|
||||
< \
|
||||
Sequence, \
|
||||
typename boost::enable_if \
|
||||
std::enable_if_t \
|
||||
< \
|
||||
fusion_adapt_detail::is_fusion_sequence<Sequence> \
|
||||
>::type \
|
||||
fusion_adapt_detail::is_fusion_sequence<Sequence>::value \
|
||||
> \
|
||||
> \
|
||||
{ typedef CoordinateSystem type; }; \
|
||||
}}}
|
||||
|
@ -2,6 +2,10 @@
|
||||
|
||||
// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
|
||||
|
||||
// This file was modified by Oracle on 2020.
|
||||
// Modifications copyright (c) 2020, Oracle and/or its affiliates.
|
||||
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
|
||||
|
||||
// Use, modification and distribution is subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@ -33,12 +37,12 @@ struct holes_proxy
|
||||
{
|
||||
typedef ring_proxy
|
||||
<
|
||||
typename boost::mpl::if_
|
||||
std::conditional_t
|
||||
<
|
||||
typename boost::is_const<Polygon>,
|
||||
std::is_const<Polygon>::value,
|
||||
Polygon const,
|
||||
Polygon
|
||||
>::type
|
||||
>
|
||||
> proxy_type;
|
||||
typedef hole_iterator<Polygon, proxy_type> iterator_type;
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user