diff --git a/Triangulation/doc_tex/Triangulation_ref/Delaunay_triangulation.tex b/Triangulation/doc_tex/Triangulation_ref/Delaunay_triangulation.tex index ec9de25c170..df740d8ae87 100644 --- a/Triangulation/doc_tex/Triangulation_ref/Delaunay_triangulation.tex +++ b/Triangulation/doc_tex/Triangulation_ref/Delaunay_triangulation.tex @@ -20,13 +20,12 @@ the concept \ccc{DelaunayTriangulationTraits}. \ccc{TriangulationDataStructure} is the class used to store the underlying triangulation data structure. \ccc{TriangulationDataStructure} must be a model of the concept -\ccc{TriangulationDataStructure}. The class template \ccRefName\ accepts that no -second parameter be specified. It also accepts the tag \ccc{CGAL::Default} as -second parameter. In both cases, \ccc{TriangulationDataStructure} defaults to -\ccc{Triangulation_data_structure< - Ambient_dimension::type, - Triangulation_vertex, - Triangulation_full_cell >}. +\ccc{TriangulationDataStructure}. The class template \ccRefName\ can +be defined by specifying only the first parameter, or by using the +tag \ccc{CGAL::Default} as +the second parameter. In both cases, \ccc{TriangulationDataStructure} defaults to +\ccc{Triangulation_data_structure::type, +Triangulation_vertex, Triangulation_full_cell>}. \ccInheritsFrom @@ -40,12 +39,12 @@ defines or overloads the following methods: \ccCreationVariable{dt} -\ccConstructor{Delaunay_triangulation(const int dim, const Geom_traits k = +\ccConstructor{Delaunay_triangulation(const int dim, const Geom_traits gt = Geom_traits());}{Instantiates a Delaunay triangulation with one vertex (the vertex at infinity). See the description of the inherited nested type \ccc{Triangulation::Ambient_dimension} for an explanation of the use of the parameter \ccc{dim}. The complex stores a copy of the geometric -traits \ccc{k}.} +traits \ccc{gt}.} \ccHeading{Point removal} % - - - - - - - - - - - - - - - - - - - - - REMOVAL @@ -70,10 +69,11 @@ Otherwise, the default-constructed \ccc{Full_cell_handle} is returned. % as above, but uses \ccc{hint} as a starting point for locating the point % \ccc{p} in the complex.} -\ccMethod{template< typename ForwardIterator > size_type remove(ForwardIterator +\ccMethod{template< typename ForwardIterator > void remove(ForwardIterator start, ForwardIterator end);}{Remove the points or the vertices (through their -\ccc{Vertex_handle}) in the range \ccc{[start, end)}. Returns the number of -elements actually removed.} +\ccc{Vertex_handle}) in the range \ccc{[start, end)}. +\ccc{*start} must be of type \ccc{Vertex_handle}. +} \ccHeading{Point insertion} % - - - - - - - - - - - - - - - - - - - INSERTION @@ -85,14 +85,14 @@ and ensures that the empty-ball property is preserved. Returns the number of vertices actually inserted. (If more than one vertex share the same position in space, only one insertion is counted.)} -\ccMethod{Vertex_handle insert(const Point & p, const Full_cell_handle hint +\ccMethod{Vertex_handle insert(const Point & p, Full_cell_handle hint = Full_cell_handle());}{Inserts point \ccc{p} in the Delaunay triangulation and ensures that the empty-ball property is preserved. Returns a \ccc{Vertex_handle} to the vertex of the triangulation with position \ccc{p}. Prior to the actual insertion, \ccc{p} is located in the triangulation; \ccc{hint} is used as a starting place for locating \ccc{p}.} -\ccMethod{Vertex_handle insert(const Point & p, const Vertex_handle hint);}% +\ccMethod{Vertex_handle insert(const Point & p, Vertex_handle hint);}% {Same as above but uses a vertex as starting place for the search.} \begin{ccAdvanced} @@ -108,12 +108,14 @@ value of \ccc{lt}:\begin{itemize} \item[\ccc{OUTSIDE_AFFINE_HULL}] Point triangulation. The method \ccVar.\ccc{insert_outside_affine_hull()} is called. \item[\ccc{ON_VERTEX}] The position of the vertex \ccc{v} described by \ccc{f} is set to \ccc{p}. \ccc{v} is returned. \item[Anything else] The point \ccc{p} -is inserted in the conflict zone {\em which is assumed} to contain -full cell -\ccc{c}. (Roughly speaking, the method \ccVar.\ccc{insert_in_conflict_zone()} -is called.)\end{itemize} \ccPrecond The parameters \ccc{lt}, \ccc{f}, \ccc{ft} +is inserted. the full cell \ccc{c} {\em is assumed} to be in conflict +with \ccc{p}. +(Roughly speaking, the method \ccVar.\ccc{insert_in_conflicting_cell()} +is called.)\end{itemize} +The parameters \ccc{lt}, \ccc{f}, \ccc{ft} and \ccc{c} must be consistent with the localization of point \ccc{p} in the -Delaunay triangulation.} +Delaunay triangulation e.g. by a call to +\ccc{c = locate(p, lt, f, ft)}.} \ccMethod{Vertex_handle insert_outside_affine_hull(const Point & p);} {Inserts the point \ccc{p} in the Delaunay triangulation. Returns a handle to the @@ -122,17 +124,18 @@ must lie outside the affine hull of the Delaunay triangulation. This implies tha \ccVar.\ccc{current_dimension()} must be less that \ccVar.\ccc{ambient_dimension()}.} -\ccMethod{Vertex_handle insert_in_conflict_zone(const Point & p, const +\ccMethod{Vertex_handle insert_in_conflicting_cell(const Point & p, const Full_cell_handle c);} {Inserts the point \ccc{p} in the Delaunay triangulation. Returns a handle to the -(possibly newly created) vertex at that position.\ccPrecond The point \ccc{p} +(possibly newly created) vertex at that position. +\ccPrecond The point \ccc{p} must be in conflict with the full cell \ccc{c}.} \end{ccAdvanced} \ccHeading{Queries} % - - - - - - - - - - - - - - - - - - - - - - - - QUERIES -\ccMethod{bool conflict(const Point & p, Full_cell_const_handle c) +\ccMethod{bool is_in_conflict(const Point & p, Full_cell_const_handle c) const;}{Returns \ccc{true} if and only if the point \ccc{p} is in (Delaunay) conflict with full cell \ccc{c} ({i.e.}, the circumscribing ball of $c$ contains $p$ in its interior). diff --git a/Triangulation/doc_tex/Triangulation_ref/Triangulation_full_cell.tex b/Triangulation/doc_tex/Triangulation_ref/Triangulation_full_cell.tex index 1b653e427f6..2de0e061c25 100644 --- a/Triangulation/doc_tex/Triangulation_ref/Triangulation_full_cell.tex +++ b/Triangulation/doc_tex/Triangulation_ref/Triangulation_full_cell.tex @@ -20,6 +20,7 @@ provides geometric types and predicates for use in the \ccc{Data} is an optional type of data to be stored in the full cell class. The class template \ccRefName\ accepts that no second parameter be specified. In this case, \ccc{Data} defaults to \ccc{CGAL::No_full_cell_data}. +\ccc{CGAL::No_full_cell_data} can explicitely be specified to access the third parameter. Parameter \ccc{TriangulationDSFullCell} must be a model of the concept \ccc{TriangulationDSFullCell}. @@ -54,8 +55,8 @@ The parameter \ccc{t} is passed to the \ccc{Data} constructor.} \ccHeading{Data access} -\ccMethod{const Data & data() const;}{Returns a reference to the stored data.} -\ccGlue\ccMethod{Data & data();}{Returns a reference to the stored data.} +\ccMethod{const Data & data() const;}{Returns a const reference to the stored data.} +\ccGlue\ccMethod{Data & data();}{Returns a non-const reference to the stored data.} \ccHeading{Input/Output} @@ -71,6 +72,8 @@ the point and other possible information. The data of type \ccc{Data} is \ccSeeAlso -\ccc{Triangulation_vertex} - +\ccc{Triangulation_vertex}\\ +\ccc{Triangulation_data_structure}\\ +\ccc{Triangulation}\\ +\ccc{Delaunay_triangulation} \end{ccRefClass} diff --git a/Triangulation/doc_tex/Triangulation_ref/Triangulation_vertex.tex b/Triangulation/doc_tex/Triangulation_ref/Triangulation_vertex.tex index 5953f038232..74e1338114b 100644 --- a/Triangulation/doc_tex/Triangulation_ref/Triangulation_vertex.tex +++ b/Triangulation/doc_tex/Triangulation_ref/Triangulation_vertex.tex @@ -20,6 +20,8 @@ declaration of the \ccc{Point} type. \ccc{Data} is an optional type of data to be stored in the vertex class. The class template \ccRefName\ accepts that no second parameter be specified. In this case, \ccc{Data} defaults to \ccc{CGAL::No_vertex_data}. +\ccc{CGAL::No_vertex_data} can be explicitely specified to allow to access the +third parameter. Parameter \ccc{TriangulationDSVertex} must be a model of the concept \ccc{TriangulationDSVertex}. The @@ -62,8 +64,8 @@ passed to the \ccc{Data} constructor.} \ccHeading{Data access} -\ccMethod{const Data & data() const;}{Returns a reference to the stored data.} -\ccGlue\ccMethod{Data & data();}{Returns a reference to the stored data.} +\ccMethod{const Data & data() const;}{Returns a const reference to the stored data.} +\ccGlue\ccMethod{Data & data();}{Returns a non-const reference to the stored data.} \ccHeading{Input/Output} @@ -79,6 +81,9 @@ the point and other possible information. The data of type \ccc{Data} is \ccSeeAlso -\ccc{Triangulation_full_cell} +\ccc{Triangulation_full_cell}\\ +\ccc{Triangulation_data_structure}\\ +\ccc{Triangulation}\\ +\ccc{Delaunay_triangulation} \end{ccRefClass} diff --git a/Triangulation/include/CGAL/Delaunay_triangulation.h b/Triangulation/include/CGAL/Delaunay_triangulation.h index d7f7980f9c6..256939694e2 100644 --- a/Triangulation/include/CGAL/Delaunay_triangulation.h +++ b/Triangulation/include/CGAL/Delaunay_triangulation.h @@ -170,12 +170,10 @@ public: } template< typename ForwardIterator > - size_type remove(ForwardIterator start, ForwardIterator end) + void remove(ForwardIterator start, ForwardIterator end) { - size_type n = number_of_vertices(); while( start != end ) remove(*start++); - return ( n - number_of_vertices() ); } // Not documented @@ -211,11 +209,11 @@ public: return insert(p, hint->full_cell()); } Vertex_handle insert_outside_affine_hull(const Point &); - Vertex_handle insert_in_conflict_zone(const Point &, const Full_cell_handle); + Vertex_handle insert_in_conflicting_cell(const Point &, const Full_cell_handle); // - - - - - - - - - - - - - - - - - - - - - - - - - GATHERING CONFLICTING SIMPLICES - bool conflict(const Point &, Full_cell_const_handle) const; + bool is_in_conflict(const Point &, Full_cell_const_handle) const; template< class OrientationPredicate > Oriented_side perturbed_side_of_positive_sphere(const Point &, Full_cell_const_handle, const OrientationPredicate &) const; @@ -684,7 +682,7 @@ Delaunay_triangulation return v; } else - return insert_in_conflict_zone(p, s); + return insert_in_conflicting_cell(p, s); break; } } @@ -716,7 +714,7 @@ Delaunay_triangulation template< typename DCTraits, typename TDS > typename Delaunay_triangulation::Vertex_handle Delaunay_triangulation -::insert_in_conflict_zone(const Point & p, const Full_cell_handle s) +::insert_in_conflicting_cell(const Point & p, const Full_cell_handle s) { typedef std::vector Full_cell_h_vector; typedef typename Full_cell_h_vector::iterator SHV_iterator; @@ -790,7 +788,7 @@ Delaunay_triangulation template< typename DCTraits, typename TDS > bool Delaunay_triangulation -::conflict(const Point & p, Full_cell_const_handle s) const +::is_in_conflict(const Point & p, Full_cell_const_handle s) const { CGAL_precondition( 2 <= current_dimension() ); if( current_dimension() < ambient_dimension() )