summaryrefslogtreecommitdiff
path: root/boost/geometry/strategies/spherical/point_in_poly_winding.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/strategies/spherical/point_in_poly_winding.hpp')
-rw-r--r--boost/geometry/strategies/spherical/point_in_poly_winding.hpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/boost/geometry/strategies/spherical/point_in_poly_winding.hpp b/boost/geometry/strategies/spherical/point_in_poly_winding.hpp
index c942cbe460..c283b53335 100644
--- a/boost/geometry/strategies/spherical/point_in_poly_winding.hpp
+++ b/boost/geometry/strategies/spherical/point_in_poly_winding.hpp
@@ -3,8 +3,8 @@
// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
// Copyright (c) 2013-2017 Adam Wulkiewicz, Lodz, Poland.
-// This file was modified by Oracle on 2013, 2014, 2016, 2017.
-// Modifications copyright (c) 2013-2017 Oracle and/or its affiliates.
+// This file was modified by Oracle on 2013, 2014, 2016, 2017, 2018.
+// Modifications copyright (c) 2013-2018 Oracle and/or its affiliates.
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
@@ -27,8 +27,10 @@
#include <boost/geometry/util/select_calculation_type.hpp>
#include <boost/geometry/util/normalize_spheroidal_coordinates.hpp>
+#include <boost/geometry/strategies/cartesian/point_in_box.hpp>
#include <boost/geometry/strategies/covered_by.hpp>
#include <boost/geometry/strategies/side.hpp>
+#include <boost/geometry/strategies/spherical/disjoint_box_box.hpp>
#include <boost/geometry/strategies/spherical/ssf.hpp>
#include <boost/geometry/strategies/within.hpp>
@@ -63,7 +65,7 @@ class spherical_winding_base
CalculationType
>::type calculation_type;
- typedef typename coordinate_system<Point>::type::units units_t;
+ typedef typename geometry::detail::cs_angular_units<Point>::type units_t;
typedef math::detail::constants_on_spheroid<calculation_type, units_t> constants;
/*! subclass to keep state */
@@ -140,6 +142,20 @@ public:
return m_side_strategy.get_disjoint_strategy();
}
+ typedef typename SideStrategy::equals_point_point_strategy_type equals_point_point_strategy_type;
+ inline equals_point_point_strategy_type get_equals_point_point_strategy() const
+ {
+ return m_side_strategy.get_equals_point_point_strategy();
+ }
+
+ typedef disjoint::spherical_box_box disjoint_box_box_strategy_type;
+ static inline disjoint_box_box_strategy_type get_disjoint_box_box_strategy()
+ {
+ return disjoint_box_box_strategy_type();
+ }
+
+ typedef covered_by::spherical_point_box disjoint_point_box_strategy_type;
+
spherical_winding_base()
{}
@@ -434,7 +450,7 @@ private:
count_info const& ci) const
{
typedef typename coordinate_type<PointOfSegment>::type scoord_t;
- typedef typename coordinate_system<PointOfSegment>::type::units units_t;
+ typedef typename geometry::detail::cs_angular_units<PointOfSegment>::type units_t;
if (math::equals(get<1>(point), get<1>(se)))
{