From aaeaf3538097f5cbcc75534b46c05cd2d317fb58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mael=20Rouxel-Labb=C3=A9?= Date: Wed, 23 Aug 2017 16:18:05 +0200 Subject: [PATCH] Introduced the tag "Periodic_tag" to mark distinguish periodic triangulations --- .../include/CGAL/Periodic_2_Delaunay_triangulation_2.h | 6 ++++++ .../include/CGAL/Periodic_2_triangulation_2.h | 4 +++- .../CGAL/Periodic_2_triangulation_hierarchy_2.h | 1 + .../include/CGAL/Periodic_3_Delaunay_triangulation_3.h | 6 ++++++ .../include/CGAL/Periodic_3_regular_triangulation_3.h | 3 +++ .../include/CGAL/Periodic_3_triangulation_3.h | 6 +++++- .../CGAL/Periodic_3_triangulation_hierarchy_3.h | 3 +++ Triangulation/include/CGAL/Delaunay_triangulation.h | 5 ++--- Triangulation/include/CGAL/Regular_triangulation.h | 5 ++--- Triangulation/include/CGAL/Triangulation.h | 6 ++++++ .../CGAL/Constrained_Delaunay_triangulation_2.h | 6 ++++++ .../include/CGAL/Constrained_triangulation_2.h | 9 +++++++-- .../include/CGAL/Constrained_triangulation_plus_2.h | 10 ++++++++-- .../include/CGAL/Delaunay_triangulation_2.h | 6 ++++++ Triangulation_2/include/CGAL/Regular_triangulation_2.h | 5 ++++- Triangulation_2/include/CGAL/Triangulation_2.h | 5 ++++- .../include/CGAL/Triangulation_hierarchy_2.h | 3 ++- .../include/CGAL/Delaunay_triangulation_3.h | 5 +++++ Triangulation_3/include/CGAL/Regular_triangulation_3.h | 5 ++++- Triangulation_3/include/CGAL/Triangulation_3.h | 5 +++-- .../include/CGAL/Triangulation_hierarchy_3.h | 3 +++ 21 files changed, 89 insertions(+), 18 deletions(-) diff --git a/Periodic_2_triangulation_2/include/CGAL/Periodic_2_Delaunay_triangulation_2.h b/Periodic_2_triangulation_2/include/CGAL/Periodic_2_Delaunay_triangulation_2.h index bb78eedc929..aa6ef35eea9 100644 --- a/Periodic_2_triangulation_2/include/CGAL/Periodic_2_Delaunay_triangulation_2.h +++ b/Periodic_2_triangulation_2/include/CGAL/Periodic_2_Delaunay_triangulation_2.h @@ -87,6 +87,12 @@ public: typedef typename Base::Periodic_segment_iterator Periodic_segment_iterator; typedef typename Base::Periodic_triangle_iterator Periodic_triangle_iterator; + //Tag to distinguish Delaunay from regular triangulations + typedef Tag_false Weighted_tag; + + // Tag to distinguish periodic triangulations from others + typedef Tag_true Periodic_tag; + public: #ifndef CGAL_CFG_USING_BASE_MEMBER_BUG_2 using Base::empty; diff --git a/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2.h b/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2.h index 30fc94d27c0..9f7c1dd3832 100644 --- a/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2.h +++ b/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2.h @@ -204,10 +204,12 @@ public: typedef value_type& reference; // \} - /// Tag to distinguish regular triangulations from others; typedef Tag_false Weighted_tag; + /// Tag to distinguish periodic triangulations from others + typedef Tag_true Periodic_tag; + protected: // Protected types of Periodic_2_triangulation_2 typedef typename Gt::Orientation_2 Orientation_2; diff --git a/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_hierarchy_2.h b/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_hierarchy_2.h index 9b054f57b33..3fc9551b7ed 100644 --- a/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_hierarchy_2.h +++ b/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_hierarchy_2.h @@ -63,6 +63,7 @@ public: //typedef typename PTr::Finite_faces_iterator Finite_faces_iterator; typedef typename PTr::Weighted_tag Weighted_tag; + typedef typename PTr::Periodic_tag Periodic_tag; #ifndef CGAL_CFG_USING_BASE_MEMBER_BUG_2 using PTr_Base::geom_traits; diff --git a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_Delaunay_triangulation_3.h b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_Delaunay_triangulation_3.h index 48742627d61..1791351a5ce 100644 --- a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_Delaunay_triangulation_3.h +++ b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_Delaunay_triangulation_3.h @@ -114,6 +114,12 @@ public: typedef typename Base::Periodic_tetrahedron_iterator Periodic_tetrahedron_iterator; //@} + //Tag to distinguish Delaunay from Regular triangulations + typedef Tag_false Weighted_tag; + + // Tag to distinguish periodic triangulations from others + typedef Tag_true Periodic_tag; + #ifndef CGAL_CFG_USING_BASE_MEMBER_BUG_2 using Base::cw; using Base::ccw; diff --git a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_regular_triangulation_3.h b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_regular_triangulation_3.h index e84ff24810b..7565c350907 100644 --- a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_regular_triangulation_3.h +++ b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_regular_triangulation_3.h @@ -129,6 +129,9 @@ public: //Tag to distinguish Delaunay from Regular triangulations typedef Tag_true Weighted_tag; + // Tag to distinguish periodic triangulations from others + typedef Tag_true Periodic_tag; + #ifndef CGAL_CFG_USING_BASE_MEMBER_BUG_2 using Tr_Base::cw; using Tr_Base::ccw; diff --git a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h index a2b12ac35d2..b639e45b841 100644 --- a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h +++ b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h @@ -201,7 +201,11 @@ public: typedef Point value_type; typedef const value_type& const_reference; - typedef Tag_false Weighted_tag; + //Tag to distinguish regular triangulations from others + typedef Tag_false Weighted_tag; + + // Tag to distinguish periodic triangulations from others + typedef Tag_true Periodic_tag; public: enum Iterator_type { diff --git a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_hierarchy_3.h b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_hierarchy_3.h index 5dd24e96a7f..89f8de7a731 100644 --- a/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_hierarchy_3.h +++ b/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_hierarchy_3.h @@ -64,6 +64,9 @@ public: typedef typename PTr_Base::Facet_iterator Facet_iterator; typedef typename PTr_Base::Edge_iterator Edge_iterator; + typedef typename PTr_Base::Weighted_tag Weighted_tag; + typedef typename PTr_Base::Periodic_tag Periodic_tag; + #ifndef CGAL_CFG_USING_BASE_MEMBER_BUG_2 using PTr_Base::number_of_vertices; using PTr_Base::geom_traits; diff --git a/Triangulation/include/CGAL/Delaunay_triangulation.h b/Triangulation/include/CGAL/Delaunay_triangulation.h index 8da896cdf1d..dbb94ee84ba 100644 --- a/Triangulation/include/CGAL/Delaunay_triangulation.h +++ b/Triangulation/include/CGAL/Delaunay_triangulation.h @@ -90,11 +90,10 @@ public: // PUBLIC NESTED TYPES //Tag to distinguish triangulations with weighted_points typedef Tag_false Weighted_tag; -protected: // DATA MEMBERS - + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; public: - typedef typename Base::Rotor Rotor; using Base::maximal_dimension; using Base::are_incident_full_cells_valid; diff --git a/Triangulation/include/CGAL/Regular_triangulation.h b/Triangulation/include/CGAL/Regular_triangulation.h index ac1cd942856..b5c400c3d1b 100644 --- a/Triangulation/include/CGAL/Regular_triangulation.h +++ b/Triangulation/include/CGAL/Regular_triangulation.h @@ -95,11 +95,10 @@ public: // PUBLIC NESTED TYPES //Tag to distinguish Delaunay from Regular triangulations typedef Tag_true Weighted_tag; -protected: // DATA MEMBERS - + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; public: - typedef typename Base::Point Weighted_point; typedef typename Base::Rotor Rotor; using Base::maximal_dimension; diff --git a/Triangulation/include/CGAL/Triangulation.h b/Triangulation/include/CGAL/Triangulation.h index 3c208d50b9a..8c9e2cb2a60 100644 --- a/Triangulation/include/CGAL/Triangulation.h +++ b/Triangulation/include/CGAL/Triangulation.h @@ -183,6 +183,12 @@ public: typedef boost::filter_iterator Finite_facet_iterator; + //Tag to distinguish Delaunay from regular triangulations + typedef Tag_false Weighted_tag; + + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; + protected: // DATA MEMBERS Triangulation_ds tds_; diff --git a/Triangulation_2/include/CGAL/Constrained_Delaunay_triangulation_2.h b/Triangulation_2/include/CGAL/Constrained_Delaunay_triangulation_2.h index 1273a2fc090..b2918cc6d57 100644 --- a/Triangulation_2/include/CGAL/Constrained_Delaunay_triangulation_2.h +++ b/Triangulation_2/include/CGAL/Constrained_Delaunay_triangulation_2.h @@ -90,6 +90,12 @@ public: typedef typename Ctr::Less_edge less_edge; typedef typename Ctr::Edge_set Edge_set; + //Tag to distinguish Delaunay from regular triangulations + typedef Tag_false Weighted_tag; + + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; + #ifndef CGAL_CFG_USING_BASE_MEMBER_BUG_2 using Ctr::geom_traits; using Ctr::number_of_vertices; diff --git a/Triangulation_2/include/CGAL/Constrained_triangulation_2.h b/Triangulation_2/include/CGAL/Constrained_triangulation_2.h index 7cba2e23576..6ad2d9f9b18 100644 --- a/Triangulation_2/include/CGAL/Constrained_triangulation_2.h +++ b/Triangulation_2/include/CGAL/Constrained_triangulation_2.h @@ -141,8 +141,13 @@ public: typedef std::list List_constraints; // Tag to mark the presence of a hierarchy of constraints - typedef Tag_false Constraint_hierarchy_tag; - + typedef Tag_false Constraint_hierarchy_tag; + + //Tag to distinguish Delaunay from regular triangulations + typedef Tag_false Weighted_tag; + + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; class Less_edge; typedef std::set Edge_set; diff --git a/Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h b/Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h index 0f6244aed5f..5e2263480e1 100644 --- a/Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h +++ b/Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h @@ -161,10 +161,16 @@ public: typedef Polyline_constraint_hierarchy_2 Constraint_hierarchy; public: - typedef Tag_true Constraint_hierarchy_tag; + // Tag to mark the presence of a hierarchy of constraints + typedef Tag_true Constraint_hierarchy_tag; + + //Tag to distinguish Delaunay from regular triangulations + typedef Tag_false Weighted_tag; + + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; // for user interface with the constraint hierarchy - typedef typename Constraint_hierarchy::Vertex_it Vertices_in_constraint_iterator; diff --git a/Triangulation_2/include/CGAL/Delaunay_triangulation_2.h b/Triangulation_2/include/CGAL/Delaunay_triangulation_2.h index 12f7fb372bc..d9cd3b4b9d1 100644 --- a/Triangulation_2/include/CGAL/Delaunay_triangulation_2.h +++ b/Triangulation_2/include/CGAL/Delaunay_triangulation_2.h @@ -70,6 +70,12 @@ public: Finite_vertices_iterator; typedef typename Triangulation::All_faces_iterator All_faces_iterator; + //Tag to distinguish Delaunay from regular triangulations + typedef Tag_false Weighted_tag; + + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; + #ifndef CGAL_CFG_USING_BASE_MEMBER_BUG_2 using Triangulation::side_of_oriented_circle; using Triangulation::circumcenter; diff --git a/Triangulation_2/include/CGAL/Regular_triangulation_2.h b/Triangulation_2/include/CGAL/Regular_triangulation_2.h index 1c08e10a286..c418a87cce6 100644 --- a/Triangulation_2/include/CGAL/Regular_triangulation_2.h +++ b/Triangulation_2/include/CGAL/Regular_triangulation_2.h @@ -199,9 +199,12 @@ public: typedef Finite_edges_iterator Edge_iterator; typedef Finite_vertices_iterator Vertex_iterator; - //Tag to distinguish Delaunay from regular triangulations + //Tag to distinguish Delaunay from regular triangulations typedef Tag_true Weighted_tag; + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; + private: size_type _hidden_vertices; diff --git a/Triangulation_2/include/CGAL/Triangulation_2.h b/Triangulation_2/include/CGAL/Triangulation_2.h index e6982fff74f..ad03bdeb388 100644 --- a/Triangulation_2/include/CGAL/Triangulation_2.h +++ b/Triangulation_2/include/CGAL/Triangulation_2.h @@ -211,9 +211,12 @@ public: OUTSIDE_CONVEX_HULL, //3 OUTSIDE_AFFINE_HULL}; //4 - //Tag to distinguish regular triangulations from others; + //Tag to distinguish regular triangulations from others typedef Tag_false Weighted_tag; + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; + protected: Gt _gt; Tds _tds; diff --git a/Triangulation_2/include/CGAL/Triangulation_hierarchy_2.h b/Triangulation_2/include/CGAL/Triangulation_hierarchy_2.h index 4311fea1369..dcadf7ed10b 100644 --- a/Triangulation_2/include/CGAL/Triangulation_hierarchy_2.h +++ b/Triangulation_2/include/CGAL/Triangulation_hierarchy_2.h @@ -76,9 +76,10 @@ class Triangulation_hierarchy_2 typename internal::Bare_point_type, boost::mpl::identity >::type Bare_point; - typedef typename Geom_traits::Weighted_point_2 Weighted_point; + typedef typename Tr_Base::Weighted_tag Weighted_tag; + typedef typename Tr_Base::Periodic_tag Periodic_tag; #ifndef CGAL_CFG_USING_BASE_MEMBER_BUG_2 using Tr_Base::geom_traits; diff --git a/Triangulation_3/include/CGAL/Delaunay_triangulation_3.h b/Triangulation_3/include/CGAL/Delaunay_triangulation_3.h index 3f18c2f5e57..a574313cf2b 100644 --- a/Triangulation_3/include/CGAL/Delaunay_triangulation_3.h +++ b/Triangulation_3/include/CGAL/Delaunay_triangulation_3.h @@ -136,6 +136,11 @@ public: typedef typename Tr_Base::size_type size_type; typedef typename Tr_Base::Locate_type Locate_type; + //Tag to distinguish Delaunay from regular triangulations + typedef Tag_false Weighted_tag; + + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; #ifndef CGAL_CFG_USING_BASE_MEMBER_BUG_2 using Tr_Base::cw; diff --git a/Triangulation_3/include/CGAL/Regular_triangulation_3.h b/Triangulation_3/include/CGAL/Regular_triangulation_3.h index d2a06431086..6f6e2e2b2a6 100644 --- a/Triangulation_3/include/CGAL/Regular_triangulation_3.h +++ b/Triangulation_3/include/CGAL/Regular_triangulation_3.h @@ -146,7 +146,10 @@ namespace CGAL { typedef typename Gt::Object_3 Object; //Tag to distinguish Delaunay from regular triangulations - typedef Tag_true Weighted_tag; + typedef Tag_true Weighted_tag; + + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; #ifndef CGAL_CFG_USING_BASE_MEMBER_BUG_2 using Tr_Base::geom_traits; diff --git a/Triangulation_3/include/CGAL/Triangulation_3.h b/Triangulation_3/include/CGAL/Triangulation_3.h index e08488c14da..2fb91cda9d2 100644 --- a/Triangulation_3/include/CGAL/Triangulation_3.h +++ b/Triangulation_3/include/CGAL/Triangulation_3.h @@ -531,9 +531,10 @@ public: typedef const value_type& const_reference; //Tag to distinguish triangulations with weighted_points - typedef Tag_false Weighted_tag; - + typedef Tag_false Weighted_tag; + // Tag to distinguish periodic triangulations from others + typedef Tag_false Periodic_tag; enum Locate_type { VERTEX=0, diff --git a/Triangulation_3/include/CGAL/Triangulation_hierarchy_3.h b/Triangulation_3/include/CGAL/Triangulation_hierarchy_3.h index 1969fd45d66..40e0cde20e8 100644 --- a/Triangulation_3/include/CGAL/Triangulation_hierarchy_3.h +++ b/Triangulation_3/include/CGAL/Triangulation_hierarchy_3.h @@ -90,6 +90,9 @@ public: // this may be weighted or not typedef typename Tr_Base::Point Point; + typedef typename Tr_Base::Weighted_tag Weighted_tag; + typedef typename Tr_Base::Periodic_tag Periodic_tag; + using Tr_Base::number_of_vertices; using Tr_Base::geom_traits;