Misc fixes

This commit is contained in:
Mael Rouxel-Labbé 2023-07-07 02:09:35 +02:00
parent 5759ce49ae
commit f41e69a5fe
9 changed files with 41 additions and 38 deletions

View File

@ -198,7 +198,7 @@ public:
/// \name
/// A point-offset pair (`p`,`off`) is said to be in conflict with a
/// cell `c` iff `dt`.`side_of_circle(c, p, off)` returns
/// face `f` iff `dt`.`side_of_circle(f, p, off)` returns
/// `ON_BOUNDED_SIDE`. The set of faces that are in conflict with
/// (`p`,`off`) is star-shaped.
/// @{
@ -309,7 +309,7 @@ public:
Checks the combinatorial validity of the triangulation and the
validity of its geometric embedding (see
Section \ref P2Triangulation2secintro). Also checks that all the
circumscribing circles of cells are empty.
circumscribing circles of faces are empty.
When `verbose` is set to true, messages describing the first
invalidity encountered are printed.
@ -321,9 +321,9 @@ public:
/*!
\cgalAdvancedFunction
\cgalAdvancedBegin
Checks the combinatorial and geometric validity of the cell (see
Checks the combinatorial and geometric validity of the face (see
Section \ref P2Triangulation2secintro). Also checks that the
circumscribing circle of cells is empty.
circumscribing circle of faces is empty.
When `verbose` is set to true, messages are printed to give
a precise indication of the kind of invalidity encountered.

View File

@ -65,10 +65,10 @@ concepts `Periodic_2TriangulationFaceBase_2` and
A triangulation is stored as a collection of vertices and faces that
are linked together through incidence and adjacency relations. Each
face gives access to its three incident vertices and to its three
adjacent cells. Each vertex gives access to one of its incident
adjacent faces. Each vertex gives access to one of its incident
faces.
The three vertices of a cell are indexed with 0, 1, and 2 in positive
The three vertices of a face are indexed with 0, 1, and 2 in positive
orientation, the positive orientation being defined by the orientation
of the underlying space \f$ \mathbb T_c^3\f$. The neighbors of a face are
also indexed with 0, 1, 2 in such a way that the neighbor indexed

View File

@ -134,7 +134,7 @@ A periodic triangulation is said to be `locally valid` iff
data structure, is `locally valid`
(see Chapter \ref Chapter_2D_Triangulation_Data_Structure)
<B>(c)</B> Any cell has its vertices ordered according to positive
<B>(c)</B> Any face has its vertices ordered according to positive
orientation. See \cgalFigureRef{P2Triangulation2figorient}.
\section P2T2_Delaunay Delaunay Triangulation
@ -264,7 +264,7 @@ to support periodicity: the vertex and face must be models of
`Periodic_2TriangulationVertexBase_2` and `Periodic_2TriangulationFaceBase_2`.
A model of such concept is `CGAL::Triangulation_data_structure_2`. It is
parameterized by a vertex base class and a face base class, which gives the
possibility to customize the vertices and cells used by the triangulation data
possibility to customize the vertices and faces used by the triangulation data
structure, and hence by the geometric triangulation using it.
Basic models of the vertex and face concepts are provided: `CGAL::Periodic_2_triangulation_vertex_base_2`
and `CGAL::Periodic_2_triangulation_face_base_2`.
@ -272,7 +272,7 @@ and `CGAL::Periodic_2_triangulation_face_base_2`.
A default value for the triangulation data structure parameter is provided in
all the triangulation classes, so it does not need to be specified by
the user unless he wants to use a different triangulation data
structure or a different vertex or cell base class.
structure or a different vertex or face base class.
\subsection P2T2FlexDesign Flexibility of the Design

View File

@ -37,13 +37,10 @@ int main()
if (lt == Delaunay::VERTEX)
continue; // Point already exists
// Get the cells that conflict with p in a vector V,
// and a facet on the boundary of this hole in f.
// Get the faces that conflict with p in a vector V.
std::vector<Face_handle> V;
T.get_conflicts(p,
std::back_inserter(V), // Conflict cells in V
f);
T.get_conflicts(p, std::back_inserter(V), f);
}
std::cout << "Final triangulation has " << T.number_of_vertices()

View File

@ -133,6 +133,7 @@ public:
typedef Face_iterator Finite_faces_iterator;
typedef Edge_iterator Finite_edges_iterator;
typedef Vertex_iterator Finite_vertices_iterator;
typedef Vertex_iterator All_vertices_iterator;
typedef Face_iterator All_faces_iterator;
// \}
@ -389,10 +390,11 @@ public:
/// Checks whether the triangulation is a valid simplicial complex in the one cover.
bool is_triangulation_in_1_sheet() const;
/// Convert a 9 sheeted cover (used for sparse triangulations) to a single sheeted cover.
/// Converts a 9 sheeted cover (used for sparse triangulations) to a single sheeted cover.
/// \pre !is_1_cover();
void convert_to_1_sheeted_covering();
/// Convert a single sheeted cover (used for dense triangulations) to a 9 sheeted cover.
/// Converts a single sheeted cover (used for dense triangulations) to a 9 sheeted cover.
/// \pre is_1_cover();
void convert_to_9_sheeted_covering();
// \}

View File

@ -14,13 +14,11 @@
#include <CGAL/license/Periodic_2_triangulation_2.h>
#include <CGAL/assertions.h>
#include <CGAL/iterator.h>
#include <CGAL/array.h>
namespace CGAL
{
namespace CGAL {
template < class T >
class Periodic_2_triangulation_triangle_iterator_2
@ -234,7 +232,7 @@ private:
// intersect the boundary of the periodic domain. In UNIQUE mode
// this means that the offset with respect to drawing should
// differ in some entries. Otherwise we consider the offsets
// internally stored inside the cell telling us that this cell
// internally stored inside the face telling us that this face
// wraps around the domain.
if (_it == T::UNIQUE_COVER_DOMAIN)
_t->get_offsets(pos, off0, off1, off2);
@ -502,7 +500,7 @@ private:
// intersect the boundary of the periodic domain. In UNIQUE mode
// this means that the offset with respect to drawing should
// differ in some entries. Otherwise we consider the offsets
// internally stored inside the cell telling us that this cell
// internally stored inside the face telling us that this face
// wraps around the domain.
if (_it == T::UNIQUE_COVER_DOMAIN)
_t->get_offsets(*pos, off0, off1);
@ -797,7 +795,6 @@ template <class T>
class Periodic_2_triangulation_unique_vertex_iterator_2
: public Filter_iterator<typename T::Vertex_iterator, Periodic_2_triangulation_2_internal::Domain_tester<T> >
{
typedef typename T::Vertex_handle Vertex_handle;
typedef typename T::Vertex_iterator Vertex_iterator;
@ -805,8 +802,8 @@ class Periodic_2_triangulation_unique_vertex_iterator_2
typedef Filter_iterator<Vertex_iterator, Tester > Base;
typedef Periodic_2_triangulation_unique_vertex_iterator_2 Self;
public:
public:
Periodic_2_triangulation_unique_vertex_iterator_2() : Base() {}
Periodic_2_triangulation_unique_vertex_iterator_2(const Base &b) : Base(b) {}

View File

@ -208,6 +208,8 @@ void test_iterators()
Vertex_handle vh2 = t.insert(Point(0.7, 0.7));
CGAL_USE(vh2);
std::cout << "Cover = " << t.number_of_sheets()[0] << " " << t.number_of_sheets()[1] << std::endl;
// vertices
size_t size = 0;
for (typename T::Vertex_iterator vit = t_const.vertices_begin();

View File

@ -1703,6 +1703,8 @@ public:
return _tds.facets_end();
}
// Finite iterators (= all iterators, for periodic triangulations)
Cell_iterator finite_cells_begin() const {
return _tds.cells_begin();
}
@ -1731,6 +1733,8 @@ public:
return _tds.facets_end();
}
// All iterators (= finite, for periodic triangulations)
All_cells_iterator all_cells_begin() const {
return _tds.cells_begin();
}
@ -1831,6 +1835,7 @@ public:
}
// Circulators
Cell_circulator incident_cells(const Edge& e) const {
return _tds.incident_cells(e);
}
@ -3451,7 +3456,7 @@ periodic_remove(Vertex_handle v,
nr_vec.push_back(boost::make_tuple(o_ch,o_i,new_ch));
nr_vec.push_back(boost::make_tuple(new_ch,i_i,o_ch));
// for the other faces check, if they can also be glued
// for the other facets check, if they can also be glued
for(unsigned int i = 0; i < 4; i++) {
if(i != i_i) {
Facet f = std::pair<Cell_handle,int>(new_ch,i);
@ -3463,7 +3468,7 @@ periodic_remove(Vertex_handle v,
std::swap(vt.second,vt.third);
outer_map[vt]= f;
} else {
// glue the faces
// glue the facets
typename Vertex_triple_Facet_map::value_type o_vt_f_pair2 = *oit2;
Cell_handle o_ch2 = o_vt_f_pair2.second.first;
int o_i2 = o_vt_f_pair2.second.second;

View File

@ -918,15 +918,15 @@ public:
// between a normal Vertex_iterator and this iterator
template <class T>
class Periodic_3_triangulation_unique_vertex_iterator_3
: public Filter_iterator<typename T::Vertex_iterator, Domain_tester<T> > {
: public Filter_iterator<typename T::Vertex_iterator, Domain_tester<T> >
{
typedef typename T::Vertex_handle Vertex_handle;
typedef typename T::Vertex_iterator Vertex_iterator;
typedef Filter_iterator<Vertex_iterator, Domain_tester<T> > Base;
typedef Periodic_3_triangulation_unique_vertex_iterator_3 Self;
public:
public:
Periodic_3_triangulation_unique_vertex_iterator_3() : Base() {}
Periodic_3_triangulation_unique_vertex_iterator_3(const Base &b) : Base(b) {}