/usr/include/boost/geometry/strategies
Edit: /usr/include/boost/geometry/strategies/relate.hpp (4656B)
// Boost.Geometry
// Copyright (c) 2017, Oracle and/or its affiliates.
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
// Use, modification and distribution is subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_GEOMETRY_STRATEGIES_RELATE_HPP
#define BOOST_GEOMETRY_STRATEGIES_RELATE_HPP
#include
#include
#include
#include
#include
#include
#include
#include
namespace boost { namespace geometry
{
namespace strategy
{
namespace point_in_geometry
{
#ifndef DOXYGEN_NO_STRATEGY_SPECIALIZATIONS
namespace services
{
template
<
typename Point,
typename Geometry,
typename Tag1 = typename tag::type,
typename Tag2 = typename tag::type
>
struct default_strategy
: strategy::within::services::default_strategy
<
Point,
Geometry
>
{
typedef typename default_strategy::type within_strategy_type;
typedef typename strategy::covered_by::services::default_strategy
<
Point,
Geometry
>::type covered_by_strategy_type;
static const bool same_strategies = boost::is_same::value;
BOOST_MPL_ASSERT_MSG((same_strategies),
DEFAULT_WITHIN_AND_COVERED_BY_STRATEGIES_NOT_COMPATIBLE,
(within_strategy_type, covered_by_strategy_type));
};
template
struct default_strategy
: strategy::within::services::default_strategy
{};
template
struct default_strategy
: strategy::within::services::default_strategy
{};
} // namespace services
#endif // DOXYGEN_NO_STRATEGY_SPECIALIZATIONS
} // namespace point_in_geometry
namespace relate
{
#ifndef DOXYGEN_NO_DETAIL
namespace detail
{
template
struct default_intersection_strategy
: strategy::intersection::services::default_strategy
<
typename cs_tag::type
>
{};
template
struct default_point_in_geometry_strategy
: point_in_geometry::services::default_strategy
<
typename point_type::type,
Geometry
>
{};
} // namespace detail
#endif // DOXYGEN_NO_DETAIL
#ifndef DOXYGEN_NO_STRATEGY_SPECIALIZATIONS
namespace services
{
template
<
typename Geometry1,
typename Geometry2,
int TopDim1 = geometry::topological_dimension::value,
int TopDim2 = geometry::topological_dimension::value
>
struct default_strategy
{
BOOST_MPL_ASSERT_MSG
(
false, NOT_IMPLEMENTED_FOR_THESE_TYPES
, (types)
);
};
template
struct default_strategy
: detail::default_point_in_geometry_strategy
{};
template
struct default_strategy
: detail::default_point_in_geometry_strategy
{};
template
struct default_strategy
: detail::default_point_in_geometry_strategy
{};
template
struct default_strategy
: detail::default_intersection_strategy
{};
template
struct default_strategy
: detail::default_intersection_strategy
{};
template
struct default_strategy
: detail::default_intersection_strategy
{};
template
struct default_strategy
: detail::default_intersection_strategy
{};
} // namespace services
#endif // DOXYGEN_NO_STRATEGY_SPECIALIZATIONS
} // namespace relate
} // namespace strategy
}} // namespace boost::geometry
#endif // BOOST_GEOMETRY_STRATEGIES_RELATE_HPP