From 232efb98238c1501d62c65e1732b5eaa10454b84 Mon Sep 17 00:00:00 2001 From: Clement Jamin Date: Tue, 27 Oct 2015 17:27:46 +0100 Subject: [PATCH] Hide Regular_triangulation_euclidean_traits from the doc and use it internally The user can now pass Epick_d directly to Regular_triangulation. Regular_triangulation_euclidean_traits is used internally to adapt the functors. --- .../Triangulation/points_to_RT_to_off.cpp | 4 +- .../Triangulation/Td_vs_T2_and_T3.cpp | 4 +- .../CGAL/Regular_triangulation.h | 3 +- .../Regular_triangulation_euclidean_traits.h | 25 ----- .../Concepts/RegularTriangulationTraits.h | 9 +- .../doc/Triangulation/PackageDescription.txt | 7 -- .../Triangulation/regular_triangulation.cpp | 8 +- .../include/CGAL/Regular_triangulation.h | 92 ++++++++++--------- .../Triangulation/test_insert_if_in_star.cpp | 4 +- .../test/Triangulation/test_regular.cpp | 4 +- 10 files changed, 58 insertions(+), 102 deletions(-) delete mode 100644 Triangulation/doc/Triangulation/CGAL/Regular_triangulation_euclidean_traits.h diff --git a/Triangulation/applications/Triangulation/points_to_RT_to_off.cpp b/Triangulation/applications/Triangulation/points_to_RT_to_off.cpp index 94a633a505d..c882330d392 100644 --- a/Triangulation/applications/Triangulation/points_to_RT_to_off.cpp +++ b/Triangulation/applications/Triangulation/points_to_RT_to_off.cpp @@ -1,13 +1,11 @@ #include -#include #include #include #include typedef CGAL::Epick_d K; -typedef CGAL::Regular_triangulation_euclidean_traits Traits; -typedef CGAL::Regular_triangulation RT; +typedef CGAL::Regular_triangulation RT; void test(int dim) { diff --git a/Triangulation/benchmark/Triangulation/Td_vs_T2_and_T3.cpp b/Triangulation/benchmark/Triangulation/Td_vs_T2_and_T3.cpp index 3c9bacc51cd..2c4ac1c98a9 100644 --- a/Triangulation/benchmark/Triangulation/Td_vs_T2_and_T3.cpp +++ b/Triangulation/benchmark/Triangulation/Td_vs_T2_and_T3.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -156,8 +155,7 @@ void go(const int N) points_d.push_back(Point_d(D, coords[i].begin(), coords[i].end())); // RTd - typedef CGAL::Regular_triangulation_euclidean_traits Traits_d; - typedef CGAL::Regular_triangulation RT_d; + typedef CGAL::Regular_triangulation RT_d; typedef typename RT_d::Bare_point Bare_point_d; typedef typename RT_d::Point WPoint_d; diff --git a/Triangulation/doc/Triangulation/CGAL/Regular_triangulation.h b/Triangulation/doc/Triangulation/CGAL/Regular_triangulation.h index 115d03cef74..8e530137e38 100644 --- a/Triangulation/doc/Triangulation/CGAL/Regular_triangulation.h +++ b/Triangulation/doc/Triangulation/CGAL/Regular_triangulation.h @@ -45,8 +45,7 @@ Parameters \tparam RegularTriangulationTraits is the geometric traits class that provides the geometric types and predicates needed by regular triangulations. `RegularTriangulationTraits` must be a model of the concept -`RegularTriangulationTraits`. CGAL provides the class -`Regular_triangulation_euclidean_traits` for this purpose. +`RegularTriangulationTraits`. \tparam TriangulationDataStructure must be a model of the concept `TriangulationDataStructure`. This model is used to store diff --git a/Triangulation/doc/Triangulation/CGAL/Regular_triangulation_euclidean_traits.h b/Triangulation/doc/Triangulation/CGAL/Regular_triangulation_euclidean_traits.h deleted file mode 100644 index 5aeadf5b9c6..00000000000 --- a/Triangulation/doc/Triangulation/CGAL/Regular_triangulation_euclidean_traits.h +++ /dev/null @@ -1,25 +0,0 @@ - -namespace CGAL { - - /*! - \ingroup PkgTriangulationsTraitsClasses - - The class `Regular_triangulation_euclidean_traits` is designed as a traits - class for the class - `Regular_triangulation`. - - \tparam K must be a model of the `Kernel_d` concept. We recommend to use - `Epick_d`. - - \tparam Weight is optional. If is it not provided, `K::RT` will be used. - - \cgalModels `RegularTriangulationTraits` - */ -template < class K, class Weight = typename K::RT > -class Regular_triangulation_euclidean_traits - : public K -{ -}; - -} //namespace CGAL - diff --git a/Triangulation/doc/Triangulation/Concepts/RegularTriangulationTraits.h b/Triangulation/doc/Triangulation/Concepts/RegularTriangulationTraits.h index 4be5635e789..6690823286b 100644 --- a/Triangulation/doc/Triangulation/Concepts/RegularTriangulationTraits.h +++ b/Triangulation/doc/Triangulation/Concepts/RegularTriangulationTraits.h @@ -25,18 +25,13 @@ An arithmetic field type. typedef unspecified_type FT; /*! -The weighted point type. Must be the same type as `TriangulationTraits::Point_d`. +The weighted point type. */ typedef unspecified_type Weighted_point; -/*! -The un-weighted point type. -*/ -typedef unspecified_type Bare_point; - /*! A predicate object that must provide the operator -`Bare_point operator()(const Weighted_point & wp)`, returning +`Point_d operator()(const Weighted_point & wp)`, returning `wp` without its weight. */ typedef unspecified_type Point_drop_weight_d; diff --git a/Triangulation/doc/Triangulation/PackageDescription.txt b/Triangulation/doc/Triangulation/PackageDescription.txt index e307e02dfa2..312cf68e657 100644 --- a/Triangulation/doc/Triangulation/PackageDescription.txt +++ b/Triangulation/doc/Triangulation/PackageDescription.txt @@ -8,9 +8,6 @@ /// \defgroup PkgTriangulationsVertexCellClasses Vertex, Face and Cell Classes /// \ingroup PkgTriangulations -/// \defgroup PkgTriangulationsTraitsClasses Traits Classes -/// \ingroup PkgTriangulations - /*! \addtogroup PkgTriangulations \cgalPkgDescriptionBegin{dD Triangulations,PkgTriangulationsSummary} @@ -110,10 +107,6 @@ The latter two concepts are also abbreviated respectively as `TrVertex` and `TrF - `CGAL::Triangulation_vertex` - `CGAL::Triangulation_full_cell` -## Traits ## - -- `CGAL::Regular_triangulation_euclidean_traits` - ## Enums ## - `CGAL::Triangulation::Locate_type` diff --git a/Triangulation/examples/Triangulation/regular_triangulation.cpp b/Triangulation/examples/Triangulation/regular_triangulation.cpp index 941a5e5ba19..a8a917db17e 100644 --- a/Triangulation/examples/Triangulation/regular_triangulation.cpp +++ b/Triangulation/examples/Triangulation/regular_triangulation.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include #include @@ -11,10 +10,9 @@ const int D = 5; // Dimension const int N = 100; // Number of points typedef CGAL::Epick_d< CGAL::Dimension_tag > K; -typedef CGAL::Regular_triangulation_euclidean_traits Traits; -typedef Traits::Bare_point Bare_point; -typedef Traits::Weighted_point Weighted_point; -typedef CGAL::Regular_triangulation T; +typedef CGAL::Regular_triangulation T; +typedef T::Bare_point Bare_point; +typedef T::Weighted_point Weighted_point; int main() { diff --git a/Triangulation/include/CGAL/Regular_triangulation.h b/Triangulation/include/CGAL/Regular_triangulation.h index a3b642a570f..a1f71d31c01 100644 --- a/Triangulation/include/CGAL/Regular_triangulation.h +++ b/Triangulation/include/CGAL/Regular_triangulation.h @@ -24,33 +24,37 @@ #include #include #include -#include +#include #include namespace CGAL { -template< typename RTTraits, typename TDS_ = Default > +template< typename Traits_, typename TDS_ = Default > class Regular_triangulation : public Triangulation< - RTTraits, - typename Default::Get, - Triangulation_full_cell > - >::type > + CGAL::Regular_triangulation_euclidean_traits, + typename Default::Get< + TDS_, + Triangulation_data_structure< + typename CGAL::Regular_triangulation_euclidean_traits::Dimension, + Triangulation_vertex >, + Triangulation_full_cell > + > + >::type> { - typedef typename RTTraits::Dimension Maximal_dimension_; + typedef CGAL::Regular_triangulation_euclidean_traits RTTraits; + typedef typename RTTraits::Dimension Maximal_dimension_; typedef typename Default::Get< TDS_, Triangulation_data_structure< - Maximal_dimension_, - Triangulation_vertex, - Triangulation_full_cell - > >::type TDS; - typedef Triangulation Base; - typedef Regular_triangulation Self; - + Maximal_dimension_, + Triangulation_vertex, + Triangulation_full_cell + > >::type TDS; + typedef Triangulation Base; + typedef Regular_triangulation Self; + typedef typename RTTraits::Orientation_d Orientation_d; typedef typename RTTraits::Power_test_d Power_test_d; typedef typename RTTraits::In_flat_power_test_d In_flat_power_test_d; @@ -465,9 +469,9 @@ private: // Warning: this function is not correct since it does not restore hidden // vertices -template< typename RTTraits, typename TDS > -typename Regular_triangulation::Full_cell_handle -Regular_triangulation +template< typename Traits, typename TDS > +typename Regular_triangulation::Full_cell_handle +Regular_triangulation ::remove( Vertex_handle v ) { CGAL_precondition( ! is_infinite(v) ); @@ -522,12 +526,12 @@ Regular_triangulation typedef Triangulation_vertex Dark_vertex_base; typedef Triangulation_full_cell< Geom_traits, - internal::Triangulation::Dark_full_cell_data > Dark_full_cell_base; + internal::Triangulation::Dark_full_cell_data > Dark_full_cell_base; typedef Triangulation_data_structure Dark_tds; - typedef Regular_triangulation Dark_triangulation; + typedef Regular_triangulation Dark_triangulation; typedef typename Dark_triangulation::Face Dark_face; typedef typename Dark_triangulation::Facet Dark_facet; typedef typename Dark_triangulation::Vertex_handle Dark_v_handle; @@ -762,9 +766,9 @@ Regular_triangulation return ret_s; } -template< typename RTTraits, typename TDS > +template< typename Traits, typename TDS > void -Regular_triangulation +Regular_triangulation ::remove_decrease_dimension(Vertex_handle v) { CGAL_precondition( current_dimension() >= 0 ); @@ -785,9 +789,9 @@ Regular_triangulation // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - INSERTIONS -template< typename RTTraits, typename TDS > -typename Regular_triangulation::Vertex_handle -Regular_triangulation +template< typename Traits, typename TDS > +typename Regular_triangulation::Vertex_handle +Regular_triangulation ::insert(const Weighted_point & p, const Locate_type lt, const Face & f, const Facet & ft, const Full_cell_handle s) { switch( lt ) @@ -821,9 +825,9 @@ Regular_triangulation } } -template< typename RTTraits, typename TDS > -typename Regular_triangulation::Vertex_handle -Regular_triangulation +template< typename Traits, typename TDS > +typename Regular_triangulation::Vertex_handle +Regular_triangulation ::insert_outside_affine_hull(const Weighted_point & p) { // we don't use Base::insert_outside_affine_hull(...) because here, we @@ -870,9 +874,9 @@ Regular_triangulation return v; } -template< typename RTTraits, typename TDS > -typename Regular_triangulation::Vertex_handle -Regular_triangulation +template< typename Traits, typename TDS > +typename Regular_triangulation::Vertex_handle +Regular_triangulation ::insert_if_in_star(const Weighted_point & p, const Vertex_handle star_center, const Locate_type lt, const Face & f, const Facet & ft, @@ -910,9 +914,9 @@ Regular_triangulation return Vertex_handle(); } -template< typename RTTraits, typename TDS > -typename Regular_triangulation::Vertex_handle -Regular_triangulation +template< typename Traits, typename TDS > +typename Regular_triangulation::Vertex_handle +Regular_triangulation ::insert_in_conflicting_cell(const Weighted_point & p, const Full_cell_handle s, const Vertex_handle only_if_this_vertex_is_in_the_cz) @@ -960,10 +964,10 @@ Regular_triangulation // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GATHERING CONFLICTING SIMPLICES // NOT DOCUMENTED -template< typename RTTraits, typename TDS > +template< typename Traits, typename TDS > template< typename OrientationPred > Oriented_side -Regular_triangulation +Regular_triangulation ::perturbed_power_test(const Weighted_point & p, Full_cell_const_handle s, const OrientationPred & ori) const { @@ -1018,9 +1022,9 @@ Regular_triangulation return ON_NEGATIVE_SIDE; } -template< typename RTTraits, typename TDS > +template< typename Traits, typename TDS > bool -Regular_triangulation +Regular_triangulation ::is_in_conflict(const Weighted_point & p, Full_cell_const_handle s) const { CGAL_precondition( 1 <= current_dimension() ); @@ -1041,10 +1045,10 @@ Regular_triangulation } } -template< typename RTTraits, typename TDS > +template< typename Traits, typename TDS > template< typename OutputIterator > -typename Regular_triangulation::Facet -Regular_triangulation +typename Regular_triangulation::Facet +Regular_triangulation ::compute_conflict_zone(const Weighted_point & p, const Full_cell_handle s, OutputIterator out) const { CGAL_precondition( 1 <= current_dimension() ); @@ -1069,9 +1073,9 @@ Regular_triangulation // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VALIDITY -template< typename RTTraits, typename TDS > +template< typename Traits, typename TDS > bool -Regular_triangulation +Regular_triangulation ::is_valid(bool verbose, int level) const { if (!Base::is_valid(verbose, level)) diff --git a/Triangulation/test/Triangulation/test_insert_if_in_star.cpp b/Triangulation/test/Triangulation/test_insert_if_in_star.cpp index 3621c034fbc..4aeb5204566 100644 --- a/Triangulation/test/Triangulation/test_insert_if_in_star.cpp +++ b/Triangulation/test/Triangulation/test_insert_if_in_star.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include #include @@ -81,8 +80,7 @@ void go(const int N) { //typedef CGAL::Epick_d FK; typedef CGAL::Epick_d > FK; - typedef CGAL::Regular_triangulation_euclidean_traits Traits; - typedef CGAL::Regular_triangulation Triangulation; + typedef CGAL::Regular_triangulation Triangulation; //test(D, "dynamic", N); test(D, "static", N); } diff --git a/Triangulation/test/Triangulation/test_regular.cpp b/Triangulation/test/Triangulation/test_regular.cpp index 01aa6d957c5..fc319e39ff0 100644 --- a/Triangulation/test/Triangulation/test_regular.cpp +++ b/Triangulation/test/Triangulation/test_regular.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include #include @@ -110,8 +109,7 @@ void go(const int N) { //typedef CGAL::Epick_d FK; typedef CGAL::Epick_d > FK; - typedef CGAL::Regular_triangulation_euclidean_traits Traits; - typedef CGAL::Regular_triangulation Triangulation; + typedef CGAL::Regular_triangulation Triangulation; //test(D, "dynamic", N); test(D, "static", N); }