summaryrefslogtreecommitdiff
path: root/boost/geometry/algorithms/detail/is_valid/box.hpp
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2016-10-06 10:33:54 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2016-10-06 10:36:09 +0900
commitd9ec475d945d3035377a0d89ed42e382d8988891 (patch)
tree34aff2cee4b209906243ab5499d61f3edee2982f /boost/geometry/algorithms/detail/is_valid/box.hpp
parent71d216b90256936a9638f325af9bc69d720e75de (diff)
downloadboost-d9ec475d945d3035377a0d89ed42e382d8988891.tar.gz
boost-d9ec475d945d3035377a0d89ed42e382d8988891.tar.bz2
boost-d9ec475d945d3035377a0d89ed42e382d8988891.zip
Imported Upstream version 1.60.0
Change-Id: Ie709530d6d5841088ceaba025cbe175a4ef43050 Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/geometry/algorithms/detail/is_valid/box.hpp')
-rw-r--r--boost/geometry/algorithms/detail/is_valid/box.hpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/boost/geometry/algorithms/detail/is_valid/box.hpp b/boost/geometry/algorithms/detail/is_valid/box.hpp
index e7a67252ba..863ce625fe 100644
--- a/boost/geometry/algorithms/detail/is_valid/box.hpp
+++ b/boost/geometry/algorithms/detail/is_valid/box.hpp
@@ -20,6 +20,7 @@
#include <boost/geometry/core/coordinate_dimension.hpp>
#include <boost/geometry/algorithms/validity_failure_type.hpp>
+#include <boost/geometry/algorithms/detail/is_valid/has_invalid_coordinate.hpp>
#include <boost/geometry/algorithms/dispatch/is_valid.hpp>
@@ -66,6 +67,20 @@ struct has_valid_corners<Box, 0>
}
};
+
+template <typename Box>
+struct is_valid_box
+{
+ template <typename VisitPolicy>
+ static inline bool apply(Box const& box, VisitPolicy& visitor)
+ {
+ return
+ ! has_invalid_coordinate<Box>::apply(box, visitor)
+ &&
+ has_valid_corners<Box, dimension<Box>::value>::apply(box, visitor);
+ }
+};
+
}} // namespace detail::is_valid
#endif // DOXYGEN_NO_DETAIL
@@ -85,7 +100,7 @@ namespace dispatch
// Reference (for polygon validity): OGC 06-103r4 (6.1.11.1)
template <typename Box>
struct is_valid<Box, box_tag>
- : detail::is_valid::has_valid_corners<Box, dimension<Box>::value>
+ : detail::is_valid::is_valid_box<Box>
{};