diff --git a/Packages/Triangulation_2/include/CGAL/Filter_iterator_with_handle.h b/Packages/Triangulation_2/include/CGAL/Filter_iterator_with_handle.h deleted file mode 100644 index 8c935560f60..00000000000 --- a/Packages/Triangulation_2/include/CGAL/Filter_iterator_with_handle.h +++ /dev/null @@ -1,74 +0,0 @@ -// ============================================================================ -// -// Copyright (c) 1997 The CGAL Consortium -// -// This software and related documentation is part of an INTERNAL release -// of the Computational Geometry Algorithms Library (CGAL). It is not -// intended for general use. -// -// ---------------------------------------------------------------------------- -// -// release : -// release_date : -// -// file : include/CGAL/Filter_iterator_with_handle.h -// source : $RCSfile$ -// revision : $Revision$ -// revision_date : $Date$ -// author(s) : Andreas Fabri -// -// coordinator : Mariette Yvinec -// -// ============================================================================ - -#ifndef CGAL_FILTER_ITERATOR_WITH_HANDLE_H -#define CGAL_FILTER_ITERATOR_WITH_HANDLE_H - -#include - -CGAL_BEGIN_NAMESPACE - - -template -class Filter_iterator_with_handle - : public Filter_iterator -{ - typedef Filter_iterator_with_handle Self; -public: - typedef Filter_iterator Base; - - Filter_iterator_with_handle() - : Base() - {} - - Filter_iterator_with_handle(It b, It e, Filter f) - : Base(b, e, f) - {} - Filter_iterator_with_handle(It b, It e, Filter f, It c) - : Base(b, e, f, c) - {} - - - operator Handle() const {return (*this)->handle();} - Self& operator++() { Base::operator++(); return *this;} - Self& operator--() { Base::operator--(); return *this;} - Self operator++(int) { Self tmp(*this); ++(*this); return tmp; } - Self operator--(int) { Self tmp(*this); --(*this); return tmp; } -}; - -template < class I, class P, class H > -inline Filter_iterator_with_handle< I, P, H > -filter_iterator_with_handle(I b, I e, const P& p, H h) -{ return Filter_iterator_with_handle< I, P, H >(b, e, p); } - -template < class I, class P, class H > -inline Filter_iterator_with_handle< I, P, H > -filter_iterator_with_handle(I b, I e, const P& p, H h, I c) -{ return Filter_iterator_with_handle< I, P, H >(b, e, p, c); } - - - - -CGAL_END_NAMESPACE - -#endif // CGAL_FILTER_ITERATOR_WITH_HANDLE_H diff --git a/Packages/Triangulation_2/include/CGAL/Regular_triangulation_2.h b/Packages/Triangulation_2/include/CGAL/Regular_triangulation_2.h index 4c5dd639294..92936a0ca48 100644 --- a/Packages/Triangulation_2/include/CGAL/Regular_triangulation_2.h +++ b/Packages/Triangulation_2/include/CGAL/Regular_triangulation_2.h @@ -12,6 +12,7 @@ // release_date : // // file : include/CGAL/Regular_triangulation_2.h +// package : Triangulation_2 // source : $RCSfile$ // revision : $Revision$ // revision_date : $Date$ @@ -27,7 +28,7 @@ #include #include #include -#include +//#include CGAL_BEGIN_NAMESPACE template < class Gt, @@ -63,38 +64,26 @@ public: private: typedef std::list Faces_around_stack; + class Hidden_tester; + class Unhidden_tester; - class Hidden_tester { - public: - bool operator()(const typename Base::All_vertices_iterator& it){ - return it->is_hidden(); - } - bool operator()(const typename Base::Finite_vertices_iterator& it){ - return it->is_hidden(); - } - }; + typedef typename Base::All_vertices_iterator All_vib; + typedef typename Base::Finite_vertices_iterator Finite_vib; - class Unhidden_tester { - public: - bool operator()(const typename Base::Finite_vertices_iterator& it){ - return ! it->is_hidden(); - } - }; - int _hidden_vertices; + typedef Filter_iterator All_filtered; + typedef Filter_iterator Finite_filtered; + typedef Filter_iterator Hidden_filtered; public: - typedef Filter_iterator_with_handle - All_vertices_iterator; - - typedef Filter_iterator_with_handle - Finite_vertices_iterator; - - typedef Filter_iterator_with_handle - Hidden_vertices_iterator; + typedef Triangulation_iterator_handle_adaptor + All_vertices_iterator; + typedef Triangulation_iterator_handle_adaptor + Finite_vertices_iterator; + typedef Triangulation_iterator_handle_adaptor + Hidden_vertices_iterator; +private: + int _hidden_vertices; public: Regular_triangulation_2(const Gt& gt=Gt()) : Base(gt), _hidden_vertices(0) {} @@ -232,7 +221,25 @@ public: } return ps; } - + +private: + class Hidden_tester { + public: + bool operator()(const typename Base::All_vertices_iterator& it){ + return it->is_hidden(); + } + bool operator()(const typename Base::Finite_vertices_iterator& it){ + return it->is_hidden(); + } + }; + + class Unhidden_tester { + public: + bool operator()(const typename Base::Finite_vertices_iterator& it){ + return ! it->is_hidden(); + } + }; + }; template < class Gt, class Tds > @@ -1566,9 +1573,9 @@ typename Regular_triangulation_2::All_vertices_iterator Regular_triangulation_2:: all_vertices_begin () const { - return filter_iterator_with_handle(Base::all_vertices_begin(), - Base::all_vertices_end(), - Hidden_tester(), Vertex_handle()); + return filter_iterator(Base::all_vertices_begin(), + Base::all_vertices_end(), + Hidden_tester()); } template < class Gt, class Tds > @@ -1576,10 +1583,10 @@ typename Regular_triangulation_2::All_vertices_iterator Regular_triangulation_2:: all_vertices_end () const { - return filter_iterator_with_handle(Base::all_vertices_begin(), - Base::all_vertices_end(), - Hidden_tester(), Vertex_handle(), - Base::all_vertices_end()); + return filter_iterator(Base::all_vertices_begin(), + Base::all_vertices_end(), + Hidden_tester(), + Base::all_vertices_end()); } template < class Gt, class Tds > @@ -1587,9 +1594,9 @@ typename Regular_triangulation_2::Finite_vertices_iterator Regular_triangulation_2:: finite_vertices_begin () const { - return filter_iterator_with_handle(Base::finite_vertices_begin(), - Base::finite_vertices_end(), - Hidden_tester(), Vertex_handle()); + return filter_iterator(Base::finite_vertices_begin(), + Base::finite_vertices_end(), + Hidden_tester()); } template < class Gt, class Tds > @@ -1598,10 +1605,10 @@ Regular_triangulation_2:: finite_vertices_end () const { - return filter_iterator_with_handle(Base::finite_vertices_begin(), - Base::finite_vertices_end(), - Hidden_tester(), Vertex_handle(), - Base::finite_vertices_end()); + return filter_iterator(Base::finite_vertices_begin(), + Base::finite_vertices_end(), + Hidden_tester(), + Base::finite_vertices_end()); } @@ -1610,9 +1617,9 @@ typename Regular_triangulation_2::Hidden_vertices_iterator Regular_triangulation_2:: hidden_vertices_begin () const { - return filter_iterator_with_handle(Base::finite_vertices_begin(), - Base::finite_vertices_end(), - Unhidden_tester(), Vertex_handle()); + return filter_iterator(Base::finite_vertices_begin(), + Base::finite_vertices_end(), + Unhidden_tester()); } @@ -1621,11 +1628,10 @@ typename Regular_triangulation_2::Hidden_vertices_iterator Regular_triangulation_2:: hidden_vertices_end () const { - return filter_iterator_with_handle(Base::finite_vertices_begin(), - Base::finite_vertices_end(), - Unhidden_tester(), - Vertex_handle(), - Base::finite_vertices_end()); + return filter_iterator(Base::finite_vertices_begin(), + Base::finite_vertices_end(), + Unhidden_tester(), + Base::finite_vertices_end()); } diff --git a/Packages/Triangulation_2/include/CGAL/Triangulation_2.h b/Packages/Triangulation_2/include/CGAL/Triangulation_2.h index 2a5befdd630..21dea242bfc 100644 --- a/Packages/Triangulation_2/include/CGAL/Triangulation_2.h +++ b/Packages/Triangulation_2/include/CGAL/Triangulation_2.h @@ -92,7 +92,6 @@ public: typedef typename Tds::Face_iterator All_faces_iterator; typedef typename Tds::Edge_iterator All_edges_iterator; typedef typename Tds::Vertex_iterator All_vertices_iterator; - typedef Filter_iterator Finite_faces_iterator_base;