annotate DEPENDENCIES/generic/include/boost/geometry/policies/is_valid/default_policy.hpp @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents f46d142149f5
children
rev   line source
Chris@102 1 // Boost.Geometry (aka GGL, Generic Geometry Library)
Chris@102 2
Chris@102 3 // Copyright (c) 2015, Oracle and/or its affiliates.
Chris@102 4
Chris@102 5 // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
Chris@102 6
Chris@102 7 // Licensed under the Boost Software License version 1.0.
Chris@102 8 // http://www.boost.org/users/license.html
Chris@102 9
Chris@102 10 #ifndef BOOST_GEOMETRY_POLICIES_IS_VALID_DEFAULT_POLICY_HPP
Chris@102 11 #define BOOST_GEOMETRY_POLICIES_IS_VALID_DEFAULT_POLICY_HPP
Chris@102 12
Chris@102 13 #include <boost/geometry/algorithms/validity_failure_type.hpp>
Chris@102 14
Chris@102 15
Chris@102 16 namespace boost { namespace geometry
Chris@102 17 {
Chris@102 18
Chris@102 19
Chris@102 20 template <bool AllowDuplicates = true, bool AllowSpikes = true>
Chris@102 21 class is_valid_default_policy
Chris@102 22 {
Chris@102 23 protected:
Chris@102 24 static inline bool is_valid(validity_failure_type failure)
Chris@102 25 {
Chris@102 26 return failure == no_failure
Chris@102 27 || (AllowDuplicates && failure == failure_duplicate_points);
Chris@102 28 }
Chris@102 29
Chris@102 30 static inline bool is_valid(validity_failure_type failure, bool is_linear)
Chris@102 31 {
Chris@102 32 return is_valid(failure)
Chris@102 33 || (is_linear && AllowSpikes && failure == failure_spikes);
Chris@102 34 }
Chris@102 35
Chris@102 36 public:
Chris@102 37 template <validity_failure_type Failure>
Chris@102 38 static inline bool apply()
Chris@102 39 {
Chris@102 40 return is_valid(Failure);
Chris@102 41 }
Chris@102 42
Chris@102 43 template <validity_failure_type Failure, typename Data>
Chris@102 44 static inline bool apply(Data const&)
Chris@102 45 {
Chris@102 46 return is_valid(Failure);
Chris@102 47 }
Chris@102 48
Chris@102 49 template <validity_failure_type Failure, typename Data1, typename Data2>
Chris@102 50 static inline bool apply(Data1 const& data1, Data2 const&)
Chris@102 51 {
Chris@102 52 return is_valid(Failure, data1);
Chris@102 53 }
Chris@102 54 };
Chris@102 55
Chris@102 56
Chris@102 57 }} // namespace boost::geometry
Chris@102 58
Chris@102 59 #endif // BOOST_GEOMETRY_POLICIES_IS_VALID_DEFAULT_POLICY_HPP