diff --git a/Convex_hull_3/examples/Convex_hull_3/extreme_indices_3.cpp b/Convex_hull_3/examples/Convex_hull_3/extreme_indices_3.cpp new file mode 100644 index 00000000000..b697eb883c9 --- /dev/null +++ b/Convex_hull_3/examples/Convex_hull_3/extreme_indices_3.cpp @@ -0,0 +1,42 @@ +#include +#include +#include +#include + +#include + +#include +#include + + +typedef CGAL::Exact_predicates_inexact_constructions_kernel K; +typedef K::Point_3 Point_3; + +int main(int argc, char* argv[]) +{ + std::ifstream in( (argc>1)? argv[1] : "data/star.off"); + + if(!in) + { + std::cerr<< "Cannot open input file." < points; + CGAL::read_off_points(in, std::back_inserter(points)); + + //This will contain the extreme vertices + std::vector extreme_point_indices; + + //call the function with the traits adapter for vertices + CGAL::extreme_points_3(CGAL::make_range(boost::counting_iterator(0), + boost::counting_iterator(points.size())), + std::back_inserter(extreme_point_indices), + CGAL::make_extreme_points_traits_adapter(CGAL::make_property_map(points))); + //print the number of extreme vertices + std::cout << "Indices of points on the convex hull are:\n"; + std::copy(extreme_point_indices.begin(), extreme_point_indices.end(), std::ostream_iterator(std::cout, " ")); + std::cout << "\n"; + + return 0; +}