diff options
Diffstat (limited to 'libs/geometry/test/algorithms/test_get_turns_ll_invariance.hpp')
-rw-r--r-- | libs/geometry/test/algorithms/test_get_turns_ll_invariance.hpp | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/libs/geometry/test/algorithms/test_get_turns_ll_invariance.hpp b/libs/geometry/test/algorithms/test_get_turns_ll_invariance.hpp deleted file mode 100644 index c0a59c1c4..000000000 --- a/libs/geometry/test/algorithms/test_get_turns_ll_invariance.hpp +++ /dev/null @@ -1,163 +0,0 @@ -// Boost.Geometry (aka GGL, Generic Geometry Library) - -// Copyright (c) 2014, Oracle and/or its affiliates. - -// Licensed under the Boost Software License version 1.0. -// http://www.boost.org/users/license.html - -// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle - -#ifndef BOOST_GEOMETRY_TEST_GET_TURNS_LL_INVARIANCE_HPP -#define BOOST_GEOMETRY_TEST_GET_TURNS_LL_INVARIANCE_HPP - -#include <vector> - -#include <boost/geometry/algorithms/reverse.hpp> - -#include <boost/geometry/algorithms/detail/relate/turns.hpp> - -#include <boost/geometry/algorithms/detail/turns/compare_turns.hpp> -#include <boost/geometry/algorithms/detail/turns/print_turns.hpp> -#include <boost/geometry/algorithms/detail/turns/filter_continue_turns.hpp> -#include <boost/geometry/algorithms/detail/turns/remove_duplicate_turns.hpp> - - -namespace bg_detail = ::boost::geometry::detail; -namespace bg_turns = bg_detail::turns; - -template -< - bool EnableRemoveDuplicateTurns = true, - bool EnableDegenerateTurns = true -> -class test_get_turns_ll_invariance -{ -private: - struct assign_policy - { - static bool const include_no_turn = false; - static bool const include_degenerate = EnableDegenerateTurns; - static bool const include_opposite = false; - - template - < - typename Info, - typename Point1, - typename Point2, - typename IntersectionInfo, - typename DirInfo - > - static inline void apply(Info& , Point1 const& , Point2 const& , - IntersectionInfo const& , DirInfo const& ) - { - } - }; - - - - template - < - typename Turns, - typename LinearGeometry1, - typename LinearGeometry2 - > - static inline void compute_turns(Turns& turns, - LinearGeometry1 const& linear1, - LinearGeometry2 const& linear2) - { - turns.clear(); - bg_detail::relate::turns::get_turns - < - LinearGeometry1, - LinearGeometry2, - bg_detail::get_turns::get_turn_info_type - < - LinearGeometry1, - LinearGeometry2, - assign_policy - > - >::apply(turns, linear1, linear2); - } - - - -public: - template <typename Linear1, typename Linear2> - static inline void apply(Linear1 const& lineargeometry1, - Linear2 const& lineargeometry2) - { - typedef typename bg_detail::relate::turns::get_turns - < - Linear1, Linear2 - >::turn_info turn_info; - - typedef std::vector<turn_info> turns_container; - - typedef bg_turns::filter_continue_turns - < - turns_container, true - > filter_continue_turns; - - typedef bg_turns::remove_duplicate_turns - < - turns_container, EnableRemoveDuplicateTurns - > remove_duplicate_turns; - - turns_container turns; - - Linear1 linear1(lineargeometry1); - Linear2 linear2(lineargeometry2); - - Linear2 linear2_reverse(linear2); - boost::geometry::reverse(linear2_reverse); - - turns_container turns_all, rturns_all; - compute_turns(turns_all, linear1, linear2); - compute_turns(rturns_all, linear1, linear2_reverse); - - turns_container turns_wo_cont(turns_all); - turns_container rturns_wo_cont(rturns_all); - - filter_continue_turns::apply(turns_wo_cont); - filter_continue_turns::apply(rturns_wo_cont); - - std::sort(boost::begin(turns_all), boost::end(turns_all), - bg_turns::less_seg_fraction_other_op<>()); - - std::sort(boost::begin(turns_wo_cont), boost::end(turns_wo_cont), - bg_turns::less_seg_fraction_other_op<>()); - - std::sort(boost::begin(rturns_all), boost::end(rturns_all), - bg_turns::less_seg_fraction_other_op<std::greater<boost::geometry::signed_index_type> >()); - - std::sort(boost::begin(rturns_wo_cont), boost::end(rturns_wo_cont), - bg_turns::less_seg_fraction_other_op<std::greater<boost::geometry::signed_index_type> >()); - - remove_duplicate_turns::apply(turns_all); - remove_duplicate_turns::apply(turns_wo_cont); - remove_duplicate_turns::apply(rturns_all); - remove_duplicate_turns::apply(rturns_wo_cont); - -#ifdef BOOST_GEOMETRY_TEST_DEBUG - std::cout << std::endl << std::endl; - std::cout << "### ORIGINAL TURNS ###" << std::endl; - bg_turns::print_turns(linear1, linear2, turns_all); - std::cout << std::endl << std::endl; - std::cout << "### ORIGINAL REVERSE TURNS ###" << std::endl; - bg_turns::print_turns(linear1, linear2_reverse, rturns_all); - std::cout << std::endl << std::endl; - std::cout << "### TURNS W/O CONTINUE TURNS ###" << std::endl; - bg_turns::print_turns(linear1, linear2, turns_wo_cont); - std::cout << std::endl << std::endl; - std::cout << "### REVERSE TURNS W/O CONTINUE TURNS ###" << std::endl; - bg_turns::print_turns(linear1, linear2_reverse, rturns_wo_cont); - std::cout << std::endl << std::endl; -#endif - - BOOST_ASSERT(boost::size(turns_wo_cont) == boost::size(rturns_wo_cont)); - } -}; - - - -#endif // BOOST_GEOMETRY_TEST_GET_TURNS_LL_INVARIANCE_HPP |