From c08e6771b0f7105fbf560b00a72869ef5bc7e231 Mon Sep 17 00:00:00 2001 From: Mariette Yvinec Date: Fri, 26 Nov 1999 16:21:56 +0000 Subject: [PATCH] patches suggested by Dima for bcc --- .../include/CGAL/Triangulation_2.h | 6 + .../Triangulation_default_data_structure_2.h | 211 ++++++++++-------- .../include/CGAL/Triangulation_ds_vertex_2.h | 134 ++++++----- .../include/CGAL/Triangulation_handles_2.h | 28 +-- 4 files changed, 218 insertions(+), 161 deletions(-) diff --git a/Packages/Triangulation_2/include/CGAL/Triangulation_2.h b/Packages/Triangulation_2/include/CGAL/Triangulation_2.h index 07aa79a4bb5..a1a7857ca4e 100644 --- a/Packages/Triangulation_2/include/CGAL/Triangulation_2.h +++ b/Packages/Triangulation_2/include/CGAL/Triangulation_2.h @@ -47,6 +47,12 @@ CGAL_BEGIN_NAMESPACE +template < class Gt, class Tds > class Triangulation_2; +template < class Gt, class Tds > std::istream& operator>> + (std::istream& is, Triangulation_2 &tr); +template < class Gt, class Tds > std::ostream& operator<< + (std::ostream& os, const Triangulation_2 &tr); + template < class Gt, class Tds > class Triangulation_2 diff --git a/Packages/Triangulation_2/include/CGAL/Triangulation_default_data_structure_2.h b/Packages/Triangulation_2/include/CGAL/Triangulation_default_data_structure_2.h index 3338da9e8e5..98ef60541c3 100644 --- a/Packages/Triangulation_2/include/CGAL/Triangulation_default_data_structure_2.h +++ b/Packages/Triangulation_2/include/CGAL/Triangulation_default_data_structure_2.h @@ -44,6 +44,21 @@ CGAL_BEGIN_NAMESPACE +template < class Gt , class Vb, class Fb> +class Triangulation_default_data_structure_2; + +template < class Gt , class Vb, class Fb> +std::istream& operator>> +(std::istream& is, Triangulation_default_data_structure_2& + tds); + +template < class Gt , class Vb, class Fb> +std::ostream& operator<< +( std::ostream& os, + const Triangulation_default_data_structure_2& tds); + + + template < class Gt , class Vb, class Fb> class Triangulation_default_data_structure_2 @@ -116,15 +131,37 @@ public: // Face* &fr) const; // ITERATORS AND CIRCULATORS - Iterator_base iterator_base_begin() const; - Iterator_base iterator_base_end() const; - Face_iterator faces_begin() const; - Face_iterator faces_end() const; - Vertex_iterator vertices_begin() const; - Vertex_iterator vertices_end() const; - Edge_iterator edges_begin() const; - Edge_iterator edges_end() const; - + inline Iterator_base iterator_base_begin() const { + return Iterator_base(this); + } + inline Iterator_base iterator_base_end() const { + return Iterator_base(this,1); + } + inline Face_iterator faces_begin() const { + Tds* ncthis = (Tds *)this; + return Face_iterator(ncthis); + } + inline Face_iterator faces_end() const { + Tds* ncthis = (Tds *)this; + return Face_iterator(ncthis, 1); + } + inline Vertex_iterator vertices_begin() const { + Tds* ncthis = (Tds*)this; + return Vertex_iterator(ncthis); + } + inline Vertex_iterator vertices_end() const { + Tds* ncthis = (Tds*)this; + return Vertex_iterator(ncthis,1); + } + inline Edge_iterator edges_begin() const { + Tds* ncthis = (Tds*)this; + return Edge_iterator(ncthis); + } + inline Edge_iterator edges_end() const { + Tds* ncthis = (Tds*)this; + return Edge_iterator(ncthis,1); + } + //Face_circulator incident_faces(Vertex* v, Face* f = NULL) const; //Vertex_circulator incident_vertices(Vertex* v, Face* f = NULL) const; //Edge_circulator incident_edges(Vertex* v, Face* f = NULL) const; @@ -295,92 +332,92 @@ is_edge(const Vertex* va, const Vertex* vb, Face* &fr, int & i) const } -template -inline -Triangulation_ds_iterator_base_2< -Triangulation_default_data_structure_2 > -Triangulation_default_data_structure_2:: -iterator_base_begin() const -{ - return Iterator_base(this); -} +// template +// inline +// Triangulation_ds_iterator_base_2< +// Triangulation_default_data_structure_2 > +// Triangulation_default_data_structure_2:: +// iterator_base_begin() const +// { +// return Iterator_base(this); +// } -template -inline -Triangulation_ds_iterator_base_2< -Triangulation_default_data_structure_2 > -Triangulation_default_data_structure_2:: -iterator_base_end() const -{ - return Iterator_base(this,1); -} +// template +// inline +// Triangulation_ds_iterator_base_2< +// Triangulation_default_data_structure_2 > +// Triangulation_default_data_structure_2:: +// iterator_base_end() const +// { +// return Iterator_base(this,1); +// } -template -inline -Triangulation_ds_face_iterator_2< -Triangulation_default_data_structure_2 > -Triangulation_default_data_structure_2:: -faces_begin() const -{ - Tds* ncthis = (Tds *)this; - return Face_iterator(ncthis); -} +// template +// inline +// Triangulation_ds_face_iterator_2< +// Triangulation_default_data_structure_2 > +// Triangulation_default_data_structure_2:: +// faces_begin() const +// { +// Tds* ncthis = (Tds *)this; +// return Face_iterator(ncthis); +// } -template -inline -Triangulation_ds_face_iterator_2< -Triangulation_default_data_structure_2 > -Triangulation_default_data_structure_2:: -faces_end() const -{ - Tds* ncthis = (Tds *)this; - return Face_iterator(ncthis, 1); -} +// template +// inline +// Triangulation_ds_face_iterator_2< +// Triangulation_default_data_structure_2 > +// Triangulation_default_data_structure_2:: +// faces_end() const +// { +// Tds* ncthis = (Tds *)this; +// return Face_iterator(ncthis, 1); +// } -template -inline -Triangulation_ds_vertex_iterator_2< -Triangulation_default_data_structure_2 > -Triangulation_default_data_structure_2:: -vertices_begin() const -{ - Tds* ncthis = (Tds*)this; - return Vertex_iterator(ncthis); -} +// template +// inline +// Triangulation_ds_vertex_iterator_2< +// Triangulation_default_data_structure_2 > +// Triangulation_default_data_structure_2:: +// vertices_begin() const +// { +// Tds* ncthis = (Tds*)this; +// return Vertex_iterator(ncthis); +// } -template -inline -Triangulation_ds_vertex_iterator_2< -Triangulation_default_data_structure_2 > -Triangulation_default_data_structure_2:: -vertices_end() const -{ - Tds* ncthis = (Tds*)this; - return Vertex_iterator(ncthis,1); -} +// template +// inline +// Triangulation_ds_vertex_iterator_2< +// Triangulation_default_data_structure_2 > +// Triangulation_default_data_structure_2:: +// vertices_end() const +// { +// Tds* ncthis = (Tds*)this; +// return Vertex_iterator(ncthis,1); +// } -template -inline -Triangulation_ds_edge_iterator_2< -Triangulation_default_data_structure_2 > -Triangulation_default_data_structure_2:: -edges_begin() const -{ - Tds* ncthis = (Tds*)this; - return Edge_iterator(ncthis); -} +// template +// inline +// Triangulation_ds_edge_iterator_2< +// Triangulation_default_data_structure_2 > +// Triangulation_default_data_structure_2:: +// edges_begin() const +// { +// Tds* ncthis = (Tds*)this; +// return Edge_iterator(ncthis); +// } -template -inline -Triangulation_ds_edge_iterator_2< -Triangulation_default_data_structure_2 > -Triangulation_default_data_structure_2:: -edges_end() const -{ - Tds* ncthis = (Tds*)this; - return Edge_iterator(ncthis,1); -} +// template +// inline +// Triangulation_ds_edge_iterator_2< +// Triangulation_default_data_structure_2 > +// Triangulation_default_data_structure_2:: +// edges_end() const +// { +// Tds* ncthis = (Tds*)this; +// return Edge_iterator(ncthis,1); +// } template < class Gt , class Vb, class Fb> diff --git a/Packages/Triangulation_2/include/CGAL/Triangulation_ds_vertex_2.h b/Packages/Triangulation_2/include/CGAL/Triangulation_ds_vertex_2.h index 92e2cdbb6f6..af5085cb693 100644 --- a/Packages/Triangulation_2/include/CGAL/Triangulation_ds_vertex_2.h +++ b/Packages/Triangulation_2/include/CGAL/Triangulation_ds_vertex_2.h @@ -57,12 +57,26 @@ public: //ACCESS Face* face() const {return ( (Face *) (Vb::face()) );} int degree() const ; - Vertex_circulator incident_vertices() const; - Vertex_circulator incident_vertices(const Face* f) const; - Face_circulator incident_faces() const; - Face_circulator incident_faces(const Face* f) const; - Edge_circulator incident_edges() const; - Edge_circulator incident_edges(const Face* f) const; + + inline Vertex_circulator incident_vertices() const { + return Vertex_circulator(this); + } + inline Vertex_circulator incident_vertices(const Face* f) const { + return Vertex_circulator(this,f); + } + inline Face_circulator incident_faces() const { + return Face_circulator(this); + } + inline Face_circulator incident_faces(const Face* f) const { + return Face_circulator(this, f); + } + inline Edge_circulator incident_edges() const { + return Edge_circulator(this); + } + inline Edge_circulator incident_edges(const Face* f) const { + return Edge_circulator(this, f); + } + bool is_valid(bool verbose = false, int level = 0) const; }; @@ -82,65 +96,65 @@ degree() const return count; } -template -inline -Triangulation_ds_vertex_circulator_2, - Triangulation_ds_face_2 > -Triangulation_ds_vertex_2 :: -incident_vertices() const -{ - return Vertex_circulator(this); -} +// template +// inline +// Triangulation_ds_vertex_circulator_2, +// Triangulation_ds_face_2 > +// Triangulation_ds_vertex_2 :: +// incident_vertices() const +// { +// return Vertex_circulator(this); +// } -template -inline -Triangulation_ds_vertex_circulator_2, - Triangulation_ds_face_2 > -Triangulation_ds_vertex_2 :: -incident_vertices(const Face* f) const -{ - return Vertex_circulator(this,f); -} +// template +// inline +// Triangulation_ds_vertex_circulator_2, +// Triangulation_ds_face_2 > +// Triangulation_ds_vertex_2 :: +// incident_vertices(const Face* f) const +// { +// return Vertex_circulator(this,f); +// } -template -inline -Triangulation_ds_face_circulator_2, - Triangulation_ds_face_2 > -Triangulation_ds_vertex_2 :: -incident_faces() const -{ - return Face_circulator(this); -} +// template +// inline +// Triangulation_ds_face_circulator_2, +// Triangulation_ds_face_2 > +// Triangulation_ds_vertex_2 :: +// incident_faces() const +// { +// return Face_circulator(this); +// } -template -inline -Triangulation_ds_face_circulator_2, - Triangulation_ds_face_2 > -Triangulation_ds_vertex_2 :: -incident_faces(const Face* f) const -{ - return Face_circulator(this, f); -} +// template +// inline +// Triangulation_ds_face_circulator_2, +// Triangulation_ds_face_2 > +// Triangulation_ds_vertex_2 :: +// incident_faces(const Face* f) const +// { +// return Face_circulator(this, f); +// } -template -inline -Triangulation_ds_edge_circulator_2, - Triangulation_ds_face_2 > -Triangulation_ds_vertex_2 :: -incident_edges() const -{ - return Edge_circulator(this); -} +// template +// inline +// Triangulation_ds_edge_circulator_2, +// Triangulation_ds_face_2 > +// Triangulation_ds_vertex_2 :: +// incident_edges() const +// { +// return Edge_circulator(this); +// } -template -inline -Triangulation_ds_edge_circulator_2, - Triangulation_ds_face_2 > -Triangulation_ds_vertex_2 :: -incident_edges(const Face* f) const -{ - return Edge_circulator(this, f); -} +// template +// inline +// Triangulation_ds_edge_circulator_2, +// Triangulation_ds_face_2 > +// Triangulation_ds_vertex_2 :: +// incident_edges(const Face* f) const +// { +// return Edge_circulator(this, f); +// } template bool diff --git a/Packages/Triangulation_2/include/CGAL/Triangulation_handles_2.h b/Packages/Triangulation_2/include/CGAL/Triangulation_handles_2.h index 10a6d0d8635..a82b74ca10d 100644 --- a/Packages/Triangulation_2/include/CGAL/Triangulation_handles_2.h +++ b/Packages/Triangulation_2/include/CGAL/Triangulation_handles_2.h @@ -59,7 +59,7 @@ class Triangulation_face_handle_2 :public Pointer > { public: - typedef Pointer > Pointer; + typedef Pointer > Pointer_; typedef Triangulation_face_2 Face; typedef Triangulation_face_handle_2 Face_handle; @@ -68,27 +68,27 @@ public: typedef Triangulation_face_circulator_2 Face_circulator; Triangulation_face_handle_2() - : Pointer(NULL) + : Pointer_(NULL) {} Triangulation_face_handle_2(const Face* p) - : Pointer(p) + : Pointer_(p) {} Triangulation_face_handle_2(const Face_handle& p) - : Pointer(p.ptr()) + : Pointer_(p.ptr()) {} Triangulation_face_handle_2(const Finite_faces_iterator& fit) - : Pointer(&(*fit)) + : Pointer_(&(*fit)) {} Triangulation_face_handle_2(const All_faces_iterator& fit) - : Pointer(&(*fit)) + : Pointer_(&(*fit)) {} Triangulation_face_handle_2(const Face_circulator& fc) - : Pointer(&(*fc)) + : Pointer_(&(*fc)) {} Face_handle& operator=(Face* p) @@ -109,7 +109,7 @@ class Triangulation_vertex_handle_2 :public Pointer > { public: - typedef Pointer > Pointer; + typedef Pointer > Pointer_; typedef Triangulation_vertex_2 Vertex; typedef Triangulation_vertex_handle_2 Vertex_handle; @@ -120,27 +120,27 @@ public: typedef Triangulation_vertex_circulator_2 Vertex_circulator; Triangulation_vertex_handle_2() - : Pointer(NULL) + : Pointer_(NULL) {} Triangulation_vertex_handle_2(const Vertex* p) - : Pointer(p) + : Pointer_(p) {} Triangulation_vertex_handle_2(const Vertex_handle& p) - : Pointer(p.ptr()) + : Pointer_(p.ptr()) {} Triangulation_vertex_handle_2(const Finite_vertices_iterator& vit) - : Pointer(&(*vit)) + : Pointer_(&(*vit)) {} Triangulation_vertex_handle_2(const All_vertices_iterator& vit) - : Pointer(&(*vit)) + : Pointer_(&(*vit)) {} Triangulation_vertex_handle_2(const Vertex_circulator& vc) - : Pointer(&(*vc)) + : Pointer_(&(*vc)) {} Vertex_handle& operator=(Vertex* p)