cartesian.hpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // Boost.Geometry
  2. // Copyright (c) 2025, Oracle and/or its affiliates.
  3. // Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
  4. // Use, modification and distribution is subject to the Boost Software License,
  5. // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  6. // http://www.boost.org/LICENSE_1_0.txt)
  7. #ifndef BOOST_GEOMETRY_STRATEGIES_RELATE3_CARTESIAN_HPP
  8. #define BOOST_GEOMETRY_STRATEGIES_RELATE3_CARTESIAN_HPP
  9. #include <boost/geometry/strategies/relate/cartesian.hpp>
  10. #include <boost/geometry/strategies/relate3/services.hpp>
  11. #include <boost/geometry/strategies/cartesian/side_rounded_input.hpp>
  12. #include <boost/geometry/strategies/cartesian/side_3d_rounded_input.hpp>
  13. namespace boost { namespace geometry
  14. {
  15. namespace strategies { namespace relate3
  16. {
  17. template <typename CalculationType = void>
  18. class cartesian
  19. : public strategies::relate::cartesian<CalculationType>
  20. {
  21. public:
  22. static auto side3()
  23. {
  24. return strategy::side::side_3d_rounded_input<>();
  25. }
  26. static auto side()
  27. {
  28. return strategy::side::side_rounded_input<>();
  29. }
  30. };
  31. namespace services
  32. {
  33. template <typename Geometry1, typename Geometry2>
  34. struct default_strategy<Geometry1, Geometry2, cartesian_tag, cartesian_tag>
  35. {
  36. using type = strategies::relate3::cartesian<>;
  37. };
  38. } // namespace services
  39. }} // namespace strategies::relate3
  40. }} // namespace boost::geometry
  41. #endif // BOOST_GEOMETRY_STRATEGIES_RELATE_CARTESIAN_HPP