template > class Voronoi_diagram_2 { private: typedef Voronoi_diagram_2 Self; typedef Triangulation_cw_ccw_2 CW_CCW_2; friend struct CGAL_VORONOI_DIAGRAM_2_INS::Accessor; 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 Edge_rejector_binder; typedef CGAL_VORONOI_DIAGRAM_2_INS::Face_rejector_binder Face_rejector_binder; // ITERATORS FOR EDGES typedef Filter_iterator Non_degenerate_edges_iterator; typedef CGAL_VORONOI_DIAGRAM_2_INS::Edge_iterator_adaptor Edge_iterator_base; typedef CGAL_VORONOI_DIAGRAM_2_INS::Edge_validity_tester Edge_validity_tester; typedef Filter_iterator Valid_edges_iterator; public: typedef CGAL_VORONOI_DIAGRAM_2_INS::Edge_iterator_adaptor Edge_iterator; typedef CGAL_VORONOI_DIAGRAM_2_INS::Halfedge_iterator_adaptor Halfedge_iterator; // THE HALFEDGE typedef CGAL_VORONOI_DIAGRAM_2_INS::Halfedge Halfedge; protected: // ITERATORS FOR FACES typedef Filter_iterator Non_degenerate_faces_iterator; public: typedef CGAL_VORONOI_DIAGRAM_2_INS::Face_iterator_adaptor Face_iterator; // THE FACE typedef CGAL_VORONOI_DIAGRAM_2_INS::Face Face; protected: // ITERATORS FOR VERTICES typedef CGAL_VORONOI_DIAGRAM_2_INS::Vertex_validity_tester Vertex_validity_tester; typedef Filter_iterator Non_degenerate_vertices_iterator; public: typedef CGAL_VORONOI_DIAGRAM_2_INS::Vertex_iterator_adaptor Vertex_iterator; // THE VERTEX typedef CGAL_VORONOI_DIAGRAM_2_INS::Vertex Vertex; public: // HANDLES typedef CGAL_VORONOI_DIAGRAM_2_INS::Handle_adaptor Halfedge_handle; typedef CGAL_VORONOI_DIAGRAM_2_INS::Handle_adaptor Vertex_handle; typedef CGAL_VORONOI_DIAGRAM_2_INS::Handle_adaptor Face_handle; // CIRCULATORS typedef CGAL_VORONOI_DIAGRAM_2_INS::Halfedge_around_vertex_circulator_adaptor Halfedge_around_vertex_circulator; typedef CGAL_VORONOI_DIAGRAM_2_INS::Ccb_halfedge_circulator_adaptor Ccb_halfedge_circulator; // THE BOUNDED AND UNBOUNDED FACES ITERATOR protected: typedef CGAL_VORONOI_DIAGRAM_2_INS::Bounded_face_tester Bounded_face_tester; typedef CGAL_VORONOI_DIAGRAM_2_INS::Unbounded_face_tester Unbounded_face_tester; protected: typedef Filter_iterator Unbounded_faces_iterator_base; typedef Filter_iterator Bounded_faces_iterator_base; public: typedef CGAL_VORONOI_DIAGRAM_2_INS::Face_iterator_adaptor Unbounded_faces_iterator; typedef CGAL_VORONOI_DIAGRAM_2_INS::Face_iterator_adaptor Bounded_faces_iterator; // THE BOUNDED AND UNBOUNDED HALFEDGES ITERATOR protected: typedef CGAL_VORONOI_DIAGRAM_2_INS::Bounded_edge_tester Bounded_edge_tester; typedef CGAL_VORONOI_DIAGRAM_2_INS::Unbounded_edge_tester Unbounded_edge_tester; protected: typedef Filter_iterator Unbounded_edges_iterator_base; typedef Filter_iterator Bounded_edges_iterator_base; public: typedef CGAL_VORONOI_DIAGRAM_2_INS::Halfedge_iterator_adaptor