make the ranges iterable

This commit is contained in:
Sébastien Loriot 2019-03-19 23:21:11 +01:00
parent d60f5645aa
commit 6d9b0e4260
1 changed files with 16 additions and 17 deletions

View File

@ -33,10 +33,13 @@
#include <CGAL/Dynamic_property_map.h>
#include <CGAL/squared_distance_3.h>
#include <CGAL/number_utils.h>
#include <CGAL/Iterator_range.h>
#include <CGAL/Iterator_range.h>
#include <CGAL/boost/graph/helpers.h>
#include <CGAL/boost/graph/copy_face_graph.h>
#include <CGAL/Heat_method_3/internal/V2V.h>
#include <boost/iterator/transform_iterator.hpp>
#include <boost/unordered_map.hpp>
@ -537,8 +540,7 @@ num_faces(const Intrinsic_Delaunay_triangulation_3<TM,T>& idt)
template <typename TM,
typename T>
typename std::pair<typename boost::graph_traits<Intrinsic_Delaunay_triangulation_3<TM,T> >::vertex_iterator,
typename boost::graph_traits<Intrinsic_Delaunay_triangulation_3<TM,T> >::vertex_iterator>
Iterator_range<typename boost::graph_traits<Intrinsic_Delaunay_triangulation_3<TM,T> >::vertex_iterator>
vertices(const Intrinsic_Delaunay_triangulation_3<TM,T>& idt)
{
std::pair<typename boost::graph_traits<TM>::vertex_iterator,
@ -546,38 +548,35 @@ vertices(const Intrinsic_Delaunay_triangulation_3<TM,T>& idt)
typedef typename Intrinsic_Delaunay_triangulation_3<TM,T>::Vertex_iterator_functor Fct;
Fct fct(idt.triangle_mesh());
return std::make_pair(boost::make_transform_iterator(p.first, fct),
boost::make_transform_iterator(p.second,fct));
return make_range(boost::make_transform_iterator(p.first, fct),
boost::make_transform_iterator(p.second,fct));
}
template <typename TM,
typename T>
typename std::pair<typename boost::graph_traits<TM>::halfedge_iterator,
typename boost::graph_traits<TM>::halfedge_iterator>
Iterator_range<typename boost::graph_traits<TM>::halfedge_iterator>
halfedges(const Intrinsic_Delaunay_triangulation_3<TM,T>& idt)
{
return halfedges(idt.triangle_mesh());
}
{
return make_range( halfedges(idt.triangle_mesh()) );
}
template <typename TM,
typename T>
typename std::pair<typename boost::graph_traits<TM>::edge_iterator,
typename boost::graph_traits<TM>::edge_iterator>
Iterator_range<typename boost::graph_traits<TM>::edge_iterator>
edges(const Intrinsic_Delaunay_triangulation_3<TM,T>& idt)
{
return edges(idt.triangle_mesh());
}
{
return make_range( edges(idt.triangle_mesh()) );
}
template <typename TM,
typename T>
typename std::pair<typename boost::graph_traits<TM>::face_iterator,
typename boost::graph_traits<TM>::face_iterator>
Iterator_range<typename boost::graph_traits<TM>::face_iterator>
faces(const Intrinsic_Delaunay_triangulation_3<TM,T>& idt)
{
return faces(idt.triangle_mesh());
return make_range( faces(idt.triangle_mesh()) );
}
template <typename TM,