File indexing completed on 2025-01-18 09:36:47
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef BOOST_GEOMETRY_STRATEGIES_INDEX_SPHERICAL_HPP
0011 #define BOOST_GEOMETRY_STRATEGIES_INDEX_SPHERICAL_HPP
0012
0013
0014 #include <boost/geometry/strategies/distance/spherical.hpp>
0015 #include <boost/geometry/strategies/index/services.hpp>
0016
0017
0018 namespace boost { namespace geometry
0019 {
0020
0021 namespace strategies { namespace index
0022 {
0023
0024 #ifndef DOXYGEN_NO_DETAIL
0025 namespace detail
0026 {
0027
0028 template <typename RadiusTypeOrSphere, typename CalculationType>
0029 class spherical
0030 : public strategies::distance::detail::spherical<RadiusTypeOrSphere, CalculationType>
0031 {
0032 using base_t = strategies::distance::detail::spherical<RadiusTypeOrSphere, CalculationType>;
0033
0034 public:
0035 spherical() = default;
0036
0037 template <typename RadiusOrSphere>
0038 explicit spherical(RadiusOrSphere const& radius_or_sphere)
0039 : base_t(radius_or_sphere)
0040 {}
0041 };
0042
0043
0044 }
0045 #endif
0046
0047
0048 template <typename CalculationType = void>
0049 class spherical
0050 : public strategies::index::detail::spherical<void, CalculationType>
0051 {};
0052
0053
0054 namespace services
0055 {
0056
0057 template <typename Geometry>
0058 struct default_strategy<Geometry, spherical_tag>
0059 {
0060 using type = strategies::index::spherical<>;
0061 };
0062
0063 template <typename Geometry>
0064 struct default_strategy<Geometry, spherical_equatorial_tag>
0065 {
0066 using type = strategies::index::spherical<>;
0067 };
0068
0069 template <typename Geometry>
0070 struct default_strategy<Geometry, spherical_polar_tag>
0071 {
0072 using type = strategies::index::spherical<>;
0073 };
0074
0075
0076 }
0077
0078
0079 }}}}
0080
0081 #endif