rendered paste bodytemplate<class DG, class AT, class AP = Identity_policy_2<DG,AT> >
class Voronoi_diagram_2
{
private:
typedef Voronoi_diagram_2<DG,AT,AP> Self;
typedef Triangulation_cw_ccw_2 CW_CCW_2;
friend struct CGAL_VORONOI_DIAGRAM_2_INS::Accessor<Self>;
public:
//-------
// TYPES
//-------
// TYPES FOR THE DUAL GRAPH
// the (triangulated) dual graph
typedef DG Delaunay_graph;
typedef AT Adaptation_traits;
typedef AP Adaptation_policy;
typedef typename Delaunay_graph::Geom_traits Delaunay_geom_traits;
typedef typename Delaunay_graph::size_type size_type;
typedef typename Delaunay_graph::Vertex_handle Delaunay_vertex_handle;
typedef typename Delaunay_graph::Face_handle Delaunay_face_handle;
typedef typename Delaunay_graph::Edge Delaunay_edge;
protected:
typedef typename Delaunay_graph::Edge_circulator Dual_edge_circulator;
typedef typename Delaunay_graph::Vertex_circulator Dual_vertex_circulator;
typedef typename Delaunay_graph::Face_circulator Dual_face_circulator;
typedef typename Delaunay_graph::Finite_vertices_iterator
Dual_vertices_iterator;
typedef typename Delaunay_graph::Finite_faces_iterator
Dual_faces_iterator;
typedef typename Delaunay_graph::Finite_edges_iterator
Dual_edges_iterator;
typedef typename Delaunay_graph::All_edges_iterator
All_dual_edges_iterator;
protected:
// TYPES FOR THE DEGENERACY TESTERS
typedef typename Adaptation_policy::Has_site_inserter Has_site_inserter;
typedef typename Adaptation_policy::Has_site_remover Has_site_remover;
typedef typename Adaptation_policy::Edge_rejector
Edge_rejector;
typedef typename Adaptation_policy::Face_rejector
Face_rejector;
protected:
// DEGENERACY TESTER BINDERS
typedef CGAL_VORONOI_DIAGRAM_2_INS::Edge_rejector_binder<Self>
Edge_rejector_binder;
typedef CGAL_VORONOI_DIAGRAM_2_INS::Face_rejector_binder<Self>
Face_rejector_binder;
// ITERATORS FOR EDGES
typedef Filter_iterator<Dual_edges_iterator,Edge_rejector_binder>
Non_degenerate_edges_iterator;
typedef CGAL_VORONOI_DIAGRAM_2_INS::Edge_iterator_adaptor
<Self,Non_degenerate_edges_iterator>
Edge_iterator_base;
typedef CGAL_VORONOI_DIAGRAM_2_INS::Edge_validity_tester
<Self,Edge_iterator_base>
Edge_validity_tester;
typedef Filter_iterator<Edge_iterator_base,Edge_validity_tester>
Valid_edges_iterator;
public:
typedef CGAL_VORONOI_DIAGRAM_2_INS::Edge_iterator_adaptor
<Self,Valid_edges_iterator,Tag_false>
Edge_iterator;
typedef CGAL_VORONOI_DIAGRAM_2_INS::Halfedge_iterator_adaptor
<Self,Edge_iterator>
Halfedge_iterator;
// THE HALFEDGE
typedef CGAL_VORONOI_DIAGRAM_2_INS::Halfedge<Self> Halfedge;
protected:
// ITERATORS FOR FACES
typedef Filter_iterator<Dual_vertices_iterator,Face_rejector_binder>
Non_degenerate_faces_iterator;
public:
typedef CGAL_VORONOI_DIAGRAM_2_INS::Face_iterator_adaptor
<Self,Non_degenerate_faces_iterator>
Face_iterator;
// THE FACE
typedef CGAL_VORONOI_DIAGRAM_2_INS::Face<Self> Face;
protected:
// ITERATORS FOR VERTICES
typedef CGAL_VORONOI_DIAGRAM_2_INS::Vertex_validity_tester<Self>
Vertex_validity_tester;
typedef Filter_iterator<Dual_faces_iterator,Vertex_validity_tester>
Non_degenerate_vertices_iterator;
public:
typedef CGAL_VORONOI_DIAGRAM_2_INS::Vertex_iterator_adaptor
<Self,Non_degenerate_vertices_iterator>
Vertex_iterator;
// THE VERTEX
typedef CGAL_VORONOI_DIAGRAM_2_INS::Vertex<Self> Vertex;
public:
// HANDLES
typedef CGAL_VORONOI_DIAGRAM_2_INS::Handle_adaptor<Halfedge> Halfedge_handle;
typedef CGAL_VORONOI_DIAGRAM_2_INS::Handle_adaptor<Vertex> Vertex_handle;
typedef CGAL_VORONOI_DIAGRAM_2_INS::Handle_adaptor<Face> Face_handle;
// CIRCULATORS
typedef CGAL_VORONOI_DIAGRAM_2_INS::Halfedge_around_vertex_circulator_adaptor
<Halfedge>
Halfedge_around_vertex_circulator;
typedef CGAL_VORONOI_DIAGRAM_2_INS::Ccb_halfedge_circulator_adaptor
<Halfedge>
Ccb_halfedge_circulator;
// THE BOUNDED AND UNBOUNDED FACES ITERATOR
protected:
typedef CGAL_VORONOI_DIAGRAM_2_INS::Bounded_face_tester
<Self,Non_degenerate_faces_iterator>
Bounded_face_tester;
typedef CGAL_VORONOI_DIAGRAM_2_INS::Unbounded_face_tester
<Self,Non_degenerate_faces_iterator>
Unbounded_face_tester;
protected:
typedef
Filter_iterator<Non_degenerate_faces_iterator,Bounded_face_tester>
Unbounded_faces_iterator_base;
typedef
Filter_iterator<Non_degenerate_faces_iterator,Unbounded_face_tester>
Bounded_faces_iterator_base;
public:
typedef CGAL_VORONOI_DIAGRAM_2_INS::Face_iterator_adaptor
<Self,Unbounded_faces_iterator_base>
Unbounded_faces_iterator;
typedef CGAL_VORONOI_DIAGRAM_2_INS::Face_iterator_adaptor
<Self,Bounded_faces_iterator_base>
Bounded_faces_iterator;
// THE BOUNDED AND UNBOUNDED HALFEDGES ITERATOR
protected:
typedef CGAL_VORONOI_DIAGRAM_2_INS::Bounded_edge_tester
<Self,Edge_iterator>
Bounded_edge_tester;
typedef CGAL_VORONOI_DIAGRAM_2_INS::Unbounded_edge_tester
<Self,Edge_iterator>
Unbounded_edge_tester;
protected:
typedef
Filter_iterator<Edge_iterator,Bounded_edge_tester>
Unbounded_edges_iterator_base;
typedef
Filter_iterator<Edge_iterator,Unbounded_edge_tester>
Bounded_edges_iterator_base;
public:
typedef CGAL_VORONOI_DIAGRAM_2_INS::Halfedge_iterator_adaptor