Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:36:47

0001 // Boost.Geometry
0002 
0003 // Copyright (c) 2017-2021 Oracle and/or its affiliates.
0004 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
0005 
0006 // Use, modification and distribution is subject to the Boost Software License,
0007 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0008 // http://www.boost.org/LICENSE_1_0.txt)
0009 
0010 #ifndef BOOST_GEOMETRY_STRATEGY_GEOGRAPHIC_POINT_IN_POLY_WINDING_HPP
0011 #define BOOST_GEOMETRY_STRATEGY_GEOGRAPHIC_POINT_IN_POLY_WINDING_HPP
0012 
0013 
0014 #include <boost/geometry/strategies/geographic/side.hpp>
0015 #include <boost/geometry/strategies/spherical/point_in_poly_winding.hpp>
0016 
0017 
0018 namespace boost { namespace geometry
0019 {
0020 
0021 namespace strategy { namespace within
0022 {
0023 
0024 
0025 /*!
0026 \brief Within detection using winding rule in geographic coordinate system.
0027 \ingroup strategies
0028 \tparam Point \tparam_point
0029 \tparam PointOfSegment \tparam_segment_point
0030 \tparam FormulaPolicy Geodesic formula policy
0031 \tparam Spheroid Spheroid model
0032 \tparam CalculationType \tparam_calculation
0033 
0034 \qbk{
0035 [heading See also]
0036 [link geometry.reference.algorithms.within.within_3_with_strategy within (with strategy)]
0037 }
0038  */
0039 template
0040 <
0041     typename Point = void, // for backward compatibility
0042     typename PointOfSegment = Point, // for backward compatibility
0043     typename FormulaPolicy = strategy::andoyer,
0044     typename Spheroid = srs::spheroid<double>,
0045     typename CalculationType = void
0046 >
0047 class geographic_winding
0048     : public within::detail::spherical_winding_base
0049         <
0050             side::geographic<FormulaPolicy, Spheroid, CalculationType>,
0051             CalculationType
0052         >
0053 {
0054     typedef within::detail::spherical_winding_base
0055         <
0056             side::geographic<FormulaPolicy, Spheroid, CalculationType>,
0057             CalculationType
0058         > base_t;
0059 
0060 public:
0061     geographic_winding()
0062     {}
0063 
0064     explicit geographic_winding(Spheroid const& model)
0065         : base_t(model)
0066     {}
0067 
0068     Spheroid const& model() const
0069     {
0070         return base_t::m_side_strategy.model();
0071     }
0072 };
0073 
0074 
0075 }} // namespace strategy::within
0076 
0077 
0078 }} // namespace boost::geometry
0079 
0080 
0081 #endif // BOOST_GEOMETRY_STRATEGY_GEOGRAPHIC_POINT_IN_POLY_WINDING_HPP