Merge pull request #51 from mkaravel/feature/distance-default-strategy

Feature/distance default strategy
This commit is contained in:
Barend Gehrels
2014-06-02 22:40:09 +02:00
5 changed files with 52 additions and 0 deletions

View File

@@ -251,6 +251,20 @@ struct default_strategy
> type;
};
template <typename PointOfSegment, typename Point, typename Strategy>
struct default_strategy
<
segment_tag, point_tag, PointOfSegment, Point,
cartesian_tag, cartesian_tag, Strategy
>
{
typedef typename default_strategy
<
point_tag, segment_tag, Point, PointOfSegment,
cartesian_tag, cartesian_tag, Strategy
>::type type;
};
} // namespace services
#endif // DOXYGEN_NO_STRATEGY_SPECIALIZATIONS

View File

@@ -322,6 +322,18 @@ struct default_strategy
typedef pythagoras_point_box<> type;
};
template <typename BoxPoint, typename Point>
struct default_strategy
<
box_tag, point_tag, BoxPoint, Point, cartesian_tag, cartesian_tag
>
{
typedef typename default_strategy
<
point_tag, box_tag, Point, BoxPoint, cartesian_tag, cartesian_tag
>::type type;
};
} // namespace services
#endif // DOXYGEN_NO_STRATEGY_SPECIALIZATIONS

View File

@@ -306,6 +306,22 @@ struct default_strategy
};
template <typename PointOfSegment, typename Point, typename Strategy>
struct default_strategy
<
segment_tag, point_tag, PointOfSegment, Point,
spherical_equatorial_tag, spherical_equatorial_tag,
Strategy
>
{
typedef typename default_strategy
<
point_tag, segment_tag, Point, PointOfSegment,
spherical_equatorial_tag, spherical_equatorial_tag,
Strategy
>::type type;
};
} // namespace services
#endif // DOXYGEN_NO_STRATEGY_SPECIALIZATIONS

View File

@@ -68,6 +68,11 @@ void test_distance(
<
bg::point_tag, bg::segment_tag, Point, Point
>::type cross_track_strategy_type;
typedef typename bg::strategy::distance::services::default_strategy
<
bg::segment_tag, bg::point_tag, Point, Point
>::type reversed_tags_cross_track_strategy_type;
}

View File

@@ -62,6 +62,11 @@ void test_services()
<
bg::point_tag, bg::segment_tag, P, PS
>::type projected_point_strategy_type;
typedef typename services::default_strategy
<
bg::segment_tag, bg::point_tag, PS, P
>::type reversed_tags_projected_point_strategy_type;
}
// 1: normal, calculate distance: