diff options
Diffstat (limited to 'boost/geometry/util/is_inverse_spheroidal_coordinates.hpp')
-rw-r--r-- | boost/geometry/util/is_inverse_spheroidal_coordinates.hpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/boost/geometry/util/is_inverse_spheroidal_coordinates.hpp b/boost/geometry/util/is_inverse_spheroidal_coordinates.hpp new file mode 100644 index 0000000000..d67251254d --- /dev/null +++ b/boost/geometry/util/is_inverse_spheroidal_coordinates.hpp @@ -0,0 +1,43 @@ +// Boost.Geometry + +// Copyright (c) 2018 Oracle and/or its affiliates. + +// Contributed and/or modified by Vissarion Fysikopoulos, 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_UTIL_IS_INVERSE_SPHEROIDAL_COORDINATES_HPP +#define BOOST_GEOMETRY_UTIL_IS_INVERSE_SPHEROIDAL_COORDINATES_HPP + +#include <boost/geometry/util/math.hpp> + +namespace boost { namespace geometry +{ + +template<class CT> +struct bounds +{ + static CT lowest () { return boost::numeric::bounds<CT>::lowest(); } + static CT highest () { return boost::numeric::bounds<CT>::highest(); } +}; + +template <typename Box> +bool is_inverse_spheroidal_coordinates(Box const& box) +{ + typedef typename point_type<Box>::type point_type; + typedef typename coordinate_type<point_type>::type bound_type; + + bound_type high = bounds<bound_type>::highest(); + bound_type low = bounds<bound_type>::lowest(); + + return (geometry::get<0, 0>(box) == high) && + (geometry::get<0, 1>(box) == high) && + (geometry::get<1, 0>(box) == low) && + (geometry::get<1, 1>(box) == low); +} + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_UTIL_IS_INVERSE_SPHEROIDAL_COORDINATES_HPP |