mirror of
https://github.com/boostorg/geometry.git
synced 2026-02-20 14:52:10 +00:00
added robust_policy which is, for linear/linear or pointlike/pointlike,
not used in the end
This commit is contained in:
@@ -224,10 +224,11 @@ protected:
|
||||
public:
|
||||
template
|
||||
<
|
||||
typename OutputIterator, typename Strategy
|
||||
typename RobustPolicy, typename OutputIterator, typename Strategy
|
||||
>
|
||||
static inline OutputIterator apply(Linear1 const& linear1,
|
||||
Linear2 const& linear2,
|
||||
RobustPolicy const&,
|
||||
OutputIterator oit,
|
||||
Strategy const& )
|
||||
{
|
||||
@@ -281,10 +282,11 @@ struct linear_linear_linestring
|
||||
{
|
||||
template
|
||||
<
|
||||
typename OutputIterator, typename Strategy
|
||||
typename RobustPolicy, typename OutputIterator, typename Strategy
|
||||
>
|
||||
static inline OutputIterator apply(Linear1 const& linear1,
|
||||
Linear2 const& linear2,
|
||||
RobustPolicy const& robust_policy,
|
||||
OutputIterator oit,
|
||||
Strategy const& strategy)
|
||||
{
|
||||
@@ -301,7 +303,7 @@ struct linear_linear_linestring
|
||||
Linear2, Linear1, LinestringOut, overlay_difference,
|
||||
EnableFilterContinueTurns, EnableRemoveDuplicateTurns,
|
||||
EnableDegenerateTurns
|
||||
>::apply(linear2, linear1, oit, strategy);
|
||||
>::apply(linear2, linear1, robust_policy, oit, strategy);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -142,9 +142,10 @@ template
|
||||
>
|
||||
struct point_point_point
|
||||
{
|
||||
template <typename OutputIterator, typename Strategy>
|
||||
template <typename RobustPolicy, typename OutputIterator, typename Strategy>
|
||||
static inline OutputIterator apply(Point1 const& point1,
|
||||
Point2 const& point2,
|
||||
RobustPolicy const& ,
|
||||
OutputIterator oit,
|
||||
Strategy const&)
|
||||
{
|
||||
@@ -175,9 +176,10 @@ template
|
||||
>
|
||||
struct multipoint_point_point
|
||||
{
|
||||
template <typename OutputIterator, typename Strategy>
|
||||
template <typename RobustPolicy, typename OutputIterator, typename Strategy>
|
||||
static inline OutputIterator apply(MultiPoint const& multipoint,
|
||||
Point const& point,
|
||||
RobustPolicy const& ,
|
||||
OutputIterator oit,
|
||||
Strategy const&)
|
||||
{
|
||||
@@ -209,9 +211,10 @@ template
|
||||
>
|
||||
struct point_multipoint_point
|
||||
{
|
||||
template <typename OutputIterator, typename Strategy>
|
||||
template <typename RobustPolicy, typename OutputIterator, typename Strategy>
|
||||
static inline OutputIterator apply(Point const& point,
|
||||
MultiPoint const& multipoint,
|
||||
RobustPolicy const& ,
|
||||
OutputIterator oit,
|
||||
Strategy const&)
|
||||
{
|
||||
@@ -244,9 +247,10 @@ template
|
||||
>
|
||||
struct multipoint_multipoint_point
|
||||
{
|
||||
template <typename OutputIterator, typename Strategy>
|
||||
template <typename RobustPolicy, typename OutputIterator, typename Strategy>
|
||||
static inline OutputIterator apply(MultiPoint1 const& multipoint1,
|
||||
MultiPoint2 const& multipoint2,
|
||||
RobustPolicy const& robust_policy,
|
||||
OutputIterator oit,
|
||||
Strategy const& strategy)
|
||||
{
|
||||
@@ -256,7 +260,7 @@ struct multipoint_multipoint_point
|
||||
return multipoint_multipoint_point
|
||||
<
|
||||
MultiPoint2, MultiPoint1, PointOut, OverlayType
|
||||
>::apply(multipoint2, multipoint1, oit, strategy);
|
||||
>::apply(multipoint2, multipoint1, robust_policy, oit, strategy);
|
||||
}
|
||||
|
||||
std::vector<typename point_type<MultiPoint2>::type>
|
||||
@@ -399,9 +403,10 @@ template
|
||||
>
|
||||
struct union_pointlike_pointlike_point
|
||||
{
|
||||
template <typename OutputIterator, typename Strategy>
|
||||
template <typename RobustPolicy, typename OutputIterator, typename Strategy>
|
||||
static inline OutputIterator apply(PointLike1 const& pointlike1,
|
||||
PointLike2 const& pointlike2,
|
||||
RobustPolicy const& robust_policy,
|
||||
OutputIterator oit,
|
||||
Strategy const& strategy)
|
||||
{
|
||||
@@ -412,7 +417,7 @@ struct union_pointlike_pointlike_point
|
||||
PointLike2, PointLike1, PointOut, overlay_difference,
|
||||
typename tag<PointLike2>::type,
|
||||
typename tag<PointLike1>::type
|
||||
>::apply(pointlike2, pointlike1, oit, strategy);
|
||||
>::apply(pointlike2, pointlike1, robust_policy, oit, strategy);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
@@ -45,10 +45,13 @@ struct intersection_multi_linestring_multi_linestring_point
|
||||
template
|
||||
<
|
||||
typename MultiLinestring1, typename MultiLinestring2,
|
||||
typename RobustPolicy,
|
||||
typename OutputIterator, typename Strategy
|
||||
>
|
||||
static inline OutputIterator apply(MultiLinestring1 const& ml1,
|
||||
MultiLinestring2 const& ml2, OutputIterator out,
|
||||
MultiLinestring2 const& ml2,
|
||||
RobustPolicy const& robust_policy,
|
||||
OutputIterator out,
|
||||
Strategy const& strategy)
|
||||
{
|
||||
// Note, this loop is quadratic w.r.t. number of linestrings per input.
|
||||
@@ -68,7 +71,7 @@ struct intersection_multi_linestring_multi_linestring_point
|
||||
++it2)
|
||||
{
|
||||
out = intersection_linestring_linestring_point<PointOut>
|
||||
::apply(*it1, *it2, out, strategy);
|
||||
::apply(*it1, *it2, robust_policy, out, strategy);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,10 +86,13 @@ struct intersection_linestring_multi_linestring_point
|
||||
template
|
||||
<
|
||||
typename Linestring, typename MultiLinestring,
|
||||
typename RobustPolicy,
|
||||
typename OutputIterator, typename Strategy
|
||||
>
|
||||
static inline OutputIterator apply(Linestring const& linestring,
|
||||
MultiLinestring const& ml, OutputIterator out,
|
||||
MultiLinestring const& ml,
|
||||
RobustPolicy const& robust_policy,
|
||||
OutputIterator out,
|
||||
Strategy const& strategy)
|
||||
{
|
||||
for (typename boost::range_iterator
|
||||
@@ -97,7 +103,7 @@ struct intersection_linestring_multi_linestring_point
|
||||
++it)
|
||||
{
|
||||
out = intersection_linestring_linestring_point<PointOut>
|
||||
::apply(linestring, *it, out, strategy);
|
||||
::apply(linestring, *it, robust_policy, out, strategy);
|
||||
}
|
||||
|
||||
return out;
|
||||
|
||||
Reference in New Issue
Block a user