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.
This commit is contained in:
Clement Jamin 2015-10-27 17:27:46 +01:00
parent 2b689787fe
commit 232efb9823
10 changed files with 58 additions and 102 deletions

View File

@ -1,13 +1,11 @@
#include <CGAL/Epick_d.h> #include <CGAL/Epick_d.h>
#include <CGAL/Regular_triangulation_euclidean_traits.h>
#include <CGAL/Regular_triangulation.h> #include <CGAL/Regular_triangulation.h>
#include <CGAL/IO/Triangulation_off_ostream.h> #include <CGAL/IO/Triangulation_off_ostream.h>
#include <fstream> #include <fstream>
typedef CGAL::Epick_d<CGAL::Dynamic_dimension_tag> K; typedef CGAL::Epick_d<CGAL::Dynamic_dimension_tag> K;
typedef CGAL::Regular_triangulation_euclidean_traits<K> Traits; typedef CGAL::Regular_triangulation<K> RT;
typedef CGAL::Regular_triangulation<Traits> RT;
void test(int dim) void test(int dim)
{ {

View File

@ -4,7 +4,6 @@
#include <CGAL/Epick_d.h> #include <CGAL/Epick_d.h>
#include <CGAL/Delaunay_triangulation.h> #include <CGAL/Delaunay_triangulation.h>
#include <CGAL/Regular_triangulation.h> #include <CGAL/Regular_triangulation.h>
#include <CGAL/Regular_triangulation_euclidean_traits.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Regular_triangulation_euclidean_traits_2.h> #include <CGAL/Regular_triangulation_euclidean_traits_2.h>
@ -156,8 +155,7 @@ void go(const int N)
points_d.push_back(Point_d(D, coords[i].begin(), coords[i].end())); points_d.push_back(Point_d(D, coords[i].begin(), coords[i].end()));
// RTd // RTd
typedef CGAL::Regular_triangulation_euclidean_traits<Kd> Traits_d; typedef CGAL::Regular_triangulation<Kd> RT_d;
typedef CGAL::Regular_triangulation<Traits_d> RT_d;
typedef typename RT_d::Bare_point Bare_point_d; typedef typename RT_d::Bare_point Bare_point_d;
typedef typename RT_d::Point WPoint_d; typedef typename RT_d::Point WPoint_d;

View File

@ -45,8 +45,7 @@ Parameters
\tparam RegularTriangulationTraits is the geometric traits class that provides the \tparam RegularTriangulationTraits is the geometric traits class that provides the
geometric types and predicates needed by regular triangulations. geometric types and predicates needed by regular triangulations.
`RegularTriangulationTraits` must be a model of the concept `RegularTriangulationTraits` must be a model of the concept
`RegularTriangulationTraits`. CGAL provides the class `RegularTriangulationTraits`.
`Regular_triangulation_euclidean_traits` for this purpose.
\tparam TriangulationDataStructure must be a model of the concept \tparam TriangulationDataStructure must be a model of the concept
`TriangulationDataStructure`. This model is used to store `TriangulationDataStructure`. This model is used to store

View File

@ -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<RegularTriangulationTraits, TriangulationDataStructure>`.
\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

View File

@ -25,18 +25,13 @@ An arithmetic field type.
typedef unspecified_type FT; 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; typedef unspecified_type Weighted_point;
/*!
The un-weighted point type.
*/
typedef unspecified_type Bare_point;
/*! /*!
A predicate object that must provide the operator 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. `wp` without its weight.
*/ */
typedef unspecified_type Point_drop_weight_d; typedef unspecified_type Point_drop_weight_d;

View File

@ -8,9 +8,6 @@
/// \defgroup PkgTriangulationsVertexCellClasses Vertex, Face and Cell Classes /// \defgroup PkgTriangulationsVertexCellClasses Vertex, Face and Cell Classes
/// \ingroup PkgTriangulations /// \ingroup PkgTriangulations
/// \defgroup PkgTriangulationsTraitsClasses Traits Classes
/// \ingroup PkgTriangulations
/*! /*!
\addtogroup PkgTriangulations \addtogroup PkgTriangulations
\cgalPkgDescriptionBegin{dD Triangulations,PkgTriangulationsSummary} \cgalPkgDescriptionBegin{dD Triangulations,PkgTriangulationsSummary}
@ -110,10 +107,6 @@ The latter two concepts are also abbreviated respectively as `TrVertex` and `TrF
- `CGAL::Triangulation_vertex<TriangulationTraits, Data, TriangulationDSVertex>` - `CGAL::Triangulation_vertex<TriangulationTraits, Data, TriangulationDSVertex>`
- `CGAL::Triangulation_full_cell<TriangulationTraits, Data, TriangulationDSFullCell>` - `CGAL::Triangulation_full_cell<TriangulationTraits, Data, TriangulationDSFullCell>`
## Traits ##
- `CGAL::Regular_triangulation_euclidean_traits<K, Weight>`
## Enums ## ## Enums ##
- `CGAL::Triangulation::Locate_type` - `CGAL::Triangulation::Locate_type`

View File

@ -1,7 +1,6 @@
#include <CGAL/Epick_d.h> #include <CGAL/Epick_d.h>
#include <CGAL/point_generators_d.h> #include <CGAL/point_generators_d.h>
#include <CGAL/Regular_triangulation.h> #include <CGAL/Regular_triangulation.h>
#include <CGAL/Regular_triangulation_euclidean_traits.h>
#include <CGAL/assertions.h> #include <CGAL/assertions.h>
#include <iostream> #include <iostream>
@ -11,10 +10,9 @@
const int D = 5; // Dimension const int D = 5; // Dimension
const int N = 100; // Number of points const int N = 100; // Number of points
typedef CGAL::Epick_d< CGAL::Dimension_tag<D> > K; typedef CGAL::Epick_d< CGAL::Dimension_tag<D> > K;
typedef CGAL::Regular_triangulation_euclidean_traits<K> Traits; typedef CGAL::Regular_triangulation<K> T;
typedef Traits::Bare_point Bare_point; typedef T::Bare_point Bare_point;
typedef Traits::Weighted_point Weighted_point; typedef T::Weighted_point Weighted_point;
typedef CGAL::Regular_triangulation<Traits> T;
int main() int main()
{ {

View File

@ -24,22 +24,26 @@
#include <CGAL/Dimension.h> #include <CGAL/Dimension.h>
#include <CGAL/Default.h> #include <CGAL/Default.h>
#include <CGAL/spatial_sort.h> #include <CGAL/spatial_sort.h>
#include <CGAL/Spatial_sort_traits_adapter_d.h> #include <CGAL/Regular_triangulation_euclidean_traits.h>
#include <boost/property_map/function_property_map.hpp> #include <boost/property_map/function_property_map.hpp>
namespace CGAL { namespace CGAL {
template< typename RTTraits, typename TDS_ = Default > template< typename Traits_, typename TDS_ = Default >
class Regular_triangulation class Regular_triangulation
: public Triangulation< : public Triangulation<
RTTraits, CGAL::Regular_triangulation_euclidean_traits<Traits_>,
typename Default::Get<TDS_, Triangulation_data_structure< typename Default::Get<
typename RTTraits::Dimension, TDS_,
Triangulation_vertex<RTTraits>, Triangulation_data_structure<
Triangulation_full_cell<RTTraits> > typename CGAL::Regular_triangulation_euclidean_traits<Traits_>::Dimension,
>::type > Triangulation_vertex<CGAL::Regular_triangulation_euclidean_traits<Traits_> >,
Triangulation_full_cell<CGAL::Regular_triangulation_euclidean_traits<Traits_> >
>
>::type>
{ {
typedef CGAL::Regular_triangulation_euclidean_traits<Traits_> RTTraits;
typedef typename RTTraits::Dimension Maximal_dimension_; typedef typename RTTraits::Dimension Maximal_dimension_;
typedef typename Default::Get< typedef typename Default::Get<
TDS_, TDS_,
@ -49,7 +53,7 @@ class Regular_triangulation
Triangulation_full_cell<RTTraits> Triangulation_full_cell<RTTraits>
> >::type TDS; > >::type TDS;
typedef Triangulation<RTTraits, TDS> Base; typedef Triangulation<RTTraits, TDS> Base;
typedef Regular_triangulation<RTTraits, TDS_> Self; typedef Regular_triangulation<Traits_, TDS_> Self;
typedef typename RTTraits::Orientation_d Orientation_d; typedef typename RTTraits::Orientation_d Orientation_d;
typedef typename RTTraits::Power_test_d Power_test_d; typedef typename RTTraits::Power_test_d Power_test_d;
@ -465,9 +469,9 @@ private:
// Warning: this function is not correct since it does not restore hidden // Warning: this function is not correct since it does not restore hidden
// vertices // vertices
template< typename RTTraits, typename TDS > template< typename Traits, typename TDS >
typename Regular_triangulation<RTTraits, TDS>::Full_cell_handle typename Regular_triangulation<Traits, TDS>::Full_cell_handle
Regular_triangulation<RTTraits, TDS> Regular_triangulation<Traits, TDS>
::remove( Vertex_handle v ) ::remove( Vertex_handle v )
{ {
CGAL_precondition( ! is_infinite(v) ); CGAL_precondition( ! is_infinite(v) );
@ -522,12 +526,12 @@ Regular_triangulation<RTTraits, TDS>
typedef Triangulation_vertex<Geom_traits, Vertex_handle> Dark_vertex_base; typedef Triangulation_vertex<Geom_traits, Vertex_handle> Dark_vertex_base;
typedef Triangulation_full_cell< typedef Triangulation_full_cell<
Geom_traits, Geom_traits,
internal::Triangulation::Dark_full_cell_data<Self> > Dark_full_cell_base; internal::Triangulation::Dark_full_cell_data<TDS> > Dark_full_cell_base;
typedef Triangulation_data_structure<Maximal_dimension, typedef Triangulation_data_structure<Maximal_dimension,
Dark_vertex_base, Dark_vertex_base,
Dark_full_cell_base Dark_full_cell_base
> Dark_tds; > Dark_tds;
typedef Regular_triangulation<RTTraits, Dark_tds> Dark_triangulation; typedef Regular_triangulation<Traits, Dark_tds> Dark_triangulation;
typedef typename Dark_triangulation::Face Dark_face; typedef typename Dark_triangulation::Face Dark_face;
typedef typename Dark_triangulation::Facet Dark_facet; typedef typename Dark_triangulation::Facet Dark_facet;
typedef typename Dark_triangulation::Vertex_handle Dark_v_handle; typedef typename Dark_triangulation::Vertex_handle Dark_v_handle;
@ -762,9 +766,9 @@ Regular_triangulation<RTTraits, TDS>
return ret_s; return ret_s;
} }
template< typename RTTraits, typename TDS > template< typename Traits, typename TDS >
void void
Regular_triangulation<RTTraits, TDS> Regular_triangulation<Traits, TDS>
::remove_decrease_dimension(Vertex_handle v) ::remove_decrease_dimension(Vertex_handle v)
{ {
CGAL_precondition( current_dimension() >= 0 ); CGAL_precondition( current_dimension() >= 0 );
@ -785,9 +789,9 @@ Regular_triangulation<RTTraits, TDS>
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - INSERTIONS // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - INSERTIONS
template< typename RTTraits, typename TDS > template< typename Traits, typename TDS >
typename Regular_triangulation<RTTraits, TDS>::Vertex_handle typename Regular_triangulation<Traits, TDS>::Vertex_handle
Regular_triangulation<RTTraits, TDS> Regular_triangulation<Traits, TDS>
::insert(const Weighted_point & p, const Locate_type lt, const Face & f, const Facet & ft, const Full_cell_handle s) ::insert(const Weighted_point & p, const Locate_type lt, const Face & f, const Facet & ft, const Full_cell_handle s)
{ {
switch( lt ) switch( lt )
@ -821,9 +825,9 @@ Regular_triangulation<RTTraits, TDS>
} }
} }
template< typename RTTraits, typename TDS > template< typename Traits, typename TDS >
typename Regular_triangulation<RTTraits, TDS>::Vertex_handle typename Regular_triangulation<Traits, TDS>::Vertex_handle
Regular_triangulation<RTTraits, TDS> Regular_triangulation<Traits, TDS>
::insert_outside_affine_hull(const Weighted_point & p) ::insert_outside_affine_hull(const Weighted_point & p)
{ {
// we don't use Base::insert_outside_affine_hull(...) because here, we // we don't use Base::insert_outside_affine_hull(...) because here, we
@ -870,9 +874,9 @@ Regular_triangulation<RTTraits, TDS>
return v; return v;
} }
template< typename RTTraits, typename TDS > template< typename Traits, typename TDS >
typename Regular_triangulation<RTTraits, TDS>::Vertex_handle typename Regular_triangulation<Traits, TDS>::Vertex_handle
Regular_triangulation<RTTraits, TDS> Regular_triangulation<Traits, TDS>
::insert_if_in_star(const Weighted_point & p, ::insert_if_in_star(const Weighted_point & p,
const Vertex_handle star_center, const Vertex_handle star_center,
const Locate_type lt, const Face & f, const Facet & ft, const Locate_type lt, const Face & f, const Facet & ft,
@ -910,9 +914,9 @@ Regular_triangulation<RTTraits, TDS>
return Vertex_handle(); return Vertex_handle();
} }
template< typename RTTraits, typename TDS > template< typename Traits, typename TDS >
typename Regular_triangulation<RTTraits, TDS>::Vertex_handle typename Regular_triangulation<Traits, TDS>::Vertex_handle
Regular_triangulation<RTTraits, TDS> Regular_triangulation<Traits, TDS>
::insert_in_conflicting_cell(const Weighted_point & p, ::insert_in_conflicting_cell(const Weighted_point & p,
const Full_cell_handle s, const Full_cell_handle s,
const Vertex_handle only_if_this_vertex_is_in_the_cz) const Vertex_handle only_if_this_vertex_is_in_the_cz)
@ -960,10 +964,10 @@ Regular_triangulation<RTTraits, TDS>
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GATHERING CONFLICTING SIMPLICES // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GATHERING CONFLICTING SIMPLICES
// NOT DOCUMENTED // NOT DOCUMENTED
template< typename RTTraits, typename TDS > template< typename Traits, typename TDS >
template< typename OrientationPred > template< typename OrientationPred >
Oriented_side Oriented_side
Regular_triangulation<RTTraits, TDS> Regular_triangulation<Traits, TDS>
::perturbed_power_test(const Weighted_point & p, Full_cell_const_handle s, ::perturbed_power_test(const Weighted_point & p, Full_cell_const_handle s,
const OrientationPred & ori) const const OrientationPred & ori) const
{ {
@ -1018,9 +1022,9 @@ Regular_triangulation<RTTraits, TDS>
return ON_NEGATIVE_SIDE; return ON_NEGATIVE_SIDE;
} }
template< typename RTTraits, typename TDS > template< typename Traits, typename TDS >
bool bool
Regular_triangulation<RTTraits, TDS> Regular_triangulation<Traits, TDS>
::is_in_conflict(const Weighted_point & p, Full_cell_const_handle s) const ::is_in_conflict(const Weighted_point & p, Full_cell_const_handle s) const
{ {
CGAL_precondition( 1 <= current_dimension() ); CGAL_precondition( 1 <= current_dimension() );
@ -1041,10 +1045,10 @@ Regular_triangulation<RTTraits, TDS>
} }
} }
template< typename RTTraits, typename TDS > template< typename Traits, typename TDS >
template< typename OutputIterator > template< typename OutputIterator >
typename Regular_triangulation<RTTraits, TDS>::Facet typename Regular_triangulation<Traits, TDS>::Facet
Regular_triangulation<RTTraits, TDS> Regular_triangulation<Traits, TDS>
::compute_conflict_zone(const Weighted_point & p, const Full_cell_handle s, OutputIterator out) const ::compute_conflict_zone(const Weighted_point & p, const Full_cell_handle s, OutputIterator out) const
{ {
CGAL_precondition( 1 <= current_dimension() ); CGAL_precondition( 1 <= current_dimension() );
@ -1069,9 +1073,9 @@ Regular_triangulation<RTTraits, TDS>
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VALIDITY // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VALIDITY
template< typename RTTraits, typename TDS > template< typename Traits, typename TDS >
bool bool
Regular_triangulation<RTTraits, TDS> Regular_triangulation<Traits, TDS>
::is_valid(bool verbose, int level) const ::is_valid(bool verbose, int level) const
{ {
if (!Base::is_valid(verbose, level)) if (!Base::is_valid(verbose, level))

View File

@ -1,7 +1,6 @@
#include <CGAL/Epick_d.h> #include <CGAL/Epick_d.h>
#include <CGAL/point_generators_d.h> #include <CGAL/point_generators_d.h>
#include <CGAL/Regular_triangulation.h> #include <CGAL/Regular_triangulation.h>
#include <CGAL/Regular_triangulation_euclidean_traits.h>
#include <CGAL/IO/Triangulation_off_ostream.h> #include <CGAL/IO/Triangulation_off_ostream.h>
#include <CGAL/algorithm.h> #include <CGAL/algorithm.h>
@ -81,8 +80,7 @@ void go(const int N)
{ {
//typedef CGAL::Epick_d<CGAL::Dynamic_dimension_tag> FK; //typedef CGAL::Epick_d<CGAL::Dynamic_dimension_tag> FK;
typedef CGAL::Epick_d<CGAL::Dimension_tag<D> > FK; typedef CGAL::Epick_d<CGAL::Dimension_tag<D> > FK;
typedef CGAL::Regular_triangulation_euclidean_traits<FK> Traits; typedef CGAL::Regular_triangulation<FK> Triangulation;
typedef CGAL::Regular_triangulation<Traits> Triangulation;
//test<Triangulation>(D, "dynamic", N); //test<Triangulation>(D, "dynamic", N);
test<Triangulation>(D, "static", N); test<Triangulation>(D, "static", N);
} }

View File

@ -1,7 +1,6 @@
#include <CGAL/Epick_d.h> #include <CGAL/Epick_d.h>
#include <CGAL/point_generators_d.h> #include <CGAL/point_generators_d.h>
#include <CGAL/Regular_triangulation.h> #include <CGAL/Regular_triangulation.h>
#include <CGAL/Regular_triangulation_euclidean_traits.h>
#include <CGAL/algorithm.h> #include <CGAL/algorithm.h>
#include <tilted_grid.h> #include <tilted_grid.h>
@ -110,8 +109,7 @@ void go(const int N)
{ {
//typedef CGAL::Epick_d<CGAL::Dynamic_dimension_tag> FK; //typedef CGAL::Epick_d<CGAL::Dynamic_dimension_tag> FK;
typedef CGAL::Epick_d<CGAL::Dimension_tag<D> > FK; typedef CGAL::Epick_d<CGAL::Dimension_tag<D> > FK;
typedef CGAL::Regular_triangulation_euclidean_traits<FK> Traits; typedef CGAL::Regular_triangulation<FK> Triangulation;
typedef CGAL::Regular_triangulation<Traits> Triangulation;
//test<Triangulation>(D, "dynamic", N); //test<Triangulation>(D, "dynamic", N);
test<Triangulation>(D, "static", N); test<Triangulation>(D, "static", N);
} }