mirror of https://github.com/CGAL/cgal
Misc fixes
This commit is contained in:
parent
5759ce49ae
commit
f41e69a5fe
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -27,24 +27,21 @@ int main()
|
|||
// Gets the conflict region of 100 random points
|
||||
// in the Delaunay tetrahedralization
|
||||
for (int i = 0; i != 100; ++i)
|
||||
{
|
||||
Point p = (*rnd++);
|
||||
{
|
||||
Point p = (*rnd++);
|
||||
|
||||
// Locate the point
|
||||
Delaunay::Locate_type lt;
|
||||
int li;
|
||||
Face_handle f = T.locate(p, lt, li);
|
||||
if (lt == Delaunay::VERTEX)
|
||||
continue; // Point already exists
|
||||
// Locate the point
|
||||
Delaunay::Locate_type lt;
|
||||
int li;
|
||||
Face_handle f = T.locate(p, lt, li);
|
||||
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.
|
||||
std::vector<Face_handle> V;
|
||||
// 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()
|
||||
<< " vertices." << std::endl;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
// \}
|
||||
|
|
|
|||
|
|
@ -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) {}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue