summaryrefslogtreecommitdiff
path: root/boost/geometry/strategies/within.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/strategies/within.hpp')
-rw-r--r--boost/geometry/strategies/within.hpp51
1 files changed, 39 insertions, 12 deletions
diff --git a/boost/geometry/strategies/within.hpp b/boost/geometry/strategies/within.hpp
index d625bc40e6..28a3283db0 100644
--- a/boost/geometry/strategies/within.hpp
+++ b/boost/geometry/strategies/within.hpp
@@ -4,6 +4,11 @@
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+// This file was modified by Oracle on 2017.
+// Modifications copyright (c) 2017, 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
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -16,6 +21,12 @@
#include <boost/mpl/assert.hpp>
+#include <boost/geometry/core/cs.hpp>
+#include <boost/geometry/core/point_type.hpp>
+#include <boost/geometry/core/tag.hpp>
+#include <boost/geometry/core/tags.hpp>
+#include <boost/geometry/core/tag_cast.hpp>
+
namespace boost { namespace geometry
{
@@ -30,23 +41,39 @@ namespace services
/*!
\brief Traits class binding a within determination strategy to a coordinate system
\ingroup within
-\tparam TagContained tag (possibly casted) of point-type
-\tparam TagContained tag (possibly casted) of (possibly) containing type
-\tparam CsTagContained tag of coordinate system of point-type
-\tparam CsTagContaining tag of coordinate system of (possibly) containing type
-\tparam Geometry geometry-type of input (often point, or box)
+\tparam GeometryContained geometry-type of input (possibly) contained type
\tparam GeometryContaining geometry-type of input (possibly) containing type
+\tparam TagContained casted tag of (possibly) contained type
+\tparam TagContaining casted tag of (possibly) containing type
+\tparam CsTagContained tag of coordinate system of (possibly) contained type
+\tparam CsTagContaining tag of coordinate system of (possibly) containing type
*/
template
<
- typename TagContained,
- typename TagContaining,
- typename CastedTagContained,
- typename CastedTagContaining,
- typename CsTagContained,
- typename CsTagContaining,
typename GeometryContained,
- typename GeometryContaining
+ typename GeometryContaining,
+ typename TagContained = typename tag<GeometryContained>::type,
+ typename TagContaining = typename tag<GeometryContaining>::type,
+ typename CastedTagContained = typename tag_cast
+ <
+ typename tag<GeometryContained>::type,
+ pointlike_tag, linear_tag, polygonal_tag, areal_tag
+ >::type,
+ typename CastedTagContaining = typename tag_cast
+ <
+ typename tag<GeometryContaining>::type,
+ pointlike_tag, linear_tag, polygonal_tag, areal_tag
+ >::type,
+ typename CsTagContained = typename tag_cast
+ <
+ typename cs_tag<typename point_type<GeometryContained>::type>::type,
+ spherical_tag
+ >::type,
+ typename CsTagContaining = typename tag_cast
+ <
+ typename cs_tag<typename point_type<GeometryContaining>::type>::type,
+ spherical_tag
+ >::type
>
struct default_strategy
{