Merge pull request #6465 from sloriot/Spatial_sorting-fix_adapters

Fix traits adapters
This commit is contained in:
Laurent Rineau
2022-04-06 09:10:46 +02:00
12 changed files with 102 additions and 48 deletions
@@ -24,11 +24,19 @@ int main()
points.push_back(std::make_pair(Point_2(74,4) , 4));
Search_traits_2 traits;
std::cout << "Order using default policy (median)\n";
CGAL::spatial_sort(points.begin(), points.end(), traits);
for (Data_vector::iterator it=points.begin();it!=points.end();++it)
std::cout << it->second << " ";
std::cout << "\n";
std::cout << "Order using middle policy\n";
CGAL::spatial_sort(points.begin(), points.end(), traits, CGAL::Hilbert_sort_middle_policy());
for (Data_vector::iterator it=points.begin();it!=points.end();++it)
std::cout << it->second << " ";
std::cout << "\n";
std::cout << "done" << std::endl;
return 0;
@@ -26,12 +26,22 @@ int main()
boost::counting_iterator<std::size_t>(points.size()),
std::back_inserter(indices));
std::cout << "Order using default policy (median)\n";
CGAL::spatial_sort( indices.begin(),
indices.end(),
Search_traits_3(CGAL::make_property_map(points)) );
for (std::vector<std::size_t>::iterator it=indices.begin();it!=indices.end();++it)
std::cout << points[*it] << "\n";
for (std::size_t i : indices)
std::cout << points[i] << "\n";
std::cout << "Order using middle policy\n";
CGAL::spatial_sort( indices.begin(),
indices.end(),
Search_traits_3(CGAL::make_property_map(points)),
CGAL::Hilbert_sort_middle_policy());
for (std::size_t i : indices)
std::cout << points[i] << "\n";
std::cout << "done" << std::endl;
@@ -46,14 +46,27 @@ int main()
boost::counting_iterator<Vect_ppmap::key_type>(points.size()),
std::back_inserter(indices) );
std::cout << "Order using default policy (median)\n";
CGAL::spatial_sort(
indices.begin(),
indices.end(),
Search_traits_d(Vect_ppmap(points)) );
Search_traits_d(Vect_ppmap(points))
);
std::vector<Vect_ppmap::key_type>::iterator it=indices.begin();
for (;it!=indices.end();++it)
std::cout << points[*it].second << " ";
for (auto i : indices)
std::cout << points[i].second << " ";
std::cout << std::endl;
std::cout << "Order using middle policy\n";
CGAL::spatial_sort(
indices.begin(),
indices.end(),
Search_traits_d(Vect_ppmap(points)),
CGAL::Hilbert_sort_middle_policy()
);
for (auto i : indices)
std::cout << points[i].second << " ";
std::cout << std::endl;
std::cout << "done" << std::endl;