mirror of
https://github.com/boostorg/geometry.git
synced 2025-05-11 05:24:02 +00:00
chore: replace typename tag / cs_tag with tag_t / cs_tag_t
This commit is contained in:
parent
08a71cf124
commit
7d4c687fd8
@ -46,8 +46,8 @@ namespace dispatch
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename tag<Geometry1>::type,
|
typename Tag1 = tag_t<Geometry1>,
|
||||||
typename Tag2 = typename tag<Geometry2>::type
|
typename Tag2 = tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct azimuth : not_implemented<Tag1, Tag2>
|
struct azimuth : not_implemented<Tag1, Tag2>
|
||||||
{};
|
{};
|
||||||
|
@ -48,8 +48,8 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry1,
|
typename Geometry1,
|
||||||
typename Geometry2,
|
typename Geometry2,
|
||||||
typename Tag1 = typename tag<Geometry1>::type,
|
typename Tag1 = tag_t<Geometry1>,
|
||||||
typename Tag2 = typename tag<Geometry2>::type
|
typename Tag2 = tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct crosses
|
struct crosses
|
||||||
: detail::relate::relate_impl
|
: detail::relate::relate_impl
|
||||||
@ -215,8 +215,8 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct crosses
|
struct crosses
|
||||||
{
|
{
|
||||||
|
@ -170,8 +170,8 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename GeometryOut,
|
typename GeometryOut,
|
||||||
typename Tag1 = typename tag<Geometry>::type,
|
typename Tag1 = tag_t<Geometry>,
|
||||||
typename Tag2 = typename tag<GeometryOut>::type
|
typename Tag2 = tag_t<GeometryOut>
|
||||||
>
|
>
|
||||||
struct densify
|
struct densify
|
||||||
: not_implemented<Tag1, Tag2>
|
: not_implemented<Tag1, Tag2>
|
||||||
@ -360,7 +360,7 @@ struct densify<default_strategy, false>
|
|||||||
|
|
||||||
namespace resolve_dynamic {
|
namespace resolve_dynamic {
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct densify
|
struct densify
|
||||||
{
|
{
|
||||||
template <typename Distance, typename Strategy>
|
template <typename Distance, typename Strategy>
|
||||||
|
@ -873,10 +873,7 @@ struct buffer_inserter<multi_tag, Multi, PolygonOutput>
|
|||||||
PolygonOutput,
|
PolygonOutput,
|
||||||
dispatch::buffer_inserter
|
dispatch::buffer_inserter
|
||||||
<
|
<
|
||||||
typename single_tag_of
|
typename single_tag_of<tag_t<Multi>>::type,
|
||||||
<
|
|
||||||
typename tag<Multi>::type
|
|
||||||
>::type,
|
|
||||||
typename boost::range_value<Multi const>::type,
|
typename boost::range_value<Multi const>::type,
|
||||||
typename geometry::ring_type<PolygonOutput>::type
|
typename geometry::ring_type<PolygonOutput>::type
|
||||||
>
|
>
|
||||||
|
@ -447,7 +447,7 @@ struct buffered_piece_collection
|
|||||||
// Check if turns are inside pieces
|
// Check if turns are inside pieces
|
||||||
turn_in_piece_visitor
|
turn_in_piece_visitor
|
||||||
<
|
<
|
||||||
typename geometry::cs_tag<point_type>::type,
|
geometry::cs_tag_t<point_type>,
|
||||||
turn_vector_type, piece_vector_type, DistanceStrategy, Strategy
|
turn_vector_type, piece_vector_type, DistanceStrategy, Strategy
|
||||||
> visitor(m_turns, m_pieces, m_distance_strategy, m_strategy);
|
> visitor(m_turns, m_pieces, m_distance_strategy, m_strategy);
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ namespace traits
|
|||||||
template <typename Ring>
|
template <typename Ring>
|
||||||
struct tag<geometry::detail::buffer::buffered_ring<Ring> >
|
struct tag<geometry::detail::buffer::buffered_ring<Ring> >
|
||||||
{
|
{
|
||||||
typedef ring_tag type;
|
using type = ring_tag;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ struct point_order<detail::buffer::buffered_ring_collection_tag,
|
|||||||
template <>
|
template <>
|
||||||
struct single_tag_of<detail::buffer::buffered_ring_collection_tag>
|
struct single_tag_of<detail::buffer::buffered_ring_collection_tag>
|
||||||
{
|
{
|
||||||
typedef ring_tag type;
|
using type = ring_tag;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,8 +38,8 @@ template
|
|||||||
<
|
<
|
||||||
typename Input,
|
typename Input,
|
||||||
typename Output,
|
typename Output,
|
||||||
typename TagIn = typename tag<Input>::type,
|
typename TagIn = tag_t<Input>,
|
||||||
typename TagOut = typename tag<Output>::type
|
typename TagOut = tag_t<Output>
|
||||||
>
|
>
|
||||||
struct buffer_dc : not_implemented<TagIn, TagOut>
|
struct buffer_dc : not_implemented<TagIn, TagOut>
|
||||||
{};
|
{};
|
||||||
@ -48,8 +48,8 @@ template
|
|||||||
<
|
<
|
||||||
typename Input,
|
typename Input,
|
||||||
typename Output,
|
typename Output,
|
||||||
typename TagIn = typename tag<Input>::type,
|
typename TagIn = tag_t<Input>,
|
||||||
typename TagOut = typename tag<Output>::type
|
typename TagOut = tag_t<Output>
|
||||||
>
|
>
|
||||||
struct buffer_all : not_implemented<TagIn, TagOut>
|
struct buffer_all : not_implemented<TagIn, TagOut>
|
||||||
{};
|
{};
|
||||||
@ -64,7 +64,7 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Input,
|
typename Input,
|
||||||
typename TagIn = typename geometry::tag<Input>::type
|
typename TagIn = geometry::tag_t<Input>
|
||||||
>
|
>
|
||||||
struct buffer_dc
|
struct buffer_dc
|
||||||
{
|
{
|
||||||
@ -101,7 +101,7 @@ struct buffer_dc<Input, dynamic_geometry_tag>
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Input,
|
typename Input,
|
||||||
typename TagIn = typename geometry::tag<Input>::type
|
typename TagIn = geometry::tag_t<Input>
|
||||||
>
|
>
|
||||||
struct buffer_all
|
struct buffer_all
|
||||||
{
|
{
|
||||||
|
@ -345,10 +345,10 @@ inline geometry::order_selector calculate_point_order(Ring const& ring, Strategy
|
|||||||
template <typename Ring>
|
template <typename Ring>
|
||||||
inline geometry::order_selector calculate_point_order(Ring const& ring)
|
inline geometry::order_selector calculate_point_order(Ring const& ring)
|
||||||
{
|
{
|
||||||
typedef typename strategy::point_order::services::default_strategy
|
using strategy_type = typename strategy::point_order::services::default_strategy
|
||||||
<
|
<
|
||||||
typename geometry::cs_tag<Ring>::type
|
geometry::cs_tag_t<Ring>
|
||||||
>::type strategy_type;
|
>::type;
|
||||||
|
|
||||||
concepts::check<Ring const>();
|
concepts::check<Ring const>();
|
||||||
|
|
||||||
|
@ -253,7 +253,7 @@ template
|
|||||||
typename MultiGeometry,
|
typename MultiGeometry,
|
||||||
bool CheckCoveredBy = std::is_same
|
bool CheckCoveredBy = std::is_same
|
||||||
<
|
<
|
||||||
typename tag<MultiGeometry>::type, multi_polygon_tag
|
tag_t<MultiGeometry>, multi_polygon_tag
|
||||||
>::value
|
>::value
|
||||||
>
|
>
|
||||||
class point_to_multigeometry
|
class point_to_multigeometry
|
||||||
@ -429,7 +429,7 @@ struct closest_points
|
|||||||
> : closest_points
|
> : closest_points
|
||||||
<
|
<
|
||||||
Point, Linear,
|
Point, Linear,
|
||||||
point_tag, typename tag<Linear>::type, false
|
point_tag, tag_t<Linear>, false
|
||||||
>
|
>
|
||||||
{};
|
{};
|
||||||
|
|
||||||
@ -441,7 +441,7 @@ struct closest_points
|
|||||||
> : closest_points
|
> : closest_points
|
||||||
<
|
<
|
||||||
Point, Areal,
|
Point, Areal,
|
||||||
point_tag, typename tag<Areal>::type, false
|
point_tag, tag_t<Areal>, false
|
||||||
>
|
>
|
||||||
{};
|
{};
|
||||||
|
|
||||||
|
@ -124,8 +124,8 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct comparable_distance
|
struct comparable_distance
|
||||||
{
|
{
|
||||||
|
@ -128,7 +128,7 @@ private:
|
|||||||
|
|
||||||
// TODO: Or just implement point_type<> for GeometryCollection
|
// TODO: Or just implement point_type<> for GeometryCollection
|
||||||
// and enforce the same point_type used in the whole sequence in check().
|
// and enforce the same point_type used in the whole sequence in check().
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct default_strategy
|
struct default_strategy
|
||||||
{
|
{
|
||||||
using type = typename strategies::convex_hull::services::default_strategy
|
using type = typename strategies::convex_hull::services::default_strategy
|
||||||
@ -201,7 +201,7 @@ namespace dispatch
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct convex_hull
|
struct convex_hull
|
||||||
{
|
{
|
||||||
@ -304,7 +304,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template <typename OutputGeometry, typename Tag = typename tag<OutputGeometry>::type>
|
template <typename OutputGeometry, typename Tag = tag_t<OutputGeometry>>
|
||||||
struct convex_hull_out
|
struct convex_hull_out
|
||||||
{
|
{
|
||||||
BOOST_GEOMETRY_STATIC_ASSERT_FALSE("This OutputGeometry is not supported.", OutputGeometry, Tag);
|
BOOST_GEOMETRY_STATIC_ASSERT_FALSE("This OutputGeometry is not supported.", OutputGeometry, Tag);
|
||||||
@ -531,7 +531,7 @@ struct convex_hull<default_strategy>
|
|||||||
|
|
||||||
namespace resolve_dynamic {
|
namespace resolve_dynamic {
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct convex_hull
|
struct convex_hull
|
||||||
{
|
{
|
||||||
template <typename OutputGeometry, typename Strategy>
|
template <typename OutputGeometry, typename Strategy>
|
||||||
|
@ -38,8 +38,8 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry1,
|
typename Geometry1,
|
||||||
typename Geometry2,
|
typename Geometry2,
|
||||||
typename Tag1 = typename tag<Geometry1>::type,
|
typename Tag1 = tag_t<Geometry1>,
|
||||||
typename Tag2 = typename tag<Geometry2>::type
|
typename Tag2 = tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct covered_by
|
struct covered_by
|
||||||
: not_implemented<Tag1, Tag2>
|
: not_implemented<Tag1, Tag2>
|
||||||
@ -122,8 +122,8 @@ namespace resolve_dynamic {
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct covered_by
|
struct covered_by
|
||||||
{
|
{
|
||||||
|
@ -249,7 +249,7 @@ struct direction_code_impl<spherical_tag>
|
|||||||
<
|
<
|
||||||
std::is_same
|
std::is_same
|
||||||
<
|
<
|
||||||
typename geometry::cs_tag<PointSegmentA>::type,
|
geometry::cs_tag_t<PointSegmentA>,
|
||||||
spherical_polar_tag
|
spherical_polar_tag
|
||||||
>::value,
|
>::value,
|
||||||
spherical_polar_tag,
|
spherical_polar_tag,
|
||||||
|
@ -130,7 +130,7 @@ template
|
|||||||
<
|
<
|
||||||
typename Segment,
|
typename Segment,
|
||||||
typename Areal,
|
typename Areal,
|
||||||
typename Tag = typename tag<Areal>::type
|
typename Tag = tag_t<Areal>
|
||||||
>
|
>
|
||||||
struct disjoint_segment_areal
|
struct disjoint_segment_areal
|
||||||
: not_implemented<Segment, Areal>
|
: not_implemented<Segment, Areal>
|
||||||
|
@ -111,8 +111,8 @@ struct disjoint_linear
|
|||||||
disjoint_interrupt_policy interrupt_policy;
|
disjoint_interrupt_policy interrupt_policy;
|
||||||
dispatch::get_turns
|
dispatch::get_turns
|
||||||
<
|
<
|
||||||
typename geometry::tag<Geometry1>::type,
|
geometry::tag_t<Geometry1>,
|
||||||
typename geometry::tag<Geometry2>::type,
|
geometry::tag_t<Geometry2>,
|
||||||
Geometry1,
|
Geometry1,
|
||||||
Geometry2,
|
Geometry2,
|
||||||
overlay::do_reverse<geometry::point_order<Geometry1>::value>::value, // should be false
|
overlay::do_reverse<geometry::point_order<Geometry1>::value>::value, // should be false
|
||||||
|
@ -45,7 +45,7 @@ namespace detail { namespace disjoint
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename SegmentOrBox,
|
typename SegmentOrBox,
|
||||||
typename Tag = typename tag<SegmentOrBox>::type
|
typename Tag = tag_t<SegmentOrBox>
|
||||||
>
|
>
|
||||||
struct disjoint_point_segment_or_box
|
struct disjoint_point_segment_or_box
|
||||||
: not_implemented<Tag>
|
: not_implemented<Tag>
|
||||||
@ -135,7 +135,7 @@ template
|
|||||||
<
|
<
|
||||||
typename Linear,
|
typename Linear,
|
||||||
typename SegmentOrBox,
|
typename SegmentOrBox,
|
||||||
typename Tag = typename tag<Linear>::type
|
typename Tag = tag_t<Linear>
|
||||||
>
|
>
|
||||||
struct disjoint_linear_segment_or_box
|
struct disjoint_linear_segment_or_box
|
||||||
: not_implemented<Linear, SegmentOrBox>
|
: not_implemented<Linear, SegmentOrBox>
|
||||||
|
@ -461,7 +461,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template <typename MultiPoint, typename Areal, typename Tag = typename tag<Areal>::type>
|
template <typename MultiPoint, typename Areal, typename Tag = tag_t<Areal>>
|
||||||
struct multipoint_areal
|
struct multipoint_areal
|
||||||
: multi_point_single_geometry<MultiPoint, Areal>
|
: multi_point_single_geometry<MultiPoint, Areal>
|
||||||
{};
|
{};
|
||||||
|
@ -51,7 +51,7 @@ namespace detail { namespace distance
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename SegmentOrBox,
|
typename SegmentOrBox,
|
||||||
typename Tag = typename tag<SegmentOrBox>::type
|
typename Tag = tag_t<SegmentOrBox>
|
||||||
>
|
>
|
||||||
struct segment_or_box_point_range_closure
|
struct segment_or_box_point_range_closure
|
||||||
: not_implemented<SegmentOrBox>
|
: not_implemented<SegmentOrBox>
|
||||||
@ -76,7 +76,7 @@ template
|
|||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename SegmentOrBox,
|
typename SegmentOrBox,
|
||||||
typename Strategies,
|
typename Strategies,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
class geometry_to_segment_or_box
|
class geometry_to_segment_or_box
|
||||||
{
|
{
|
||||||
@ -97,7 +97,7 @@ private:
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename SegOrBox,
|
typename SegOrBox,
|
||||||
typename SegOrBoxTag = typename tag<SegOrBox>::type
|
typename SegOrBoxTag = tag_t<SegOrBox>
|
||||||
>
|
>
|
||||||
struct assign_new_min_iterator
|
struct assign_new_min_iterator
|
||||||
: not_implemented<SegOrBox>
|
: not_implemented<SegOrBox>
|
||||||
@ -128,7 +128,7 @@ private:
|
|||||||
<
|
<
|
||||||
typename SegOrBox,
|
typename SegOrBox,
|
||||||
typename PointRange,
|
typename PointRange,
|
||||||
typename SegOrBoxTag = typename tag<SegOrBox>::type
|
typename SegOrBoxTag = tag_t<SegOrBox>
|
||||||
>
|
>
|
||||||
struct assign_segment_or_box_points
|
struct assign_segment_or_box_points
|
||||||
{};
|
{};
|
||||||
|
@ -187,8 +187,8 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct distance
|
struct distance
|
||||||
{
|
{
|
||||||
|
@ -27,7 +27,7 @@ namespace detail { namespace distance
|
|||||||
|
|
||||||
|
|
||||||
// class to choose between point_iterator and segment_iterator
|
// class to choose between point_iterator and segment_iterator
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct iterator_selector
|
struct iterator_selector
|
||||||
{
|
{
|
||||||
typedef geometry::segment_iterator<Geometry> iterator_type;
|
typedef geometry::segment_iterator<Geometry> iterator_type;
|
||||||
|
@ -315,10 +315,7 @@ template
|
|||||||
typename Point,
|
typename Point,
|
||||||
typename MultiGeometry,
|
typename MultiGeometry,
|
||||||
typename Strategies,
|
typename Strategies,
|
||||||
bool CheckCoveredBy = std::is_same
|
bool CheckCoveredBy = std::is_same<tag_t<MultiGeometry>, multi_polygon_tag>::value
|
||||||
<
|
|
||||||
typename tag<MultiGeometry>::type, multi_polygon_tag
|
|
||||||
>::value
|
|
||||||
>
|
>
|
||||||
class point_to_multigeometry
|
class point_to_multigeometry
|
||||||
{
|
{
|
||||||
@ -509,7 +506,7 @@ struct distance
|
|||||||
> : distance
|
> : distance
|
||||||
<
|
<
|
||||||
Point, Linear, Strategy,
|
Point, Linear, Strategy,
|
||||||
point_tag, typename tag<Linear>::type,
|
point_tag, tag_t<Linear>,
|
||||||
strategy_tag_distance_point_segment, false
|
strategy_tag_distance_point_segment, false
|
||||||
>
|
>
|
||||||
{};
|
{};
|
||||||
@ -523,7 +520,7 @@ struct distance
|
|||||||
> : distance
|
> : distance
|
||||||
<
|
<
|
||||||
Point, Areal, Strategy,
|
Point, Areal, Strategy,
|
||||||
point_tag, typename tag<Areal>::type,
|
point_tag, tag_t<Areal>,
|
||||||
strategy_tag_distance_point_segment, false
|
strategy_tag_distance_point_segment, false
|
||||||
>
|
>
|
||||||
{};
|
{};
|
||||||
|
@ -39,15 +39,15 @@ struct dummy_multi_polygon {};
|
|||||||
namespace traits
|
namespace traits
|
||||||
{
|
{
|
||||||
|
|
||||||
template <> struct tag<geometry::detail::dummy_point> { typedef point_tag type; };
|
template <> struct tag<geometry::detail::dummy_point> { using type = point_tag; };
|
||||||
template <> struct tag<geometry::detail::dummy_segment> { typedef segment_tag type; };
|
template <> struct tag<geometry::detail::dummy_segment> { using type = segment_tag; };
|
||||||
template <> struct tag<geometry::detail::dummy_box> { typedef box_tag type; };
|
template <> struct tag<geometry::detail::dummy_box> { using type = box_tag; };
|
||||||
template <> struct tag<geometry::detail::dummy_linestring> { typedef linestring_tag type; };
|
template <> struct tag<geometry::detail::dummy_linestring> { using type = linestring_tag; };
|
||||||
template <> struct tag<geometry::detail::dummy_ring> { typedef ring_tag type; };
|
template <> struct tag<geometry::detail::dummy_ring> { using type = ring_tag; };
|
||||||
template <> struct tag<geometry::detail::dummy_polygon> { typedef polygon_tag type; };
|
template <> struct tag<geometry::detail::dummy_polygon> { using type = polygon_tag; };
|
||||||
template <> struct tag<geometry::detail::dummy_multi_point> { typedef multi_point_tag type; };
|
template <> struct tag<geometry::detail::dummy_multi_point> { using type = multi_point_tag; };
|
||||||
template <> struct tag<geometry::detail::dummy_multi_linestring> { typedef multi_linestring_tag type; };
|
template <> struct tag<geometry::detail::dummy_multi_linestring> { using type = multi_linestring_tag; };
|
||||||
template <> struct tag<geometry::detail::dummy_multi_polygon> { typedef multi_polygon_tag type; };
|
template <> struct tag<geometry::detail::dummy_multi_polygon> { using type = multi_polygon_tag; };
|
||||||
|
|
||||||
} // namespace traits
|
} // namespace traits
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ struct envelope<default_strategy, false>
|
|||||||
namespace resolve_dynamic
|
namespace resolve_dynamic
|
||||||
{
|
{
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct envelope
|
struct envelope
|
||||||
{
|
{
|
||||||
template <typename Box, typename Strategy>
|
template <typename Box, typename Strategy>
|
||||||
|
@ -37,8 +37,8 @@ template
|
|||||||
<
|
<
|
||||||
typename GeometryIn,
|
typename GeometryIn,
|
||||||
typename GeometryOut,
|
typename GeometryOut,
|
||||||
typename TagIn = typename tag<GeometryIn>::type,
|
typename TagIn = tag_t<GeometryIn>,
|
||||||
typename TagOut = typename tag<GeometryOut>::type
|
typename TagOut = tag_t<GeometryOut>
|
||||||
>
|
>
|
||||||
struct transform_units_impl
|
struct transform_units_impl
|
||||||
: not_implemented<TagIn, TagOut>
|
: not_implemented<TagIn, TagOut>
|
||||||
|
@ -504,7 +504,7 @@ inline void collect_vectors(Collection& collection, Geometry const& geometry)
|
|||||||
|
|
||||||
dispatch::collect_vectors
|
dispatch::collect_vectors
|
||||||
<
|
<
|
||||||
typename tag<Geometry>::type,
|
tag_t<Geometry>,
|
||||||
Collection,
|
Collection,
|
||||||
Geometry
|
Geometry
|
||||||
>::apply(collection, geometry);
|
>::apply(collection, geometry);
|
||||||
|
@ -159,8 +159,8 @@ namespace resolve_dynamic {
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct equals
|
struct equals
|
||||||
{
|
{
|
||||||
|
@ -101,7 +101,7 @@ struct expand<default_strategy, false>
|
|||||||
namespace resolve_dynamic
|
namespace resolve_dynamic
|
||||||
{
|
{
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct expand
|
struct expand
|
||||||
{
|
{
|
||||||
template <typename Box, typename Strategy>
|
template <typename Box, typename Strategy>
|
||||||
|
@ -393,7 +393,7 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
std::size_t Dimension,
|
std::size_t Dimension,
|
||||||
typename GeometryTag = typename tag<Geometry>::type
|
typename GeometryTag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct extreme_points
|
struct extreme_points
|
||||||
{};
|
{};
|
||||||
|
@ -133,7 +133,7 @@ namespace dispatch
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct for_each_range
|
struct for_each_range
|
||||||
{
|
{
|
||||||
|
@ -44,8 +44,8 @@ struct gc_can_convert_element
|
|||||||
template <typename G>
|
template <typename G>
|
||||||
using has_same_tag_as_single = std::is_same
|
using has_same_tag_as_single = std::is_same
|
||||||
<
|
<
|
||||||
typename geometry::tag<G>::type,
|
geometry::tag_t<G>,
|
||||||
typename geometry::tag<typename boost::range_value<Multi>::type>::type
|
geometry::tag_t<typename boost::range_value<Multi>::type>
|
||||||
>;
|
>;
|
||||||
using gc_types = typename traits::geometry_types<GC>::type;
|
using gc_types = typename traits::geometry_types<GC>::type;
|
||||||
using found_type = typename util::sequence_find_if<gc_types, has_same_tag_as_single>::type;
|
using found_type = typename util::sequence_find_if<gc_types, has_same_tag_as_single>::type;
|
||||||
|
@ -37,8 +37,8 @@ namespace dispatch
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type,
|
typename Tag2 = geometry::tag_t<Geometry2>,
|
||||||
bool Reverse = reverse_dispatch<Geometry1, Geometry2>::type::value
|
bool Reverse = reverse_dispatch<Geometry1, Geometry2>::type::value
|
||||||
>
|
>
|
||||||
struct intersection
|
struct intersection
|
||||||
@ -109,9 +109,9 @@ namespace resolve_collection
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2, typename GeometryOut,
|
typename Geometry1, typename Geometry2, typename GeometryOut,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type,
|
typename Tag2 = geometry::tag_t<Geometry2>,
|
||||||
typename TagOut = typename geometry::tag<GeometryOut>::type
|
typename TagOut = geometry::tag_t<GeometryOut>
|
||||||
>
|
>
|
||||||
struct intersection
|
struct intersection
|
||||||
{
|
{
|
||||||
@ -216,8 +216,8 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct intersection
|
struct intersection
|
||||||
{
|
{
|
||||||
|
@ -43,7 +43,7 @@ namespace detail { namespace is_simple
|
|||||||
|
|
||||||
|
|
||||||
#ifdef BOOST_GEOMETRY_TEST_DEBUG
|
#ifdef BOOST_GEOMETRY_TEST_DEBUG
|
||||||
template <typename Linear, typename Tag = typename tag<Linear>::type>
|
template <typename Linear, typename Tag = tag_t<Linear>>
|
||||||
struct debug_boundary_points_printer
|
struct debug_boundary_points_printer
|
||||||
: not_implemented<Linear>
|
: not_implemented<Linear>
|
||||||
{};
|
{};
|
||||||
|
@ -80,7 +80,7 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Strategy,
|
typename Strategy,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
class is_acceptable_turn
|
class is_acceptable_turn
|
||||||
: not_implemented<Geometry>
|
: not_implemented<Geometry>
|
||||||
|
@ -24,7 +24,7 @@ namespace boost { namespace geometry
|
|||||||
namespace detail { namespace is_valid
|
namespace detail { namespace is_valid
|
||||||
{
|
{
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct debug_validity_phase
|
struct debug_validity_phase
|
||||||
{
|
{
|
||||||
static inline void apply(int)
|
static inline void apply(int)
|
||||||
|
@ -106,7 +106,7 @@ struct range_has_invalid_coordinate
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type,
|
typename Tag = tag_t<Geometry>,
|
||||||
bool HasFloatingPointCoordinates = std::is_floating_point
|
bool HasFloatingPointCoordinates = std::is_floating_point
|
||||||
<
|
<
|
||||||
coordinate_type_t<Geometry>
|
coordinate_type_t<Geometry>
|
||||||
|
@ -92,7 +92,7 @@ struct is_valid<default_strategy, false>
|
|||||||
namespace resolve_dynamic
|
namespace resolve_dynamic
|
||||||
{
|
{
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct is_valid
|
struct is_valid
|
||||||
{
|
{
|
||||||
template <typename VisitPolicy, typename Strategy>
|
template <typename VisitPolicy, typename Strategy>
|
||||||
|
@ -33,7 +33,7 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
order_selector Order = geometry::point_order<Geometry>::value,
|
order_selector Order = geometry::point_order<Geometry>::value,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct acceptable_operation
|
struct acceptable_operation
|
||||||
{};
|
{};
|
||||||
@ -69,7 +69,7 @@ struct acceptable_operation<MultiPolygon, clockwise, multi_polygon_tag>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct is_acceptable_turn
|
struct is_acceptable_turn
|
||||||
{};
|
{};
|
||||||
|
|
||||||
|
@ -453,10 +453,10 @@ public:
|
|||||||
else // else prevents unreachable code warning
|
else // else prevents unreachable code warning
|
||||||
{
|
{
|
||||||
// compute turns and check if all are acceptable
|
// compute turns and check if all are acceptable
|
||||||
typedef debug_validity_phase<Polygon> debug_phase;
|
using debug_phase = debug_validity_phase<Polygon>;
|
||||||
debug_phase::apply(3);
|
debug_phase::apply(3);
|
||||||
|
|
||||||
typedef has_valid_self_turns<Polygon, typename Strategy::cs_tag> has_valid_turns;
|
using has_valid_turns = has_valid_self_turns<Polygon, typename Strategy::cs_tag>;
|
||||||
|
|
||||||
std::deque<typename has_valid_turns::turn_type> turns;
|
std::deque<typename has_valid_turns::turn_type> turns;
|
||||||
bool has_invalid_turns
|
bool has_invalid_turns
|
||||||
|
@ -46,8 +46,8 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry1,
|
typename Geometry1,
|
||||||
typename Geometry2,
|
typename Geometry2,
|
||||||
typename Tag1 = typename tag<Geometry1>::type,
|
typename Tag1 = tag_t<Geometry1>,
|
||||||
typename Tag2 = typename tag<Geometry2>::type
|
typename Tag2 = tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct overlaps
|
struct overlaps
|
||||||
: detail::relate::relate_impl
|
: detail::relate::relate_impl
|
||||||
@ -131,8 +131,8 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct overlaps
|
struct overlaps
|
||||||
{
|
{
|
||||||
|
@ -48,9 +48,9 @@ inline void convert_and_add(GeometryOut& result,
|
|||||||
ring_identifier id,
|
ring_identifier id,
|
||||||
bool reversed, bool append)
|
bool reversed, bool append)
|
||||||
{
|
{
|
||||||
typedef typename geometry::tag<Geometry1>::type tag1;
|
using tag1 = geometry::tag_t<Geometry1>;
|
||||||
typedef typename geometry::tag<Geometry2>::type tag2;
|
using tag2 = geometry::tag_t<Geometry2>;
|
||||||
typedef typename geometry::tag<GeometryOut>::type tag_out;
|
using tag_out = geometry::tag_t<GeometryOut>;
|
||||||
|
|
||||||
if (id.source_index == 0)
|
if (id.source_index == 0)
|
||||||
{
|
{
|
||||||
|
@ -57,8 +57,8 @@ static inline bool within_selected_input(Item const& item2,
|
|||||||
RingCollection const& collection,
|
RingCollection const& collection,
|
||||||
Strategy const& strategy)
|
Strategy const& strategy)
|
||||||
{
|
{
|
||||||
typedef typename geometry::tag<Geometry1>::type tag1;
|
using tag1 = geometry::tag_t<Geometry1>;
|
||||||
typedef typename geometry::tag<Geometry2>::type tag2;
|
using tag2 = geometry::tag_t<Geometry2>;
|
||||||
|
|
||||||
// NOTE: range_in_geometry first checks the item2.point and then
|
// NOTE: range_in_geometry first checks the item2.point and then
|
||||||
// if this point is on boundary it checks points of inner_geometry
|
// if this point is on boundary it checks points of inner_geometry
|
||||||
@ -92,8 +92,8 @@ static inline bool within_selected_input(Item const& item2,
|
|||||||
RingCollection const& collection,
|
RingCollection const& collection,
|
||||||
Strategy const& strategy)
|
Strategy const& strategy)
|
||||||
{
|
{
|
||||||
typedef typename geometry::tag<Geometry1>::type tag1;
|
using tag1 = geometry::tag_t<Geometry1>;
|
||||||
typedef typename geometry::tag<Geometry2>::type tag2;
|
using tag2 = geometry::tag_t<Geometry2>;
|
||||||
|
|
||||||
switch (inner_id.source_index)
|
switch (inner_id.source_index)
|
||||||
{
|
{
|
||||||
@ -254,16 +254,16 @@ inline void assign_parents(Geometry1 const& geometry1,
|
|||||||
static bool const is_dissolve = OverlayType == overlay_dissolve;
|
static bool const is_dissolve = OverlayType == overlay_dissolve;
|
||||||
static bool const check_for_orientation = is_buffer || is_dissolve;
|
static bool const check_for_orientation = is_buffer || is_dissolve;
|
||||||
|
|
||||||
typedef typename geometry::tag<Geometry1>::type tag1;
|
using tag1 = geometry::tag_t<Geometry1>;
|
||||||
typedef typename geometry::tag<Geometry2>::type tag2;
|
using tag2 = geometry::tag_t<Geometry2>;
|
||||||
|
|
||||||
typedef typename RingMap::mapped_type ring_info_type;
|
using ring_info_type = typename RingMap::mapped_type;
|
||||||
typedef typename ring_info_type::point_type point_type;
|
using point_type = typename ring_info_type::point_type;
|
||||||
typedef model::box<point_type> box_type;
|
using box_type = model::box<point_type>;
|
||||||
typedef typename geometry::area_result
|
using area_result_type = typename geometry::area_result
|
||||||
<
|
<
|
||||||
point_type, Strategy // TODO: point_type is technically incorrect
|
point_type, Strategy // TODO: point_type is technically incorrect
|
||||||
>::type area_result_type;
|
>::type;
|
||||||
|
|
||||||
{
|
{
|
||||||
std::size_t count_total = ring_map.size();
|
std::size_t count_total = ring_map.size();
|
||||||
|
@ -26,7 +26,7 @@ template
|
|||||||
<
|
<
|
||||||
typename Point,
|
typename Point,
|
||||||
typename CoordinateType = geometry::coordinate_type_t<Point>,
|
typename CoordinateType = geometry::coordinate_type_t<Point>,
|
||||||
typename CsTag = typename geometry::cs_tag<Point>::type,
|
typename CsTag = geometry::cs_tag_t<Point>,
|
||||||
bool IsIntegral = std::is_integral<CoordinateType>::value
|
bool IsIntegral = std::is_integral<CoordinateType>::value
|
||||||
>
|
>
|
||||||
struct cluster_colocator
|
struct cluster_colocator
|
||||||
|
@ -288,7 +288,7 @@ inline bool copy_segment_point(Geometry const& geometry,
|
|||||||
|
|
||||||
return dispatch::copy_segment_point
|
return dispatch::copy_segment_point
|
||||||
<
|
<
|
||||||
typename tag<Geometry>::type,
|
tag_t<Geometry>,
|
||||||
Geometry,
|
Geometry,
|
||||||
Reverse,
|
Reverse,
|
||||||
SegmentIdentifier,
|
SegmentIdentifier,
|
||||||
@ -322,7 +322,7 @@ inline bool copy_segment_point(Geometry1 const& geometry1, Geometry2 const& geom
|
|||||||
{
|
{
|
||||||
return dispatch::copy_segment_point
|
return dispatch::copy_segment_point
|
||||||
<
|
<
|
||||||
typename tag<Geometry1>::type,
|
tag_t<Geometry1>,
|
||||||
Geometry1,
|
Geometry1,
|
||||||
Reverse1,
|
Reverse1,
|
||||||
SegmentIdentifier,
|
SegmentIdentifier,
|
||||||
@ -333,7 +333,7 @@ inline bool copy_segment_point(Geometry1 const& geometry1, Geometry2 const& geom
|
|||||||
{
|
{
|
||||||
return dispatch::copy_segment_point
|
return dispatch::copy_segment_point
|
||||||
<
|
<
|
||||||
typename tag<Geometry2>::type,
|
tag_t<Geometry2>,
|
||||||
Geometry2,
|
Geometry2,
|
||||||
Reverse2,
|
Reverse2,
|
||||||
SegmentIdentifier,
|
SegmentIdentifier,
|
||||||
|
@ -349,7 +349,7 @@ inline void copy_segments(Geometry const& geometry,
|
|||||||
|
|
||||||
dispatch::copy_segments
|
dispatch::copy_segments
|
||||||
<
|
<
|
||||||
typename tag<Geometry>::type,
|
tag_t<Geometry>,
|
||||||
Reverse
|
Reverse
|
||||||
>::apply(geometry, seg_id, to_index, strategy, range_out);
|
>::apply(geometry, seg_id, to_index, strategy, range_out);
|
||||||
}
|
}
|
||||||
|
@ -164,7 +164,7 @@ inline bool is_touching(Turn const& turn, Operation const& op,
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename GeometryOut,
|
typename GeometryOut,
|
||||||
typename Tag = typename geometry::tag<GeometryOut>::type
|
typename Tag = geometry::tag_t<GeometryOut>
|
||||||
>
|
>
|
||||||
struct add_isolated_point
|
struct add_isolated_point
|
||||||
{};
|
{};
|
||||||
|
@ -499,7 +499,7 @@ template
|
|||||||
overlay_type OverlayType,
|
overlay_type OverlayType,
|
||||||
bool FollowIsolatedPoints,
|
bool FollowIsolatedPoints,
|
||||||
bool FollowContinueTurns,
|
bool FollowContinueTurns,
|
||||||
typename TagIn1 = typename tag<Geometry1>::type
|
typename TagIn1 = tag_t<Geometry1>
|
||||||
>
|
>
|
||||||
struct follow
|
struct follow
|
||||||
: not_implemented<Geometry1>
|
: not_implemented<Geometry1>
|
||||||
|
@ -110,16 +110,16 @@ inline void get_intersection_points(Geometry1 const& geometry1,
|
|||||||
reverse_dispatch<Geometry1, Geometry2>::type::value,
|
reverse_dispatch<Geometry1, Geometry2>::type::value,
|
||||||
dispatch::get_turns_reversed
|
dispatch::get_turns_reversed
|
||||||
<
|
<
|
||||||
typename tag<Geometry1>::type,
|
tag_t<Geometry1>,
|
||||||
typename tag<Geometry2>::type,
|
tag_t<Geometry2>,
|
||||||
Geometry1, Geometry2,
|
Geometry1, Geometry2,
|
||||||
false, false,
|
false, false,
|
||||||
TurnPolicy
|
TurnPolicy
|
||||||
>,
|
>,
|
||||||
dispatch::get_turns
|
dispatch::get_turns
|
||||||
<
|
<
|
||||||
typename tag<Geometry1>::type,
|
tag_t<Geometry1>,
|
||||||
typename tag<Geometry2>::type,
|
tag_t<Geometry2>,
|
||||||
Geometry1, Geometry2,
|
Geometry1, Geometry2,
|
||||||
false, false,
|
false, false,
|
||||||
TurnPolicy
|
TurnPolicy
|
||||||
|
@ -122,7 +122,7 @@ template <typename Geometry>
|
|||||||
inline signed_size_type segment_count_on_ring(Geometry const& geometry,
|
inline signed_size_type segment_count_on_ring(Geometry const& geometry,
|
||||||
ring_identifier const& ring_id)
|
ring_identifier const& ring_id)
|
||||||
{
|
{
|
||||||
using tag = typename geometry::tag<Geometry>::type;
|
using tag = geometry::tag_t<Geometry>;
|
||||||
|
|
||||||
// A closed polygon, a triangle of 4 points, including starting point,
|
// A closed polygon, a triangle of 4 points, including starting point,
|
||||||
// contains 3 segments. So handle as if it is closed, and subtract one.
|
// contains 3 segments. So handle as if it is closed, and subtract one.
|
||||||
|
@ -167,18 +167,18 @@ class intersection_info
|
|||||||
: public intersection_info_base<UniqueSubRange1, UniqueSubRange2,
|
: public intersection_info_base<UniqueSubRange1, UniqueSubRange2,
|
||||||
TurnPoint, UmbrellaStrategy>
|
TurnPoint, UmbrellaStrategy>
|
||||||
{
|
{
|
||||||
typedef intersection_info_base<UniqueSubRange1, UniqueSubRange2,
|
using base = intersection_info_base<UniqueSubRange1, UniqueSubRange2,
|
||||||
TurnPoint, UmbrellaStrategy> base;
|
TurnPoint, UmbrellaStrategy>;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
typedef typename UmbrellaStrategy::cs_tag cs_tag;
|
using cs_tag = typename UmbrellaStrategy::cs_tag;
|
||||||
|
|
||||||
typedef typename base::side_calculator_type side_calculator_type;
|
using side_calculator_type = typename base::side_calculator_type;
|
||||||
typedef typename base::result_type result_type;
|
using result_type = typename base::result_type;
|
||||||
|
|
||||||
typedef typename result_type::intersection_points_type i_info_type;
|
using i_info_type = typename result_type::intersection_points_type;
|
||||||
typedef typename result_type::direction_type d_info_type;
|
using d_info_type = typename result_type::direction_type;
|
||||||
|
|
||||||
intersection_info(UniqueSubRange1 const& range_p,
|
intersection_info(UniqueSubRange1 const& range_p,
|
||||||
UniqueSubRange2 const& range_q,
|
UniqueSubRange2 const& range_q,
|
||||||
|
@ -815,9 +815,15 @@ struct topological_tag_base
|
|||||||
using type = tag_cast_t<tag_t<Geometry>, pointlike_tag, linear_tag, areal_tag>;
|
using type = tag_cast_t<tag_t<Geometry>, pointlike_tag, linear_tag, areal_tag>;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename Geometry1, typename Geometry2, typename AssignPolicy,
|
template
|
||||||
typename Tag1 = typename tag<Geometry1>::type, typename Tag2 = typename tag<Geometry2>::type,
|
<
|
||||||
typename TagBase1 = typename topological_tag_base<Geometry1>::type, typename TagBase2 = typename topological_tag_base<Geometry2>::type>
|
typename Geometry1, typename Geometry2,
|
||||||
|
typename AssignPolicy,
|
||||||
|
typename Tag1 = tag_t<Geometry1>,
|
||||||
|
typename Tag2 = tag_t<Geometry2>,
|
||||||
|
typename TagBase1 = typename topological_tag_base<Geometry1>::type,
|
||||||
|
typename TagBase2 = typename topological_tag_base<Geometry2>::type
|
||||||
|
>
|
||||||
struct get_turn_info_type
|
struct get_turn_info_type
|
||||||
: overlay::get_turn_info<AssignPolicy>
|
: overlay::get_turn_info<AssignPolicy>
|
||||||
{};
|
{};
|
||||||
@ -833,8 +839,9 @@ struct get_turn_info_type<Geometry1, Geometry2, AssignPolicy, Tag1, Tag2, linear
|
|||||||
{};
|
{};
|
||||||
|
|
||||||
template <typename Geometry1, typename Geometry2, typename Point, typename SegmentRatio,
|
template <typename Geometry1, typename Geometry2, typename Point, typename SegmentRatio,
|
||||||
typename Tag1 = typename tag<Geometry1>::type, typename Tag2 = typename tag<Geometry2>::type,
|
typename Tag1 = tag_t<Geometry1>, typename Tag2 = tag_t<Geometry2>,
|
||||||
typename TagBase1 = typename topological_tag_base<Geometry1>::type, typename TagBase2 = typename topological_tag_base<Geometry2>::type>
|
typename TagBase1 = typename topological_tag_base<Geometry1>::type,
|
||||||
|
typename TagBase2 = typename topological_tag_base<Geometry2>::type>
|
||||||
struct turn_operation_type
|
struct turn_operation_type
|
||||||
{
|
{
|
||||||
using type = overlay::turn_operation<Point, SegmentRatio>;
|
using type = overlay::turn_operation<Point, SegmentRatio>;
|
||||||
@ -1017,16 +1024,16 @@ inline void get_turns(Geometry1 const& geometry1,
|
|||||||
reverse_dispatch<Geometry1, Geometry2>::type::value,
|
reverse_dispatch<Geometry1, Geometry2>::type::value,
|
||||||
dispatch::get_turns_reversed
|
dispatch::get_turns_reversed
|
||||||
<
|
<
|
||||||
typename tag<Geometry1>::type,
|
tag_t<Geometry1>,
|
||||||
typename tag<Geometry2>::type,
|
tag_t<Geometry2>,
|
||||||
Geometry1, Geometry2,
|
Geometry1, Geometry2,
|
||||||
Reverse1, Reverse2,
|
Reverse1, Reverse2,
|
||||||
TurnPolicy
|
TurnPolicy
|
||||||
>,
|
>,
|
||||||
dispatch::get_turns
|
dispatch::get_turns
|
||||||
<
|
<
|
||||||
typename tag<Geometry1>::type,
|
tag_t<Geometry1>,
|
||||||
typename tag<Geometry2>::type,
|
tag_t<Geometry2>,
|
||||||
Geometry1, Geometry2,
|
Geometry1, Geometry2,
|
||||||
Reverse1, Reverse2,
|
Reverse1, Reverse2,
|
||||||
TurnPolicy
|
TurnPolicy
|
||||||
|
@ -313,8 +313,8 @@ struct intersection_of_linestring_with_areal
|
|||||||
|
|
||||||
dispatch::get_turns
|
dispatch::get_turns
|
||||||
<
|
<
|
||||||
typename geometry::tag<LineString>::type,
|
geometry::tag_t<LineString>,
|
||||||
typename geometry::tag<Areal>::type,
|
geometry::tag_t<Areal>,
|
||||||
LineString,
|
LineString,
|
||||||
Areal,
|
Areal,
|
||||||
false,
|
false,
|
||||||
@ -443,8 +443,8 @@ struct intersection_linear_areal_point
|
|||||||
|
|
||||||
dispatch::get_turns
|
dispatch::get_turns
|
||||||
<
|
<
|
||||||
typename geometry::tag<Geometry1>::type,
|
geometry::tag_t<Geometry1>,
|
||||||
typename geometry::tag<Geometry2>::type,
|
geometry::tag_t<Geometry2>,
|
||||||
Geometry1,
|
Geometry1,
|
||||||
Geometry2,
|
Geometry2,
|
||||||
false,
|
false,
|
||||||
|
@ -252,7 +252,7 @@ public:
|
|||||||
LinestringOut,
|
LinestringOut,
|
||||||
OverlayType,
|
OverlayType,
|
||||||
Linear1,
|
Linear1,
|
||||||
typename tag<Linear1>::type
|
tag_t<Linear1>
|
||||||
>::apply(linear1, oit);
|
>::apply(linear1, oit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -299,7 +299,7 @@ struct linear_linear_linestring
|
|||||||
LinestringOut,
|
LinestringOut,
|
||||||
overlay_difference,
|
overlay_difference,
|
||||||
Linear1,
|
Linear1,
|
||||||
typename tag<Linear1>::type
|
tag_t<Linear1>
|
||||||
>::apply(linear1, oit);
|
>::apply(linear1, oit);
|
||||||
|
|
||||||
return linear_linear_linestring
|
return linear_linear_linestring
|
||||||
|
@ -31,7 +31,7 @@ namespace detail { namespace overlay
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct needs_self_turns
|
struct needs_self_turns
|
||||||
{
|
{
|
||||||
|
@ -53,7 +53,7 @@ template
|
|||||||
<
|
<
|
||||||
typename PointOut,
|
typename PointOut,
|
||||||
typename GeometryIn,
|
typename GeometryIn,
|
||||||
typename TagIn = typename tag<GeometryIn>::type
|
typename TagIn = tag_t<GeometryIn>
|
||||||
>
|
>
|
||||||
struct copy_points
|
struct copy_points
|
||||||
: not_implemented<PointOut, GeometryIn>
|
: not_implemented<PointOut, GeometryIn>
|
||||||
@ -421,8 +421,8 @@ struct union_pointlike_pointlike_point
|
|||||||
return detail_dispatch::overlay::pointlike_pointlike_point
|
return detail_dispatch::overlay::pointlike_pointlike_point
|
||||||
<
|
<
|
||||||
PointLike2, PointLike1, PointOut, overlay_difference,
|
PointLike2, PointLike1, PointOut, overlay_difference,
|
||||||
typename tag<PointLike2>::type,
|
tag_t<PointLike2>,
|
||||||
typename tag<PointLike1>::type
|
tag_t<PointLike1>
|
||||||
>::apply(pointlike2, pointlike1, oit, strategy);
|
>::apply(pointlike2, pointlike1, oit, strategy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ namespace detail { namespace overlay
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename geometry::tag<Geometry>::type
|
typename Tag = geometry::tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct points_range
|
struct points_range
|
||||||
{
|
{
|
||||||
@ -80,7 +80,7 @@ struct points_range<Box, box_tag>
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename geometry::tag<Geometry>::type
|
typename Tag = geometry::tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct point_in_geometry_helper
|
struct point_in_geometry_helper
|
||||||
{
|
{
|
||||||
|
@ -307,8 +307,8 @@ inline void select_rings(Geometry1 const& geometry1, Geometry2 const& geometry2,
|
|||||||
RingPropertyMap& selected_ring_properties,
|
RingPropertyMap& selected_ring_properties,
|
||||||
Strategy const& strategy)
|
Strategy const& strategy)
|
||||||
{
|
{
|
||||||
typedef typename geometry::tag<Geometry1>::type tag1;
|
using tag1 = geometry::tag_t<Geometry1>;
|
||||||
typedef typename geometry::tag<Geometry2>::type tag2;
|
using tag2 = geometry::tag_t<Geometry2>;
|
||||||
|
|
||||||
RingPropertyMap all_ring_properties;
|
RingPropertyMap all_ring_properties;
|
||||||
dispatch::select_rings<tag1, Geometry1>::apply(geometry1, geometry2,
|
dispatch::select_rings<tag1, Geometry1>::apply(geometry1, geometry2,
|
||||||
@ -336,10 +336,8 @@ inline void select_rings(Geometry const& geometry,
|
|||||||
RingPropertyMap& selected_ring_properties,
|
RingPropertyMap& selected_ring_properties,
|
||||||
Strategy const& strategy)
|
Strategy const& strategy)
|
||||||
{
|
{
|
||||||
typedef typename geometry::tag<Geometry>::type tag;
|
|
||||||
|
|
||||||
RingPropertyMap all_ring_properties;
|
RingPropertyMap all_ring_properties;
|
||||||
dispatch::select_rings<tag, Geometry>::apply(geometry,
|
dispatch::select_rings<geometry::tag_t<Geometry>, Geometry>::apply(geometry,
|
||||||
ring_identifier(0, -1, -1), all_ring_properties,
|
ring_identifier(0, -1, -1), all_ring_properties,
|
||||||
strategy);
|
strategy);
|
||||||
|
|
||||||
|
@ -288,7 +288,7 @@ struct self_get_turn_points
|
|||||||
dispatch::self_get_turn_points
|
dispatch::self_get_turn_points
|
||||||
<
|
<
|
||||||
Reverse,
|
Reverse,
|
||||||
typename tag<Geometry>::type,
|
tag_t<Geometry>,
|
||||||
Geometry,
|
Geometry,
|
||||||
turn_policy
|
turn_policy
|
||||||
>::apply(geometry, strategies, turns, interrupt_policy,
|
>::apply(geometry, strategies, turns, interrupt_policy,
|
||||||
|
@ -53,7 +53,7 @@ inline bool point_is_spike_or_equal(Point1 const& last_point, // prev | back
|
|||||||
Point3 const& segment_b, // curr | back - 1 | spike's vertex
|
Point3 const& segment_b, // curr | back - 1 | spike's vertex
|
||||||
SideStrategy const& strategy)
|
SideStrategy const& strategy)
|
||||||
{
|
{
|
||||||
typedef typename SideStrategy::cs_tag cs_tag;
|
using cs_tag = typename SideStrategy::cs_tag;
|
||||||
|
|
||||||
int const side = strategy.apply(segment_a, segment_b, last_point);
|
int const side = strategy.apply(segment_a, segment_b, last_point);
|
||||||
if (side == 0)
|
if (side == 0)
|
||||||
|
@ -214,7 +214,7 @@ inline bool point_on_border(Point& point, Geometry const& geometry)
|
|||||||
|
|
||||||
return dispatch::point_on_border
|
return dispatch::point_on_border
|
||||||
<
|
<
|
||||||
typename tag<Geometry>::type
|
tag_t<Geometry>
|
||||||
>::apply(point, geometry);
|
>::apply(point, geometry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Strategy,
|
typename Strategy,
|
||||||
typename Tag = typename geometry::tag<Geometry>::type
|
typename Tag = geometry::tag_t<Geometry>
|
||||||
>
|
>
|
||||||
class boundary_checker {};
|
class boundary_checker {};
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ template
|
|||||||
<
|
<
|
||||||
std::size_t OpId,
|
std::size_t OpId,
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename geometry::tag<Geometry>::type,
|
typename Tag = geometry::tag_t<Geometry>,
|
||||||
bool IsMulti = util::is_multi<Geometry>::value
|
bool IsMulti = util::is_multi<Geometry>::value
|
||||||
>
|
>
|
||||||
struct for_each_disjoint_geometry_if
|
struct for_each_disjoint_geometry_if
|
||||||
|
@ -62,8 +62,8 @@ namespace dispatch {
|
|||||||
|
|
||||||
template <typename Geometry1,
|
template <typename Geometry1,
|
||||||
typename Geometry2,
|
typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type,
|
typename Tag2 = geometry::tag_t<Geometry2>,
|
||||||
int TopDim1 = geometry::topological_dimension<Geometry1>::value,
|
int TopDim1 = geometry::topological_dimension<Geometry1>::value,
|
||||||
int TopDim2 = geometry::topological_dimension<Geometry2>::value,
|
int TopDim2 = geometry::topological_dimension<Geometry2>::value,
|
||||||
bool IsGeneric = detail::relate::is_generic<Geometry1, Geometry2>::value
|
bool IsGeneric = detail::relate::is_generic<Geometry1, Geometry2>::value
|
||||||
@ -231,8 +231,8 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct relate
|
struct relate
|
||||||
{
|
{
|
||||||
|
@ -51,7 +51,7 @@ namespace detail { namespace relate
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct multi_point_geometry_eb
|
struct multi_point_geometry_eb
|
||||||
{
|
{
|
||||||
|
@ -43,8 +43,8 @@ struct relate_impl_base
|
|||||||
>::value,
|
>::value,
|
||||||
not_implemented
|
not_implemented
|
||||||
<
|
<
|
||||||
typename geometry::tag<Geometry1>::type,
|
geometry::tag_t<Geometry1>,
|
||||||
typename geometry::tag<Geometry2>::type
|
geometry::tag_t<Geometry2>
|
||||||
>,
|
>,
|
||||||
implemented_tag
|
implemented_tag
|
||||||
>
|
>
|
||||||
|
@ -34,7 +34,7 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Strategy,
|
typename Strategy,
|
||||||
typename Tag = typename geometry::tag<Geometry>::type
|
typename Tag = geometry::tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct topology_check
|
struct topology_check
|
||||||
: not_implemented<Tag>
|
: not_implemented<Tag>
|
||||||
|
@ -94,8 +94,8 @@ struct get_turns
|
|||||||
|
|
||||||
dispatch::get_turns
|
dispatch::get_turns
|
||||||
<
|
<
|
||||||
typename geometry::tag<Geometry1>::type,
|
geometry::tag_t<Geometry1>,
|
||||||
typename geometry::tag<Geometry2>::type,
|
geometry::tag_t<Geometry2>,
|
||||||
Geometry1,
|
Geometry1,
|
||||||
Geometry2,
|
Geometry2,
|
||||||
reverse1,
|
reverse1,
|
||||||
|
@ -41,8 +41,8 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct relation
|
struct relation
|
||||||
{
|
{
|
||||||
|
@ -178,7 +178,7 @@ inline typename ring_return_type<Geometry const>::type
|
|||||||
|
|
||||||
return dispatch::range_by_section
|
return dispatch::range_by_section
|
||||||
<
|
<
|
||||||
typename tag<Geometry>::type,
|
tag_t<Geometry>,
|
||||||
Geometry,
|
Geometry,
|
||||||
Section
|
Section
|
||||||
>::apply(geometry, section);
|
>::apply(geometry, section);
|
||||||
|
@ -872,7 +872,7 @@ inline void sectionalize(Geometry const& geometry,
|
|||||||
|
|
||||||
dispatch::sectionalize
|
dispatch::sectionalize
|
||||||
<
|
<
|
||||||
typename tag<Geometry>::type,
|
tag_t<Geometry>,
|
||||||
Geometry,
|
Geometry,
|
||||||
Reverse,
|
Reverse,
|
||||||
DimensionVector
|
DimensionVector
|
||||||
|
@ -25,7 +25,7 @@ namespace detail
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct first_geometry_type
|
struct first_geometry_type
|
||||||
{
|
{
|
||||||
using type = Geometry;
|
using type = Geometry;
|
||||||
|
@ -37,7 +37,7 @@ namespace detail_dispatch {
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename geometry::tag<Geometry>::type,
|
typename Tag = geometry::tag_t<Geometry>,
|
||||||
bool IsMulti = util::is_multi<Geometry>::value
|
bool IsMulti = util::is_multi<Geometry>::value
|
||||||
>
|
>
|
||||||
struct sub_range : not_implemented<Tag>
|
struct sub_range : not_implemented<Tag>
|
||||||
|
@ -149,8 +149,8 @@ namespace resolve_dynamic {
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct touches
|
struct touches
|
||||||
{
|
{
|
||||||
@ -228,7 +228,7 @@ struct touches<Geometry1, Geometry2, dynamic_geometry_tag, dynamic_geometry_tag>
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename geometry::tag<Geometry>::type>
|
template <typename Geometry, typename Tag = geometry::tag_t<Geometry>>
|
||||||
struct self_touches;
|
struct self_touches;
|
||||||
|
|
||||||
template <typename Geometry>
|
template <typename Geometry>
|
||||||
|
@ -117,8 +117,7 @@ template <typename Tag>
|
|||||||
struct tupled_output_find_index_pred
|
struct tupled_output_find_index_pred
|
||||||
{
|
{
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct pred
|
struct pred : std::is_same<geometry::tag_t<T>, Tag>
|
||||||
: std::is_same<typename geometry::tag<T>::type, Tag>
|
|
||||||
{};
|
{};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -360,8 +359,7 @@ template <typename Tag>
|
|||||||
struct is_tag_same_as_pred
|
struct is_tag_same_as_pred
|
||||||
{
|
{
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct pred
|
struct pred : std::is_same<geometry::tag_t<T>, Tag>
|
||||||
: std::is_same<typename geometry::tag<T>::type, Tag>
|
|
||||||
{};
|
{};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -374,7 +372,7 @@ template
|
|||||||
typename GeometryOut,
|
typename GeometryOut,
|
||||||
typename Tag,
|
typename Tag,
|
||||||
typename DefaultTag,
|
typename DefaultTag,
|
||||||
typename GeometryTag = typename geometry::tag<GeometryOut>::type
|
typename GeometryTag = geometry::tag_t<GeometryOut>
|
||||||
>
|
>
|
||||||
struct output_geometry_access
|
struct output_geometry_access
|
||||||
{};
|
{};
|
||||||
@ -474,7 +472,7 @@ struct setop_insert_output_tag
|
|||||||
<
|
<
|
||||||
geometry::detail::is_tupled_single_output<GeometryOut>::value,
|
geometry::detail::is_tupled_single_output<GeometryOut>::value,
|
||||||
tupled_output_tag,
|
tupled_output_tag,
|
||||||
typename geometry::tag<GeometryOut>::type
|
geometry::tag_t<GeometryOut>
|
||||||
>
|
>
|
||||||
{};
|
{};
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ namespace boost { namespace geometry
|
|||||||
namespace dispatch
|
namespace dispatch
|
||||||
{
|
{
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct visit_one
|
struct visit_one
|
||||||
{
|
{
|
||||||
template <typename F, typename G>
|
template <typename F, typename G>
|
||||||
@ -65,8 +65,8 @@ struct visit_one<Geometry, dynamic_geometry_tag>
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename tag<Geometry1>::type,
|
typename Tag1 = tag_t<Geometry1>,
|
||||||
typename Tag2 = typename tag<Geometry2>::type
|
typename Tag2 = tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct visit_two
|
struct visit_two
|
||||||
{
|
{
|
||||||
@ -144,7 +144,7 @@ struct visit_two<Geometry1, Geometry2, dynamic_geometry_tag, dynamic_geometry_ta
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct visit_breadth_first
|
struct visit_breadth_first
|
||||||
{
|
{
|
||||||
template <typename F, typename G>
|
template <typename F, typename G>
|
||||||
|
@ -46,8 +46,8 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry1,
|
typename Geometry1,
|
||||||
typename Geometry2,
|
typename Geometry2,
|
||||||
typename Tag1 = typename tag<Geometry1>::type,
|
typename Tag1 = tag_t<Geometry1>,
|
||||||
typename Tag2 = typename tag<Geometry2>::type
|
typename Tag2 = tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct within
|
struct within
|
||||||
: not_implemented<Tag1, Tag2>
|
: not_implemented<Tag1, Tag2>
|
||||||
@ -130,8 +130,8 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct within
|
struct within
|
||||||
{
|
{
|
||||||
|
@ -71,8 +71,7 @@ namespace detail_dispatch { namespace within {
|
|||||||
// returns 0 if P is on the boundry of G
|
// returns 0 if P is on the boundry of G
|
||||||
// returns -1 if P is in the exterior of G
|
// returns -1 if P is in the exterior of G
|
||||||
|
|
||||||
template <typename Geometry,
|
template <typename Geometry, typename Tag = geometry::tag_t<Geometry>>
|
||||||
typename Tag = typename geometry::tag<Geometry>::type>
|
|
||||||
struct point_in_geometry
|
struct point_in_geometry
|
||||||
: not_implemented<Tag>
|
: not_implemented<Tag>
|
||||||
{};
|
{};
|
||||||
|
@ -332,9 +332,9 @@ namespace resolve_collection
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2, typename Collection,
|
typename Geometry1, typename Geometry2, typename Collection,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type,
|
typename Tag2 = geometry::tag_t<Geometry2>,
|
||||||
typename CollectionTag = typename geometry::tag<Collection>::type
|
typename CollectionTag = geometry::tag_t<Collection>
|
||||||
>
|
>
|
||||||
struct difference
|
struct difference
|
||||||
{
|
{
|
||||||
@ -577,8 +577,8 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct difference
|
struct difference
|
||||||
{
|
{
|
||||||
|
@ -145,8 +145,8 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry1,
|
typename Geometry1,
|
||||||
typename Geometry2,
|
typename Geometry2,
|
||||||
typename Tag1 = typename tag<Geometry1>::type,
|
typename Tag1 = tag_t<Geometry1>,
|
||||||
typename Tag2 = typename tag<Geometry2>::type
|
typename Tag2 = tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct discrete_frechet_distance : not_implemented<Tag1, Tag2>
|
struct discrete_frechet_distance : not_implemented<Tag1, Tag2>
|
||||||
{};
|
{};
|
||||||
|
@ -215,8 +215,8 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry1,
|
typename Geometry1,
|
||||||
typename Geometry2,
|
typename Geometry2,
|
||||||
typename Tag1 = typename tag<Geometry1>::type,
|
typename Tag1 = tag_t<Geometry1>,
|
||||||
typename Tag2 = typename tag<Geometry2>::type
|
typename Tag2 = tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct discrete_hausdorff_distance : not_implemented<Tag1, Tag2>
|
struct discrete_hausdorff_distance : not_implemented<Tag1, Tag2>
|
||||||
{};
|
{};
|
||||||
|
@ -36,7 +36,7 @@ namespace dispatch
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct envelope : not_implemented<Tag>
|
struct envelope : not_implemented<Tag>
|
||||||
{};
|
{};
|
||||||
|
@ -40,8 +40,8 @@ namespace dispatch
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename GeometryOut, typename Geometry,
|
typename GeometryOut, typename Geometry,
|
||||||
typename TagOut = typename tag<GeometryOut>::type,
|
typename TagOut = tag_t<GeometryOut>,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct expand : not_implemented<TagOut, Tag>
|
struct expand : not_implemented<TagOut, Tag>
|
||||||
{};
|
{};
|
||||||
|
@ -23,7 +23,7 @@ namespace dispatch
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct is_simple
|
struct is_simple
|
||||||
: not_implemented<Geometry>
|
: not_implemented<Geometry>
|
||||||
{};
|
{};
|
||||||
|
@ -26,7 +26,7 @@ namespace dispatch
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type,
|
typename Tag = tag_t<Geometry>,
|
||||||
// for multi-geometries: determines if empty multi-geometries are allowed
|
// for multi-geometries: determines if empty multi-geometries are allowed
|
||||||
bool AllowEmptyMultiGeometries = true
|
bool AllowEmptyMultiGeometries = true
|
||||||
>
|
>
|
||||||
|
@ -427,7 +427,7 @@ struct for_each_point<MultiGeometry, multi_tag>
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct for_each_segment: not_implemented<Tag>
|
struct for_each_segment: not_implemented<Tag>
|
||||||
{};
|
{};
|
||||||
|
@ -154,7 +154,7 @@ namespace dispatch
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct is_convex
|
struct is_convex
|
||||||
{
|
{
|
||||||
@ -264,7 +264,7 @@ struct is_convex<default_strategy, false>
|
|||||||
|
|
||||||
namespace resolve_dynamic {
|
namespace resolve_dynamic {
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct is_convex
|
struct is_convex
|
||||||
{
|
{
|
||||||
template <typename Strategy>
|
template <typename Strategy>
|
||||||
|
@ -94,7 +94,7 @@ struct multi_is_empty
|
|||||||
namespace dispatch
|
namespace dispatch
|
||||||
{
|
{
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct is_empty : not_implemented<Tag>
|
struct is_empty : not_implemented<Tag>
|
||||||
{};
|
{};
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ struct is_empty<Geometry, multi_polygon_tag>
|
|||||||
namespace resolve_dynamic
|
namespace resolve_dynamic
|
||||||
{
|
{
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct is_empty
|
struct is_empty
|
||||||
{
|
{
|
||||||
static inline bool apply(Geometry const& geometry)
|
static inline bool apply(Geometry const& geometry)
|
||||||
|
@ -116,7 +116,7 @@ namespace dispatch
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct length : detail::calculate_null
|
struct length : detail::calculate_null
|
||||||
{
|
{
|
||||||
typedef typename default_length_result<Geometry>::type return_type;
|
typedef typename default_length_result<Geometry>::type return_type;
|
||||||
@ -220,7 +220,7 @@ struct length<default_strategy, false>
|
|||||||
|
|
||||||
namespace resolve_dynamic {
|
namespace resolve_dynamic {
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename geometry::tag<Geometry>::type>
|
template <typename Geometry, typename Tag = geometry::tag_t<Geometry>>
|
||||||
struct length
|
struct length
|
||||||
{
|
{
|
||||||
template <typename Strategy>
|
template <typename Strategy>
|
||||||
|
@ -187,8 +187,8 @@ template
|
|||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Pointlike,
|
typename Pointlike,
|
||||||
typename Tag1 = typename tag<Geometry>::type,
|
typename Tag1 = tag_t<Geometry>,
|
||||||
typename Tag2 = typename tag<Pointlike>::type
|
typename Tag2 = tag_t<Pointlike>
|
||||||
>
|
>
|
||||||
struct line_interpolate
|
struct line_interpolate
|
||||||
{
|
{
|
||||||
|
@ -94,7 +94,7 @@ inline Geometry make(Type const& c1, Type const& c2)
|
|||||||
Geometry geometry;
|
Geometry geometry;
|
||||||
dispatch::assign
|
dispatch::assign
|
||||||
<
|
<
|
||||||
typename tag<Geometry>::type,
|
tag_t<Geometry>,
|
||||||
Geometry,
|
Geometry,
|
||||||
geometry::dimension<Geometry>::type::value
|
geometry::dimension<Geometry>::type::value
|
||||||
>::apply(geometry, c1, c2);
|
>::apply(geometry, c1, c2);
|
||||||
@ -150,7 +150,7 @@ inline Geometry make(Type const& c1, Type const& c2, Type const& c3)
|
|||||||
Geometry geometry;
|
Geometry geometry;
|
||||||
dispatch::assign
|
dispatch::assign
|
||||||
<
|
<
|
||||||
typename tag<Geometry>::type,
|
tag_t<Geometry>,
|
||||||
Geometry,
|
Geometry,
|
||||||
geometry::dimension<Geometry>::type::value
|
geometry::dimension<Geometry>::type::value
|
||||||
>::apply(geometry, c1, c2, c3);
|
>::apply(geometry, c1, c2, c3);
|
||||||
@ -181,7 +181,7 @@ inline Geometry make(Type const& c1, Type const& c2, Type const& c3, Type const&
|
|||||||
Geometry geometry;
|
Geometry geometry;
|
||||||
dispatch::assign
|
dispatch::assign
|
||||||
<
|
<
|
||||||
typename tag<Geometry>::type,
|
tag_t<Geometry>,
|
||||||
Geometry,
|
Geometry,
|
||||||
geometry::dimension<Geometry>::type::value
|
geometry::dimension<Geometry>::type::value
|
||||||
>::apply(geometry, c1, c2, c3, c4);
|
>::apply(geometry, c1, c2, c3, c4);
|
||||||
@ -217,7 +217,7 @@ inline Geometry make_inverse()
|
|||||||
Geometry geometry;
|
Geometry geometry;
|
||||||
dispatch::assign_inverse
|
dispatch::assign_inverse
|
||||||
<
|
<
|
||||||
typename tag<Geometry>::type,
|
tag_t<Geometry>,
|
||||||
Geometry
|
Geometry
|
||||||
>::apply(geometry);
|
>::apply(geometry);
|
||||||
return geometry;
|
return geometry;
|
||||||
@ -238,7 +238,7 @@ inline Geometry make_zero()
|
|||||||
Geometry geometry;
|
Geometry geometry;
|
||||||
dispatch::assign_zero
|
dispatch::assign_zero
|
||||||
<
|
<
|
||||||
typename tag<Geometry>::type,
|
tag_t<Geometry>,
|
||||||
Geometry
|
Geometry
|
||||||
>::apply(geometry);
|
>::apply(geometry);
|
||||||
return geometry;
|
return geometry;
|
||||||
|
@ -346,7 +346,7 @@ namespace dispatch
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct merge_elements
|
struct merge_elements
|
||||||
: not_implemented<Geometry, Tag>
|
: not_implemented<Geometry, Tag>
|
||||||
{};
|
{};
|
||||||
|
@ -46,7 +46,7 @@ namespace dispatch
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct num_interior_rings
|
struct num_interior_rings
|
||||||
: detail::counting::other_count<0>
|
: detail::counting::other_count<0>
|
||||||
{};
|
{};
|
||||||
|
@ -139,7 +139,7 @@ struct num_points<Geometry, AddForOpen, multi_tag>
|
|||||||
namespace resolve_dynamic
|
namespace resolve_dynamic
|
||||||
{
|
{
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct num_points
|
struct num_points
|
||||||
{
|
{
|
||||||
static inline std::size_t apply(Geometry const& geometry, bool add_for_open)
|
static inline std::size_t apply(Geometry const& geometry, bool add_for_open)
|
||||||
|
@ -66,7 +66,7 @@ struct range_count
|
|||||||
namespace dispatch
|
namespace dispatch
|
||||||
{
|
{
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct num_segments
|
struct num_segments
|
||||||
: not_implemented<Tag>
|
: not_implemented<Tag>
|
||||||
{};
|
{};
|
||||||
@ -140,7 +140,7 @@ namespace resolve_dynamic
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct num_segments
|
struct num_segments
|
||||||
{
|
{
|
||||||
static inline std::size_t apply(Geometry const& geometry)
|
static inline std::size_t apply(Geometry const& geometry)
|
||||||
|
@ -51,7 +51,7 @@ namespace dispatch
|
|||||||
{
|
{
|
||||||
|
|
||||||
// Default perimeter is 0.0, specializations implement calculated values
|
// Default perimeter is 0.0, specializations implement calculated values
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct perimeter : detail::calculate_null
|
struct perimeter : detail::calculate_null
|
||||||
{
|
{
|
||||||
typedef typename default_length_result<Geometry>::type return_type;
|
typedef typename default_length_result<Geometry>::type return_type;
|
||||||
@ -163,7 +163,7 @@ struct perimeter<default_strategy, false>
|
|||||||
|
|
||||||
namespace resolve_dynamic {
|
namespace resolve_dynamic {
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename geometry::tag<Geometry>::type>
|
template <typename Geometry, typename Tag = geometry::tag_t<Geometry>>
|
||||||
struct perimeter
|
struct perimeter
|
||||||
{
|
{
|
||||||
template <typename Strategy>
|
template <typename Strategy>
|
||||||
|
@ -206,7 +206,7 @@ namespace dispatch
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct remove_spikes
|
struct remove_spikes
|
||||||
{
|
{
|
||||||
|
@ -79,7 +79,7 @@ namespace dispatch
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct reverse
|
struct reverse
|
||||||
{
|
{
|
||||||
static inline void apply(Geometry&)
|
static inline void apply(Geometry&)
|
||||||
@ -125,7 +125,7 @@ struct reverse<Geometry, multi_polygon_tag>
|
|||||||
namespace resolve_dynamic
|
namespace resolve_dynamic
|
||||||
{
|
{
|
||||||
|
|
||||||
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
|
template <typename Geometry, typename Tag = tag_t<Geometry>>
|
||||||
struct reverse
|
struct reverse
|
||||||
{
|
{
|
||||||
static void apply(Geometry& geometry)
|
static void apply(Geometry& geometry)
|
||||||
|
@ -653,11 +653,7 @@ struct has_same_tag_as
|
|||||||
{
|
{
|
||||||
template <typename OtherGeometry>
|
template <typename OtherGeometry>
|
||||||
struct pred
|
struct pred
|
||||||
: std::is_same
|
: std::is_same<geometry::tag_t<Geometry>, geometry::tag_t<OtherGeometry>>
|
||||||
<
|
|
||||||
typename geometry::tag<Geometry>::type,
|
|
||||||
typename geometry::tag<OtherGeometry>::type
|
|
||||||
>
|
|
||||||
{};
|
{};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -689,8 +685,8 @@ template
|
|||||||
<
|
<
|
||||||
typename GeometryIn,
|
typename GeometryIn,
|
||||||
typename GeometryOut,
|
typename GeometryOut,
|
||||||
typename TagIn = typename tag<GeometryIn>::type,
|
typename TagIn = tag_t<GeometryIn>,
|
||||||
typename TagOut = typename tag<GeometryOut>::type
|
typename TagOut = tag_t<GeometryOut>
|
||||||
>
|
>
|
||||||
struct simplify: not_implemented<TagIn, TagOut>
|
struct simplify: not_implemented<TagIn, TagOut>
|
||||||
{};
|
{};
|
||||||
@ -751,7 +747,7 @@ struct simplify<MultiPolygonIn, MultiPolygonOut, multi_polygon_tag, multi_polygo
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct simplify_insert: not_implemented<Tag>
|
struct simplify_insert: not_implemented<Tag>
|
||||||
{};
|
{};
|
||||||
@ -826,8 +822,8 @@ struct simplify<default_strategy, false>
|
|||||||
default_strategy)
|
default_strategy)
|
||||||
{
|
{
|
||||||
// NOTE: Alternatively take two geometry types in default_strategy
|
// NOTE: Alternatively take two geometry types in default_strategy
|
||||||
using cs_tag1_t = typename geometry::cs_tag<GeometryIn>::type;
|
using cs_tag1_t = geometry::cs_tag_t<GeometryIn>;
|
||||||
using cs_tag2_t = typename geometry::cs_tag<GeometryOut>::type;
|
using cs_tag2_t = geometry::cs_tag_t<GeometryOut>;
|
||||||
BOOST_GEOMETRY_STATIC_ASSERT(
|
BOOST_GEOMETRY_STATIC_ASSERT(
|
||||||
(std::is_same<cs_tag1_t, cs_tag2_t>::value),
|
(std::is_same<cs_tag1_t, cs_tag2_t>::value),
|
||||||
"Incompatible coordinate systems",
|
"Incompatible coordinate systems",
|
||||||
@ -915,8 +911,8 @@ namespace resolve_dynamic {
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename GeometryIn, typename GeometryOut,
|
typename GeometryIn, typename GeometryOut,
|
||||||
typename TagIn = typename tag<GeometryIn>::type,
|
typename TagIn = tag_t<GeometryIn>,
|
||||||
typename TagOut = typename tag<GeometryOut>::type
|
typename TagOut = tag_t<GeometryOut>
|
||||||
>
|
>
|
||||||
struct simplify
|
struct simplify
|
||||||
{
|
{
|
||||||
|
@ -486,9 +486,9 @@ namespace resolve_collection
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2, typename Collection,
|
typename Geometry1, typename Geometry2, typename Collection,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type,
|
typename Tag2 = geometry::tag_t<Geometry2>,
|
||||||
typename CollectionTag = typename geometry::tag<Collection>::type
|
typename CollectionTag = geometry::tag_t<Collection>
|
||||||
>
|
>
|
||||||
struct sym_difference
|
struct sym_difference
|
||||||
{
|
{
|
||||||
@ -680,8 +680,8 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct sym_difference
|
struct sym_difference
|
||||||
{
|
{
|
||||||
|
@ -363,9 +363,9 @@ namespace resolve_collection
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2, typename GeometryOut,
|
typename Geometry1, typename Geometry2, typename GeometryOut,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type,
|
typename Tag2 = geometry::tag_t<Geometry2>,
|
||||||
typename TagOut = typename geometry::tag<GeometryOut>::type
|
typename TagOut = geometry::tag_t<GeometryOut>
|
||||||
>
|
>
|
||||||
struct union_
|
struct union_
|
||||||
{
|
{
|
||||||
@ -720,8 +720,8 @@ namespace resolve_dynamic
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry1, typename Geometry2,
|
typename Geometry1, typename Geometry2,
|
||||||
typename Tag1 = typename geometry::tag<Geometry1>::type,
|
typename Tag1 = geometry::tag_t<Geometry1>,
|
||||||
typename Tag2 = typename geometry::tag<Geometry2>::type
|
typename Tag2 = geometry::tag_t<Geometry2>
|
||||||
>
|
>
|
||||||
struct union_
|
struct union_
|
||||||
{
|
{
|
||||||
|
@ -102,7 +102,7 @@ namespace dispatch
|
|||||||
template
|
template
|
||||||
<
|
<
|
||||||
typename Geometry,
|
typename Geometry,
|
||||||
typename Tag = typename tag<Geometry>::type
|
typename Tag = tag_t<Geometry>
|
||||||
>
|
>
|
||||||
struct unique
|
struct unique
|
||||||
{
|
{
|
||||||
|
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