Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-16 08:35:35

0001 // Boost.Geometry
0002 
0003 // Copyright (c) 2025 Adam Wulkiewicz, Lodz, Poland.
0004 
0005 // Copyright (c) 2020-2021, Oracle and/or its affiliates.
0006 
0007 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
0008 
0009 // Licensed under the Boost Software License version 1.0.
0010 // http://www.boost.org/users/license.html
0011 
0012 #ifndef BOOST_GEOMETRY_STRATEGIES_INDEX_SPHERICAL_HPP
0013 #define BOOST_GEOMETRY_STRATEGIES_INDEX_SPHERICAL_HPP
0014 
0015 
0016 #include <boost/geometry/strategies/centroid/spherical.hpp>
0017 #include <boost/geometry/strategies/distance/spherical.hpp>
0018 #include <boost/geometry/strategies/index/services.hpp>
0019 
0020 
0021 namespace boost { namespace geometry
0022 {
0023 
0024 namespace strategies { namespace index
0025 {
0026 
0027 #ifndef DOXYGEN_NO_DETAIL
0028 namespace detail
0029 {
0030 
0031 template <typename RadiusTypeOrSphere, typename CalculationType>
0032 class spherical
0033     : public strategies::distance::detail::spherical<RadiusTypeOrSphere, CalculationType>
0034     , public strategies::centroid::detail::spherical
0035 {
0036     using base_t = strategies::distance::detail::spherical<RadiusTypeOrSphere, CalculationType>;
0037 
0038 public:
0039     spherical() = default;
0040 
0041     template <typename RadiusOrSphere>
0042     explicit spherical(RadiusOrSphere const& radius_or_sphere)
0043         : base_t(radius_or_sphere)
0044     {}
0045 };
0046 
0047 
0048 } // namespace detail
0049 #endif // DOXYGEN_NO_DETAIL
0050 
0051 
0052 template <typename CalculationType = void>
0053 class spherical
0054     : public strategies::index::detail::spherical<void, CalculationType>
0055 {};
0056 
0057 
0058 namespace services
0059 {
0060 
0061 template <typename Geometry>
0062 struct default_strategy<Geometry, spherical_tag>
0063 {
0064     using type = strategies::index::spherical<>;
0065 };
0066 
0067 template <typename Geometry>
0068 struct default_strategy<Geometry, spherical_equatorial_tag>
0069 {
0070     using type = strategies::index::spherical<>;
0071 };
0072 
0073 template <typename Geometry>
0074 struct default_strategy<Geometry, spherical_polar_tag>
0075 {
0076     using type = strategies::index::spherical<>;
0077 };
0078 
0079 
0080 } // namespace services
0081 
0082 
0083 }}}} // namespace boost::geometry::strategy::index
0084 
0085 #endif // BOOST_GEOMETRY_STRATEGIES_INDEX_SPHERICAL_HPP