mirror of https://github.com/CGAL/cgal
Merge remote-tracking branch 'cgal/5.6.x-branch' into HEAD
This commit is contained in:
commit
5139e6ed09
|
|
@ -21,7 +21,7 @@
|
||||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
|
|
||||||
#include <CGAL/Delaunay_triangulation_3.h>
|
#include <CGAL/Delaunay_triangulation_3.h>
|
||||||
#include <CGAL/Triangulation_segment_traverser_3.h>
|
#include <CGAL/Triangulation_simplex_3.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
@ -30,8 +30,8 @@
|
||||||
#include <CGAL/Timer.h>
|
#include <CGAL/Timer.h>
|
||||||
|
|
||||||
// Define the kernel.
|
// Define the kernel.
|
||||||
typedef CGAL::Exact_predicates_exact_constructions_kernel Epeck;
|
using Epeck = CGAL::Exact_predicates_exact_constructions_kernel;
|
||||||
typedef CGAL::Exact_predicates_inexact_constructions_kernel Epick;
|
using Epick = CGAL::Exact_predicates_inexact_constructions_kernel;
|
||||||
|
|
||||||
|
|
||||||
template<typename Kernel>
|
template<typename Kernel>
|
||||||
|
|
@ -40,11 +40,11 @@ void bench_segment_traverser(const int nb_queries,
|
||||||
const double rad,
|
const double rad,
|
||||||
CGAL::Random& rng)
|
CGAL::Random& rng)
|
||||||
{
|
{
|
||||||
typedef CGAL::Delaunay_triangulation_3<Kernel> DT;
|
using DT = CGAL::Delaunay_triangulation_3<Kernel>;
|
||||||
typedef CGAL::Triangulation_segment_simplex_iterator_3<DT> Simplex_traverser;
|
using Tds = typename DT::Triangulation_data_structure;
|
||||||
typedef CGAL::Triangulation_segment_cell_iterator_3<DT> Cell_traverser;
|
using Point_3 = typename DT::Point_3;
|
||||||
typedef typename DT::Point_3 Point_3;
|
using Cell_handle = typename DT::Cell_handle;
|
||||||
typedef typename DT::Cell Cell;
|
using Simplex_3 = CGAL::Triangulation_simplex_3<Tds>;
|
||||||
|
|
||||||
std::cout << "\nBench :\t " << nb_queries << " queries," << std::endl
|
std::cout << "\nBench :\t " << nb_queries << " queries," << std::endl
|
||||||
<< "\t in triangulation of size " << nbv << std::endl
|
<< "\t in triangulation of size " << nbv << std::endl
|
||||||
|
|
@ -83,29 +83,26 @@ void bench_segment_traverser(const int nb_queries,
|
||||||
{
|
{
|
||||||
//Simplex traverser
|
//Simplex traverser
|
||||||
timer_st.start();
|
timer_st.start();
|
||||||
Simplex_traverser st(dt, segments[2*i], segments[2*i + 1]);
|
|
||||||
|
|
||||||
// Count the number of finite cells traversed.
|
// Count the number of finite cells traversed.
|
||||||
unsigned int inf = 0, fin = 0;
|
unsigned int inf = 0, fin = 0;
|
||||||
for (; st != st.end(); ++st)
|
for (Simplex_3 st : dt.segment_traverser_simplices(segments[2 * i], segments[2 * i + 1]))
|
||||||
{
|
{
|
||||||
Cell c = st.cell();
|
Cell_handle c = st.incident_cell();
|
||||||
// if (dt.is_infinite(c)) ++inf;
|
if (dt.is_infinite(c)) ++inf;
|
||||||
// else ++fin;
|
else ++fin;
|
||||||
}
|
}
|
||||||
timer_st.stop();
|
timer_st.stop();
|
||||||
|
|
||||||
//Cell traverser
|
//Cell traverser
|
||||||
timer_ct.start();
|
timer_ct.start();
|
||||||
Cell_traverser ct(dt, segments[2*i], segments[2*i + 1]);
|
|
||||||
|
|
||||||
// Count the number of finite cells traversed.
|
// Count the number of finite cells traversed.
|
||||||
inf = 0, fin = 0;
|
inf = 0, fin = 0;
|
||||||
for (; ct != ct.end(); ++ct)
|
for (Cell_handle c : dt.segment_traverser_cell_handles(segments[2 * i], segments[2 * i + 1]))
|
||||||
{
|
{
|
||||||
Cell c = ct.cell();
|
if (dt.is_infinite(c)) ++inf;
|
||||||
// if (dt.is_infinite(c)) ++inf;
|
else ++fin;
|
||||||
// else ++fin;
|
|
||||||
}
|
}
|
||||||
timer_ct.stop();
|
timer_ct.stop();
|
||||||
}
|
}
|
||||||
|
|
@ -128,4 +125,6 @@ int main(int argc, char* argv[])
|
||||||
|
|
||||||
// bench_segment_traverser<Epeck>(nb_queries, nbv, rad, rng);
|
// bench_segment_traverser<Epeck>(nb_queries, nbv, rad, rng);
|
||||||
bench_segment_traverser<Epick>(nb_queries, nbv, rad, rng);
|
bench_segment_traverser<Epick>(nb_queries, nbv, rad, rng);
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ namespace CGAL {
|
||||||
\ingroup PkgTriangulation3VertexCellClasses
|
\ingroup PkgTriangulation3VertexCellClasses
|
||||||
|
|
||||||
The class `Triangulation_simplex_3` stores a simplex of any dimension
|
The class `Triangulation_simplex_3` stores a simplex of any dimension
|
||||||
defined by the `Triangulation_3` class. It also defines the
|
defined by the `TriangulationDataStructure_3` class. It also defines the
|
||||||
operator less such that simplices can be stored in a `map` or a
|
operator less such that simplices can be stored in a `map` or a
|
||||||
`set` of simplices. The simplex is invalidated by any change in
|
`set` of simplices. The simplex is invalidated by any change in
|
||||||
the triangulation.
|
the triangulation.
|
||||||
|
|
@ -18,7 +18,7 @@ from.
|
||||||
\sa `CGAL::Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>`
|
\sa `CGAL::Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>`
|
||||||
|
|
||||||
*/
|
*/
|
||||||
template< typename Triangulation_3 >
|
template< typename TriangulationDataStructure_3 >
|
||||||
class Triangulation_simplex_3 {
|
class Triangulation_simplex_3 {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
@ -29,67 +29,67 @@ public:
|
||||||
|
|
||||||
The simplex class itself.
|
The simplex class itself.
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_simplex_3<Triangulation_3> Simplex;
|
typedef Triangulation_simplex_3<TriangulationDataStructure_3> Simplex;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Vertex_handle Vertex_handle;
|
typedef TriangulationDataStructure_3::Vertex_handle Vertex_handle;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Edge Edge;
|
typedef TriangulationDataStructure_3::Edge Edge;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Facet Facet;
|
typedef TriangulationDataStructure_3::Facet Facet;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Cell_handle Cell_handle;
|
typedef TriangulationDataStructure_3::Cell_handle Cell_handle;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Cell_circulator Cell_circulator;
|
typedef TriangulationDataStructure_3::Cell_circulator Cell_circulator;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Facet_circulator Facet_circulator;
|
typedef TriangulationDataStructure_3::Facet_circulator Facet_circulator;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Edge_iterator Edge_iterator;
|
typedef TriangulationDataStructure_3::Edge_iterator Edge_iterator;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Facet_iterator Facet_iterator;
|
typedef TriangulationDataStructure_3::Facet_iterator Facet_iterator;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Finite_vertices_iterator Finite_vertices_iterator;
|
typedef TriangulationDataStructure_3::Finite_vertices_iterator Finite_vertices_iterator;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Finite_edges_iterator Finite_edges_iterator;
|
typedef TriangulationDataStructure_3::Finite_edges_iterator Finite_edges_iterator;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Finite_facets_iterator Finite_facets_iterator;
|
typedef TriangulationDataStructure_3::Finite_facets_iterator Finite_facets_iterator;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
*/
|
*/
|
||||||
typedef Triangulation_3::Finite_cells_iterator Finite_cells_iterator;
|
typedef TriangulationDataStructure_3::Finite_cells_iterator Finite_cells_iterator;
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
|
|
@ -188,7 +188,7 @@ Test whether two
|
||||||
simplices are equal.
|
simplices are equal.
|
||||||
*/
|
*/
|
||||||
bool operator==(const
|
bool operator==(const
|
||||||
Triangulation_simplex_3<Triangulation_3> &s1);
|
Triangulation_simplex_3<TriangulationDataStructure_3> &s1);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Defines a ordering
|
Defines a ordering
|
||||||
|
|
@ -196,7 +196,7 @@ on the simplices. This ordering depends on the memory layout and is
|
||||||
independent of the geometry. Therefore, the ordering is not intrinsic
|
independent of the geometry. Therefore, the ordering is not intrinsic
|
||||||
*/
|
*/
|
||||||
bool operator< (const
|
bool operator< (const
|
||||||
Triangulation_simplex_3<Triangulation_3> &s1);
|
Triangulation_simplex_3<TriangulationDataStructure_3> &s1);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue