mirror of https://github.com/CGAL/cgal
Move transform ranges in property_maps
This commit is contained in:
parent
90ad2cb613
commit
c1d8fb69b7
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
#include <utility> // defines std::pair
|
||||
|
||||
#include <CGAL/boost/iterator/transform_iterator.hpp>
|
||||
#include <CGAL/Iterator_range.h>
|
||||
#include <CGAL/Cartesian_converter_fwd.h>
|
||||
#include <CGAL/Kernel_traits_fwd.h>
|
||||
#include <CGAL/assertions.h>
|
||||
|
|
@ -576,6 +578,38 @@ make_cartesian_converter_property_map(Vpm vpm)
|
|||
return Cartesian_converter_property_map<GeomObject, Vpm>(vpm);
|
||||
}
|
||||
|
||||
/// \cond SKIP_IN_MANUAL
|
||||
// Syntaxic sugar for transform_iterator+pmap_to_unary_function
|
||||
template <typename Iterator, typename Pmap>
|
||||
typename boost::transform_iterator<CGAL::Property_map_to_unary_function<Pmap>, Iterator>
|
||||
make_transform_iterator_from_property_map (Iterator it, Pmap pmap)
|
||||
{
|
||||
return boost::make_transform_iterator (it, CGAL::Property_map_to_unary_function<Pmap>(pmap));
|
||||
}
|
||||
|
||||
// Syntaxic sugar for make_range+transform_iterator+pmap_to_unary_function
|
||||
template <typename Range, typename Pmap>
|
||||
CGAL::Iterator_range<typename boost::transform_iterator<CGAL::Property_map_to_unary_function<Pmap>,
|
||||
typename Range::const_iterator> >
|
||||
make_transform_range_from_property_map (const Range& range, Pmap pmap)
|
||||
{
|
||||
return CGAL::make_range
|
||||
(make_transform_iterator_from_property_map (range.begin(), pmap),
|
||||
make_transform_iterator_from_property_map (range.end(), pmap));
|
||||
}
|
||||
|
||||
// Syntaxic sugar for make_range+transform_iterator+pmap_to_unary_function
|
||||
template <typename Range, typename Pmap>
|
||||
CGAL::Iterator_range<typename boost::transform_iterator<CGAL::Property_map_to_unary_function<Pmap>,
|
||||
typename Range::iterator> >
|
||||
make_transform_range_from_property_map (Range& range, Pmap pmap)
|
||||
{
|
||||
return CGAL::make_range
|
||||
(make_transform_iterator_from_property_map (range.begin(), pmap),
|
||||
make_transform_iterator_from_property_map (range.end(), pmap));
|
||||
}
|
||||
/// \endcond
|
||||
|
||||
} // namespace CGAL
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -22,10 +22,8 @@
|
|||
#include <CGAL/disable_warnings.h>
|
||||
|
||||
#include <CGAL/assertions.h>
|
||||
#include <CGAL/boost/iterator/transform_iterator.hpp>
|
||||
#include <CGAL/circulator.h>
|
||||
#include <CGAL/Iterator_range.h>
|
||||
#include <CGAL/property_map.h>
|
||||
#include <CGAL/result_of.h>
|
||||
#include <CGAL/tuple.h>
|
||||
#include <CGAL/use.h>
|
||||
|
|
@ -1482,37 +1480,6 @@ struct Range_iterator_type<RangeRef&> { typedef typename RangeRef::iterato
|
|||
template <typename RangeRef>
|
||||
struct Range_iterator_type<const RangeRef&> { typedef typename RangeRef::const_iterator type; };
|
||||
|
||||
// Syntaxic sugar for transform_iterator+pmap_to_unary_function
|
||||
template <typename Iterator, typename Pmap>
|
||||
typename boost::transform_iterator<CGAL::Property_map_to_unary_function<Pmap>, Iterator>
|
||||
make_transform_iterator_from_property_map (Iterator it, Pmap pmap)
|
||||
{
|
||||
return boost::make_transform_iterator (it, CGAL::Property_map_to_unary_function<Pmap>(pmap));
|
||||
}
|
||||
|
||||
// Syntaxic sugar for make_range+transform_iterator+pmap_to_unary_function
|
||||
template <typename Range, typename Pmap>
|
||||
CGAL::Iterator_range<typename boost::transform_iterator<CGAL::Property_map_to_unary_function<Pmap>,
|
||||
typename Range::const_iterator> >
|
||||
make_transform_range_from_property_map (const Range& range, Pmap pmap)
|
||||
{
|
||||
return CGAL::make_range
|
||||
(make_transform_iterator_from_property_map (range.begin(), pmap),
|
||||
make_transform_iterator_from_property_map (range.end(), pmap));
|
||||
}
|
||||
|
||||
// Syntaxic sugar for make_range+transform_iterator+pmap_to_unary_function
|
||||
template <typename Range, typename Pmap>
|
||||
CGAL::Iterator_range<typename boost::transform_iterator<CGAL::Property_map_to_unary_function<Pmap>,
|
||||
typename Range::iterator> >
|
||||
make_transform_range_from_property_map (Range& range, Pmap pmap)
|
||||
{
|
||||
return CGAL::make_range
|
||||
(make_transform_iterator_from_property_map (range.begin(), pmap),
|
||||
make_transform_iterator_from_property_map (range.end(), pmap));
|
||||
}
|
||||
|
||||
|
||||
} //namespace CGAL
|
||||
|
||||
#include <CGAL/enable_warnings.h>
|
||||
|
|
|
|||
Loading…
Reference in New Issue