mirror of https://github.com/CGAL/cgal
added stuff about storage sites and updated some the doc for other
classes/concepts
This commit is contained in:
parent
7af21aada6
commit
2fe380a29d
|
|
@ -160,7 +160,7 @@ requirements for the sites of a segment Voronoi diagram.
|
|||
\ccPostcond{The returned site is exact.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{SegmentVoronoiDiagramSite_2 supporting_site(unsinged int i);}
|
||||
\ccMethod{SegmentVoronoiDiagramSite_2 supporting_site(unsigned int i);}
|
||||
{Returns a segment site object representing the \ccc{i}-th
|
||||
exact segment that supports the point of intersection represented
|
||||
by the site.
|
||||
|
|
@ -169,7 +169,7 @@ requirements for the sites of a segment Voronoi diagram.
|
|||
\ccPostcond{The returned site is exact.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{SegmentVoronoiDiagramSite_2 crossing_site(unsinged int i);}
|
||||
\ccMethod{SegmentVoronoiDiagramSite_2 crossing_site(unsigned int i);}
|
||||
{Returns a segment site object representing the \ccc{i}-th exact
|
||||
segment that supports the $i$-th endpoint of the site
|
||||
which is not the supporting segment of the site.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,193 @@
|
|||
%% Copyright (c) 2003,2004 INRIA Sophia-Antipolis (France) and
|
||||
%% Notre Dame University (U.S.A.). All rights reserved.
|
||||
%%
|
||||
%% This file is part of CGAL (www.cgal.org); you may redistribute it under
|
||||
%% the terms of the Q Public License version 1.0.
|
||||
%% See the file LICENSE.QPL distributed with CGAL.
|
||||
%%
|
||||
%% Licensees holding a valid commercial license may use this file in
|
||||
%% accordance with the commercial license agreement provided with the software.
|
||||
%%
|
||||
%% This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
%% WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
%%
|
||||
%% $Source$
|
||||
%% $Revision$ $Date$
|
||||
%% $Name$
|
||||
%%
|
||||
%% Author(s) : Menelaos Karavelas <mkaravel@cse.nd.edu>
|
||||
|
||||
|
||||
|
||||
\begin{ccRefConcept}{SegmentVoronoiDiagramStorageSite_2}
|
||||
%% add template arg's if necessary
|
||||
|
||||
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
|
||||
%% \ccHtmlIndexC[class]{} %% add further index entries
|
||||
|
||||
\ccDefinition
|
||||
|
||||
The concept \ccc{SegmentVoronoiDiagramStorageSite_2} provides the
|
||||
requirements for the storage sites of a segment Voronoi diagram. The
|
||||
storage sites are sites that are used to store the information of a
|
||||
site in a more compact form (that uses less storage). This is achieved
|
||||
by storing handles to points instead of points.
|
||||
|
||||
|
||||
\ccTwo{SegmentVoronoiDiagramStorageSite_2::Point_handle+}{}
|
||||
\ccTypes
|
||||
\ccNestedType{Site_2}{The site type.}
|
||||
\ccGlue
|
||||
\ccNestedType{Point_handle}{The type for a handle to a point.}
|
||||
|
||||
|
||||
|
||||
\ccCreation
|
||||
\ccTwo{SegmentVoronoiDiagramStorageSite_2 ss()+}{}
|
||||
|
||||
|
||||
\ccCreationVariable{ss} %% choose variable name
|
||||
\ccConstructor{SegmentVoronoiDiagramStorageSite2 ss()}{Default constructor}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiStorageSite2(Point_handle hp)}{Constructor from a
|
||||
point handle.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiStorageSite2(Point_handle hp1,
|
||||
Point_handle hp2)}{Constructor from two point handles.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiStorageSite2(Point_handle hp1,
|
||||
Point_handle hp2, Point_handle hq1, Point_handle hq2)}{Constructor
|
||||
from four point handles.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiStorageSite2(Point_handle hp1,
|
||||
Point_handle hp2, Point_handle hq1, Point_handle hq2, bool
|
||||
b)}{Constructor from four point handles and a boolean.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiStorageSite2(Point_handle hp1,
|
||||
Point_handle hp2, Point_handle hq1, Point_handle hq2, Point_handle
|
||||
hr1, Point_handle hr2)}{Constructor from six
|
||||
point handles.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiDiagramStorageSite_2(SegmentVoronoiDiagramStorageSite_2
|
||||
other)}{Copy constructor.}
|
||||
|
||||
\ccPredicates
|
||||
\ccThree{bool}{ss.is_exact(unsigned int i)+}{}
|
||||
\ccMethod{bool is_defined();}{Returns \ccc{true} if the storage site
|
||||
represents a valid point or segment.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{bool is_point();}{Returns \ccc{true} if the storage site
|
||||
represents a point.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{bool is_segment();}{Returns \ccc{true} if the storage site
|
||||
represents a segment.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{bool is_exact();}{Returns \ccc{true} if the storage site
|
||||
represents an input point or an input segment. Returns \ccc{false}
|
||||
if it represents a point of intersection of two segments, or if it
|
||||
represents a segment, at least one endpoint of which is a point of
|
||||
intersection of two segments.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{bool is_exact(unsigned int i);}{Returns \ccc{true} if the
|
||||
\ccc{i}-th endpoint of the corresponding site is an input
|
||||
point. Returns \ccc{false} if the \ccc{i}-th endpoint of the
|
||||
corresponding site is the intersection of two segments.
|
||||
\ccPrecond{\ccc{i} must be at most $1$, and \ccc{ss.is_segment()}
|
||||
must be \ccc{true}.}}
|
||||
|
||||
|
||||
|
||||
|
||||
\ccAccessFunctions
|
||||
%\ccThree{Point_handle}{ss.handle(unsigned int i)+}{}
|
||||
\ccThree{SegmentVoronoiDiagramStorageSite_2}{}{}
|
||||
\ccMethod{Point_handle handle(unsigned int i) const;}{
|
||||
Returns the \ccc{i}-th point handle of the site's
|
||||
representation. The valid values for \ccc{i} are $0$ through the
|
||||
number of points in the constructor or the
|
||||
\ccc{set_point}/\ccc{set_segment} methods used to
|
||||
construct or define, respectively the site.
|
||||
\ccPrecond{\ccc{i} must be at most $5$. The storage site must be of
|
||||
the correct type in order to access the corresponding point handle.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{SegmentVoronoiDiagramStorageSite_2 supporting_site();}
|
||||
{Returns a storage site object representing the exact segment
|
||||
that supports the segment represented by the storage site.
|
||||
\ccPrecond{\ccc{ss.is_segment()} must be \ccc{true}.}
|
||||
\ccPostcond{The returned storage site represents an exact site.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{SegmentVoronoiDiagramStorageSite_2 supporting_site(unsigned int i);}
|
||||
{Returns a storage site object representing the \ccc{i}-th
|
||||
exact segment that supports the point of intersection represented
|
||||
by the storage site.
|
||||
\ccPrecond{\ccc{i} must be at most $1$, \ccc{ss.is_point()} must be
|
||||
\ccc{true} and \ccc{ss.is_exact()} must be \ccc{false}.}
|
||||
\ccPostcond{The returned storage site represents an exact site.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{SegmentVoronoiDiagramStorageSite_2 crossing_site(unsigned int i);}
|
||||
{Returns a storage site object representing the \ccc{i}-th exact
|
||||
segment that supports the $i$-th endpoint of the site
|
||||
which is not the supporting segment of the site.
|
||||
\ccPrecond{\ccc{i} must be at most $1$,
|
||||
\ccc{ss.is_segment()} must be \ccc{true} and
|
||||
\ccc{ss.is_exact(i)} must be \ccc{false}.}
|
||||
\ccPostcond{The returned site represents and exact site.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Site_2 site();}{Returns the site represented by the storage
|
||||
site.}
|
||||
|
||||
|
||||
\ccHeading{Set methods}
|
||||
\ccThree{void}{s.set_point(Point_handle hp)+}{}
|
||||
%\ccThree{void}{s.set_segment(Point_2 p1, Point_2 p2)+}{}
|
||||
\ccMethod{void set_point(Point_handle hp);}{}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{void set_point(Point_handle hp1, Point_handle hp2,
|
||||
Point_handle hq1, Point_handle hq2);}{}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{void set_segment(Point_handle hp1, Point_handle hp2);}{}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{void set_segment(Point_handle hp1, Point_handle hp2,
|
||||
Point_handle hq1, Point_handle hq2, bool b);}{}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{void set_segment(Point_handle hp1, Point_handle hp2,
|
||||
Point_handle hq1, Point_handle hq2, Point_handle hr1,
|
||||
Point_handle hr2);}{}
|
||||
|
||||
|
||||
|
||||
\ccHasModels
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_storage_site_2<K,H>}
|
||||
|
||||
|
||||
\ccSeeAlso
|
||||
\ccc{SegmentVoronoiDiagramTraits_2}\\
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_site_2<K>}\\
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_traits_2<ITag,K,MTag>}\\
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_filtered_traits_2<ITag,CK,CM,EK,EM,FK,FM>}
|
||||
|
||||
\end{ccRefConcept}
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
%%RefPage: end of main body, begin of footer
|
||||
% EOF
|
||||
% +------------------------------------------------------------------------+
|
||||
|
||||
|
|
@ -22,10 +22,6 @@
|
|||
\begin{ccRefClass}{Segment_Voronoi_diagram_hierarchy_2<Gt,STag,PC,DS>}
|
||||
%% add template arg's if necessary
|
||||
|
||||
{\sc I have to modify this when I add the boolean about whether or not
|
||||
points are to be inserted in the upper levels of the hierarchy or
|
||||
not.}
|
||||
|
||||
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
|
||||
%% \ccHtmlIndexC[class]{} %% add further index entries
|
||||
\ccDefinition
|
||||
|
|
@ -33,42 +29,60 @@
|
|||
We provide an alternative to the class
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} for the incremental
|
||||
construction of the segment Voronoi diagram. The \ccRefName\ class
|
||||
maintains a hierarchy of segment Voronoi diagram graphs. The
|
||||
bottom-most level of the hierarchy contains the full segment Voronoi
|
||||
diagram. A site that is in level $i$, is in level $i+1$ with
|
||||
probability $1/\alpha$ where $\alpha > 1$ is some constant. The
|
||||
difference between the \ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class
|
||||
and the \ccRefName\ is on how the nearest neighbor location is
|
||||
done. Given a point $p$ the location is done as follows: at the top
|
||||
most level we find the nearest neighbor of $p$ as in the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class. At every subsequent
|
||||
level $i$ we use the nearest neighbor found at level $i+1$ to find the
|
||||
nearest neighbor at level $i$. This is a variant of the corresponding
|
||||
hierarchy for points found in \cite{d-iirdt-98}. The details are
|
||||
described in \cite{k-peasv-04}.
|
||||
%
|
||||
The class has three template parameters which have essentially the same
|
||||
meaning as in the \ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class. The
|
||||
maintains a hierarchy of Voronoi diagrams. There are two possibilities
|
||||
as to how this hierarchy is constructed.
|
||||
|
||||
In the first case the bottom-most level of the hierarchy contains the
|
||||
full segment Voronoi diagram. The upper levels of the hierarchy
|
||||
contain only points that are either point sites or endpoints of
|
||||
segment sites in the bottom-most Voronoi diagram.
|
||||
A point that is in level $i$ (either as an individdual point or as the
|
||||
endpoint of a segment), is inserted in level $i+1$ with probability
|
||||
$1/alpha$ where $\alpha>1$ is some constant.
|
||||
In the second case the upper levels of the hierarchy contains not only
|
||||
points but also segments. A site that is in level $i$, is in level
|
||||
$i+1$ with probability $1/\beta$ where $\beta > 1$ is some constant.
|
||||
|
||||
The difference between the \ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>}
|
||||
class and the \ccRefName\ class (both versions of it) is on how the
|
||||
nearest neighbor location is done. Given a point $p$ the location is
|
||||
done as follows: at the top most level we find the nearest neighbor of
|
||||
$p$ as in the \ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class. At
|
||||
every subsequent level $i$ we use the nearest neighbor found at level
|
||||
$i+1$ to find the nearest neighbor at level $i$. This is a variant of
|
||||
the corresponding hierarchy for points found in \cite{d-iirdt-98}. The
|
||||
details are described in \cite{k-peasv-04}.
|
||||
|
||||
The class has four template parameters. The first, third and fourth
|
||||
have essentially the same semantics as in the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class. The
|
||||
first template parameter must be a model of the
|
||||
\ccc{SegmentVoronoiDiagramTraits_2} concept.
|
||||
The second template parameter must be a model of the
|
||||
The third template parameter must be a model of the
|
||||
\ccc{SimpleContainer} concept. The third template parameter must be a
|
||||
model of the \ccc{SegmentVoronoiDiagramDataStructure_2}
|
||||
concept. However, the vertex base class that is to be used in the
|
||||
segment Voronoi diagram data structure must
|
||||
be a model of the \ccc{SegmentVoronoiDiagramHierarchyVertexBase_2}
|
||||
concept. The second template parameter defaults to
|
||||
\ccc{CGAL::Simple_container<typename Gt::Point_2>}, whereas the third
|
||||
concept. The third template parameter defaults to
|
||||
\ccc{CGAL::Simple_container<typename Gt::Point_2>}, whereas the fourth
|
||||
template parameter defaults to
|
||||
\ccc{Segment_Voronoi_diagram_data_structure_2<
|
||||
Segment_Voronoi_diagram_hierarchy_vertex_base_2<
|
||||
Segment_Voronoi_diagram_vertex_base_2<Gt> >,
|
||||
Segment_Voronoi_diagram_face_base_2<Gt> >}.
|
||||
Segment_Voronoi_diagram_face_base_2<Gt> >}. The second template
|
||||
parameter controls whether or not segments are added in the upper
|
||||
levels of the hierarchy. It's possible values are \ccc{CGAL::Tag_true}
|
||||
and \ccc{CGAL::Tag_false}. If it is set to \ccc{CGAL::Tag_true},
|
||||
segments are also inserted in the upper levels of the hierarchy. The
|
||||
value \ccc{CGAL::Tag_false} indicates that only points are to be
|
||||
inserted in the upper levels of the hierarchy.
|
||||
|
||||
|
||||
The \ccRefName\ class derives publicly from the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class. The interface is
|
||||
the same with its base class. In the sequel only the methods
|
||||
overridden are documented.
|
||||
the same with its base class. In the sequel only additional types
|
||||
defined and the methods overridden are documented.
|
||||
|
||||
|
||||
\ccInclude{CGAL/Segment_Voronoi_diagram_hierarchy_2.h}
|
||||
|
|
@ -138,8 +152,6 @@ not.}
|
|||
\ccHeading{Insertion}
|
||||
\ccThree{Vertex_handle }{svdh.insert(Point_2 p)+}{}
|
||||
%
|
||||
{\sc In the following method I can insert the number of sites inserted
|
||||
in the diagram. Also I must add the possibility of shuffling.}
|
||||
\ccMethod{template< class Input_iterator >
|
||||
size_type insert(Input_iterator first, Input_iterator beyond);}
|
||||
{Inserts the sites in the range
|
||||
|
|
@ -148,6 +160,23 @@ size_type insert(Input_iterator first, Input_iterator beyond);}
|
|||
\ccPrecond{\ccc{Input_iterator} must be a model of \ccc{InputIterator}
|
||||
and its value type must be \ccc{Point_2} or \ccc{Site_2}.}}
|
||||
%
|
||||
\ccMethod{template< class Input_iterator >
|
||||
size_type insert(Input_iterator first, Input_iterator beyond,
|
||||
CGAL::Tag_false);}
|
||||
{Same as the \ccc{svdh.insert(first,beyond)} method.}
|
||||
%
|
||||
\ccMethod{template< class Input_iterator >
|
||||
size_type insert(Input_iterator first, Input_iterator beyond,
|
||||
CGAL::Tag_true);}
|
||||
{Inserts the sites in the range [\ccc{first}, \ccc{beyond})
|
||||
after perfoming a random shuffle on them. The input
|
||||
iterator range is not invalidated since the sites are
|
||||
copied locally before the shuffling is performed. The
|
||||
number of additional sites inserted is returned.
|
||||
\ccPrecond{\ccc{Input_iterator} must be a model of
|
||||
\ccc{InputIterator} and its value type must be
|
||||
\ccc{Point_2} or \ccc{Site_2}.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Vertex_handle insert(Point_2 p);}{Inserts the
|
||||
point \ccc{p} in the segment Voronoi diagram hierarchy. If \ccc{p} has
|
||||
|
|
@ -167,27 +196,32 @@ handle of \ccc{p} is returned.}
|
|||
vertex handle to one of its open subsegments is returned.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Vertex_handle insert(Site_2 s);}{Inserts the site \ccc{s} in the
|
||||
segment Voronoi diagram hierarchy. The vertex handle returned has
|
||||
the same semantics with the vertex handle returned by the methods
|
||||
\ccc{Vertex_handle insert(Point_2 p)} and \ccc{Vertex_handle
|
||||
insert(Point_2 p1, Point_2 p2)}, depending on whether \ccc{s}
|
||||
represents a point or a segment respectively.
|
||||
\ccPrecond{\ccc{s.is_exact()} must be \ccc{true}.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Vertex_handle insert(Point_2 p, Vertex_handle vnear);}
|
||||
{A call to this method is equivalent to \ccc{svdh.insert(p);} and it
|
||||
{A call to this method is equivalent to \ccc{svdh.insert(p)} and it
|
||||
has been added for the sake of conformity with the interface of the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Vertex_handle insert(Point_2 p1, Point_2 p2, Vertex_handle
|
||||
vnear);}{A call to this method is equivalent to
|
||||
\ccc{svdh.insert(p1, p2);} and it has been added for the sake of
|
||||
\ccc{svdh.insert(p1, p2)} and it has been added for the sake of
|
||||
conformity with the interface of the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class.}
|
||||
%\ccGlue
|
||||
%\ccMethod{Vertex_handle insert(Site_2 s, Vertex_handle
|
||||
%vnear);}{Inserts \ccc{s} in the Apollonius graph hierarchy using the
|
||||
%site associated with \ccc{vnear} as
|
||||
%an estimate for the nearest neighbor of the center of \ccc{s}.
|
||||
%If \ccc{s} is visible then the vertex handle of \ccc{s} is
|
||||
%returned, otherwise \ccc{Vertex_handle(NULL)} is returned.
|
||||
%A call to this method is equivalent to \ccc{agh.insert(s);} and it has
|
||||
%been added for the sake of conformity with the interface of the
|
||||
%\ccc{Apollonius_graph_2<Gt,Agds>} class.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Vertex_handle insert(Site_2 s, Vertex_handle
|
||||
vnear);}{A call to this method is equivalent to \ccc{svdh.insert(s)}
|
||||
and it has been added for the sake of conformity with the interface of
|
||||
the \ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class.}
|
||||
|
||||
%\ccHeading{Removal}
|
||||
%\ccThree{void }{agh.remove(Vertex_handle v)+}{}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,91 @@
|
|||
%% Copyright (c) 2003,2004 INRIA Sophia-Antipolis (France) and
|
||||
%% Notre Dame University (U.S.A.). All rights reserved.
|
||||
%%
|
||||
%% This file is part of CGAL (www.cgal.org); you may redistribute it under
|
||||
%% the terms of the Q Public License version 1.0.
|
||||
%% See the file LICENSE.QPL distributed with CGAL.
|
||||
%%
|
||||
%% Licensees holding a valid commercial license may use this file in
|
||||
%% accordance with the commercial license agreement provided with the software.
|
||||
%%
|
||||
%% This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
%% WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
%%
|
||||
%% $Source$
|
||||
%% $Revision$ $Date$
|
||||
%% $Name$
|
||||
%%
|
||||
%% Author(s) : Menelaos Karavelas <mkaravel@cse.nd.edu>
|
||||
|
||||
|
||||
|
||||
|
||||
\begin{ccRefClass}{Segment_Voronoi_diagram_storage_site_2<Gt,PH>}
|
||||
%% add template arg's if necessary
|
||||
|
||||
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
|
||||
%% \ccHtmlIndexC[class]{} %% add further index entries
|
||||
|
||||
\ccDefinition
|
||||
|
||||
The class \ccRefName\ is a model for the concept
|
||||
\ccc{SegmentVoronoiDiagramStorageSite_2}. It is parametrized by two
|
||||
template parameters: \ccc{Gt}, which must be a model of the
|
||||
\ccc{SegmentVoronoiDiagramTraits_2} concept, and \ccc{PH}, which must
|
||||
be identical to the type \ccc{PC::iterator}, where \ccc{PC} is the
|
||||
same as the template parameter in the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} and
|
||||
\ccc{Segment_Voronoi_diagram_hierarchy_2<Gt,STag,PC,DS>} classes.
|
||||
|
||||
\ccInclude{CGAL/Segment_Voronoi_diagram_storage_site_2.h}
|
||||
|
||||
\ccIsModel
|
||||
\ccc{SegmentVoronoiDiagramStorageSite_2}
|
||||
|
||||
\ccTypes
|
||||
|
||||
The class \ccRefName\ introduces the following type in addition to the
|
||||
types in the concept \ccc{SegmentVoronoiDiagramStorageSite_2}.
|
||||
|
||||
\ccTypedef
|
||||
{typedef Gt Geom_traits;}{A type for the template parameter \ccc{Gt}.}
|
||||
|
||||
|
||||
\ccCreation
|
||||
\ccTwo{Segment_Voronoi_diagram_storage_site_2<Gt,H> ss(Point_handle hp)+}{}
|
||||
\ccCreationVariable{ss} %% choose variable name
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>()}{Default
|
||||
constructor}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>(Point_handle
|
||||
hp)}{}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>(Point_handle
|
||||
hp1, Point_handle hp2)}{}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>(Point_handle
|
||||
hp1, Point_handle hp2, Point_handle hq1, Point_handle hq2)}{}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>(Point_handle
|
||||
hp1, Point_handle hp2, Point_handle hq1, Point_handle hq2, bool b)}{}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>(Point_handle
|
||||
hp1, Point_handle hp2, Point_handle hq1, Point_handle hq2,
|
||||
Point_handle hr1, Point_handle hr2)}{}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_site_2<Gt,H>(
|
||||
Segment_Voronoi_diagram_storage_site_2<Gt,PH> other)}{Copy constructor.}
|
||||
|
||||
\ccSeeAlso
|
||||
\ccc{SegmentVoronoiDiagramSite_2}\\
|
||||
\ccc{SegmentVoronoiDiagramTraits_2}\\
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_traits_2<ITag,K,MTag>}\\
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_filtered_traits_2<ITag,CK,CM,EK,EM,FK,FM>}
|
||||
|
||||
\end{ccRefClass}
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
%%RefPage: end of main body, begin of footer
|
||||
% EOF
|
||||
% +------------------------------------------------------------------------+
|
||||
|
||||
|
|
@ -53,13 +53,13 @@ afore-mentioned concepts.
|
|||
\ccHeading{Classes}
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_2<Gt,PC,DS>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_site_2<K>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_storage_site_2<K,PC,SSTag>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_storage_site_2<Gt,PH>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_data_structure_2<Vb,Fb>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_vertex_base_2<Gt,PC>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_vertex_base_2<Gt,PC,SSTag>}\\
|
||||
%\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_face_base_2<Gt>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_traits_2<K,Method_tag>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_filtered_traits_2<CK,CM,EK,EM,FK,FM>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_hierarchy_2<Gt,PC,DS>} \\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_traits_2<ITag,K,MTag>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_filtered_traits_2<ITag,CK,CM,EK,EM,FK,FM>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_hierarchy_2<Gt,STag,PC,DS>} \\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_hierarchy_vertex_base_2<Vbb>}
|
||||
|
||||
\lcHtml{\ccHeading{Links to the Reference Sections}}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@
|
|||
\input{Segment_Voronoi_diagram_2_ref/Segment_Voronoi_diagram_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/SegmentVoronoiDiagramSite_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/Segment_Voronoi_diagram_site_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/SegmentVoronoiDiagramStorageSite_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/Segment_Voronoi_diagram_storage_site_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/SegmentVoronoiDiagramDataStructure_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/Segment_Voronoi_diagram_data_structure_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/SegmentVoronoiDiagramVertexBase_2.tex}
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ requirements for the sites of a segment Voronoi diagram.
|
|||
\ccPostcond{The returned site is exact.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{SegmentVoronoiDiagramSite_2 supporting_site(unsinged int i);}
|
||||
\ccMethod{SegmentVoronoiDiagramSite_2 supporting_site(unsigned int i);}
|
||||
{Returns a segment site object representing the \ccc{i}-th
|
||||
exact segment that supports the point of intersection represented
|
||||
by the site.
|
||||
|
|
@ -169,7 +169,7 @@ requirements for the sites of a segment Voronoi diagram.
|
|||
\ccPostcond{The returned site is exact.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{SegmentVoronoiDiagramSite_2 crossing_site(unsinged int i);}
|
||||
\ccMethod{SegmentVoronoiDiagramSite_2 crossing_site(unsigned int i);}
|
||||
{Returns a segment site object representing the \ccc{i}-th exact
|
||||
segment that supports the $i$-th endpoint of the site
|
||||
which is not the supporting segment of the site.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,193 @@
|
|||
%% Copyright (c) 2003,2004 INRIA Sophia-Antipolis (France) and
|
||||
%% Notre Dame University (U.S.A.). All rights reserved.
|
||||
%%
|
||||
%% This file is part of CGAL (www.cgal.org); you may redistribute it under
|
||||
%% the terms of the Q Public License version 1.0.
|
||||
%% See the file LICENSE.QPL distributed with CGAL.
|
||||
%%
|
||||
%% Licensees holding a valid commercial license may use this file in
|
||||
%% accordance with the commercial license agreement provided with the software.
|
||||
%%
|
||||
%% This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
%% WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
%%
|
||||
%% $Source$
|
||||
%% $Revision$ $Date$
|
||||
%% $Name$
|
||||
%%
|
||||
%% Author(s) : Menelaos Karavelas <mkaravel@cse.nd.edu>
|
||||
|
||||
|
||||
|
||||
\begin{ccRefConcept}{SegmentVoronoiDiagramStorageSite_2}
|
||||
%% add template arg's if necessary
|
||||
|
||||
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
|
||||
%% \ccHtmlIndexC[class]{} %% add further index entries
|
||||
|
||||
\ccDefinition
|
||||
|
||||
The concept \ccc{SegmentVoronoiDiagramStorageSite_2} provides the
|
||||
requirements for the storage sites of a segment Voronoi diagram. The
|
||||
storage sites are sites that are used to store the information of a
|
||||
site in a more compact form (that uses less storage). This is achieved
|
||||
by storing handles to points instead of points.
|
||||
|
||||
|
||||
\ccTwo{SegmentVoronoiDiagramStorageSite_2::Point_handle+}{}
|
||||
\ccTypes
|
||||
\ccNestedType{Site_2}{The site type.}
|
||||
\ccGlue
|
||||
\ccNestedType{Point_handle}{The type for a handle to a point.}
|
||||
|
||||
|
||||
|
||||
\ccCreation
|
||||
\ccTwo{SegmentVoronoiDiagramStorageSite_2 ss()+}{}
|
||||
|
||||
|
||||
\ccCreationVariable{ss} %% choose variable name
|
||||
\ccConstructor{SegmentVoronoiDiagramStorageSite2 ss()}{Default constructor}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiStorageSite2(Point_handle hp)}{Constructor from a
|
||||
point handle.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiStorageSite2(Point_handle hp1,
|
||||
Point_handle hp2)}{Constructor from two point handles.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiStorageSite2(Point_handle hp1,
|
||||
Point_handle hp2, Point_handle hq1, Point_handle hq2)}{Constructor
|
||||
from four point handles.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiStorageSite2(Point_handle hp1,
|
||||
Point_handle hp2, Point_handle hq1, Point_handle hq2, bool
|
||||
b)}{Constructor from four point handles and a boolean.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiStorageSite2(Point_handle hp1,
|
||||
Point_handle hp2, Point_handle hq1, Point_handle hq2, Point_handle
|
||||
hr1, Point_handle hr2)}{Constructor from six
|
||||
point handles.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccConstructor{SegmentVoronoiDiagramStorageSite_2(SegmentVoronoiDiagramStorageSite_2
|
||||
other)}{Copy constructor.}
|
||||
|
||||
\ccPredicates
|
||||
\ccThree{bool}{ss.is_exact(unsigned int i)+}{}
|
||||
\ccMethod{bool is_defined();}{Returns \ccc{true} if the storage site
|
||||
represents a valid point or segment.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{bool is_point();}{Returns \ccc{true} if the storage site
|
||||
represents a point.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{bool is_segment();}{Returns \ccc{true} if the storage site
|
||||
represents a segment.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{bool is_exact();}{Returns \ccc{true} if the storage site
|
||||
represents an input point or an input segment. Returns \ccc{false}
|
||||
if it represents a point of intersection of two segments, or if it
|
||||
represents a segment, at least one endpoint of which is a point of
|
||||
intersection of two segments.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{bool is_exact(unsigned int i);}{Returns \ccc{true} if the
|
||||
\ccc{i}-th endpoint of the corresponding site is an input
|
||||
point. Returns \ccc{false} if the \ccc{i}-th endpoint of the
|
||||
corresponding site is the intersection of two segments.
|
||||
\ccPrecond{\ccc{i} must be at most $1$, and \ccc{ss.is_segment()}
|
||||
must be \ccc{true}.}}
|
||||
|
||||
|
||||
|
||||
|
||||
\ccAccessFunctions
|
||||
%\ccThree{Point_handle}{ss.handle(unsigned int i)+}{}
|
||||
\ccThree{SegmentVoronoiDiagramStorageSite_2}{}{}
|
||||
\ccMethod{Point_handle handle(unsigned int i) const;}{
|
||||
Returns the \ccc{i}-th point handle of the site's
|
||||
representation. The valid values for \ccc{i} are $0$ through the
|
||||
number of points in the constructor or the
|
||||
\ccc{set_point}/\ccc{set_segment} methods used to
|
||||
construct or define, respectively the site.
|
||||
\ccPrecond{\ccc{i} must be at most $5$. The storage site must be of
|
||||
the correct type in order to access the corresponding point handle.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{SegmentVoronoiDiagramStorageSite_2 supporting_site();}
|
||||
{Returns a storage site object representing the exact segment
|
||||
that supports the segment represented by the storage site.
|
||||
\ccPrecond{\ccc{ss.is_segment()} must be \ccc{true}.}
|
||||
\ccPostcond{The returned storage site represents an exact site.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{SegmentVoronoiDiagramStorageSite_2 supporting_site(unsigned int i);}
|
||||
{Returns a storage site object representing the \ccc{i}-th
|
||||
exact segment that supports the point of intersection represented
|
||||
by the storage site.
|
||||
\ccPrecond{\ccc{i} must be at most $1$, \ccc{ss.is_point()} must be
|
||||
\ccc{true} and \ccc{ss.is_exact()} must be \ccc{false}.}
|
||||
\ccPostcond{The returned storage site represents an exact site.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{SegmentVoronoiDiagramStorageSite_2 crossing_site(unsigned int i);}
|
||||
{Returns a storage site object representing the \ccc{i}-th exact
|
||||
segment that supports the $i$-th endpoint of the site
|
||||
which is not the supporting segment of the site.
|
||||
\ccPrecond{\ccc{i} must be at most $1$,
|
||||
\ccc{ss.is_segment()} must be \ccc{true} and
|
||||
\ccc{ss.is_exact(i)} must be \ccc{false}.}
|
||||
\ccPostcond{The returned site represents and exact site.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Site_2 site();}{Returns the site represented by the storage
|
||||
site.}
|
||||
|
||||
|
||||
\ccHeading{Set methods}
|
||||
\ccThree{void}{s.set_point(Point_handle hp)+}{}
|
||||
%\ccThree{void}{s.set_segment(Point_2 p1, Point_2 p2)+}{}
|
||||
\ccMethod{void set_point(Point_handle hp);}{}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{void set_point(Point_handle hp1, Point_handle hp2,
|
||||
Point_handle hq1, Point_handle hq2);}{}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{void set_segment(Point_handle hp1, Point_handle hp2);}{}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{void set_segment(Point_handle hp1, Point_handle hp2,
|
||||
Point_handle hq1, Point_handle hq2, bool b);}{}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{void set_segment(Point_handle hp1, Point_handle hp2,
|
||||
Point_handle hq1, Point_handle hq2, Point_handle hr1,
|
||||
Point_handle hr2);}{}
|
||||
|
||||
|
||||
|
||||
\ccHasModels
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_storage_site_2<K,H>}
|
||||
|
||||
|
||||
\ccSeeAlso
|
||||
\ccc{SegmentVoronoiDiagramTraits_2}\\
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_site_2<K>}\\
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_traits_2<ITag,K,MTag>}\\
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_filtered_traits_2<ITag,CK,CM,EK,EM,FK,FM>}
|
||||
|
||||
\end{ccRefConcept}
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
%%RefPage: end of main body, begin of footer
|
||||
% EOF
|
||||
% +------------------------------------------------------------------------+
|
||||
|
||||
|
|
@ -22,10 +22,6 @@
|
|||
\begin{ccRefClass}{Segment_Voronoi_diagram_hierarchy_2<Gt,STag,PC,DS>}
|
||||
%% add template arg's if necessary
|
||||
|
||||
{\sc I have to modify this when I add the boolean about whether or not
|
||||
points are to be inserted in the upper levels of the hierarchy or
|
||||
not.}
|
||||
|
||||
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
|
||||
%% \ccHtmlIndexC[class]{} %% add further index entries
|
||||
\ccDefinition
|
||||
|
|
@ -33,42 +29,60 @@
|
|||
We provide an alternative to the class
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} for the incremental
|
||||
construction of the segment Voronoi diagram. The \ccRefName\ class
|
||||
maintains a hierarchy of segment Voronoi diagram graphs. The
|
||||
bottom-most level of the hierarchy contains the full segment Voronoi
|
||||
diagram. A site that is in level $i$, is in level $i+1$ with
|
||||
probability $1/\alpha$ where $\alpha > 1$ is some constant. The
|
||||
difference between the \ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class
|
||||
and the \ccRefName\ is on how the nearest neighbor location is
|
||||
done. Given a point $p$ the location is done as follows: at the top
|
||||
most level we find the nearest neighbor of $p$ as in the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class. At every subsequent
|
||||
level $i$ we use the nearest neighbor found at level $i+1$ to find the
|
||||
nearest neighbor at level $i$. This is a variant of the corresponding
|
||||
hierarchy for points found in \cite{d-iirdt-98}. The details are
|
||||
described in \cite{k-peasv-04}.
|
||||
%
|
||||
The class has three template parameters which have essentially the same
|
||||
meaning as in the \ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class. The
|
||||
maintains a hierarchy of Voronoi diagrams. There are two possibilities
|
||||
as to how this hierarchy is constructed.
|
||||
|
||||
In the first case the bottom-most level of the hierarchy contains the
|
||||
full segment Voronoi diagram. The upper levels of the hierarchy
|
||||
contain only points that are either point sites or endpoints of
|
||||
segment sites in the bottom-most Voronoi diagram.
|
||||
A point that is in level $i$ (either as an individdual point or as the
|
||||
endpoint of a segment), is inserted in level $i+1$ with probability
|
||||
$1/alpha$ where $\alpha>1$ is some constant.
|
||||
In the second case the upper levels of the hierarchy contains not only
|
||||
points but also segments. A site that is in level $i$, is in level
|
||||
$i+1$ with probability $1/\beta$ where $\beta > 1$ is some constant.
|
||||
|
||||
The difference between the \ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>}
|
||||
class and the \ccRefName\ class (both versions of it) is on how the
|
||||
nearest neighbor location is done. Given a point $p$ the location is
|
||||
done as follows: at the top most level we find the nearest neighbor of
|
||||
$p$ as in the \ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class. At
|
||||
every subsequent level $i$ we use the nearest neighbor found at level
|
||||
$i+1$ to find the nearest neighbor at level $i$. This is a variant of
|
||||
the corresponding hierarchy for points found in \cite{d-iirdt-98}. The
|
||||
details are described in \cite{k-peasv-04}.
|
||||
|
||||
The class has four template parameters. The first, third and fourth
|
||||
have essentially the same semantics as in the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class. The
|
||||
first template parameter must be a model of the
|
||||
\ccc{SegmentVoronoiDiagramTraits_2} concept.
|
||||
The second template parameter must be a model of the
|
||||
The third template parameter must be a model of the
|
||||
\ccc{SimpleContainer} concept. The third template parameter must be a
|
||||
model of the \ccc{SegmentVoronoiDiagramDataStructure_2}
|
||||
concept. However, the vertex base class that is to be used in the
|
||||
segment Voronoi diagram data structure must
|
||||
be a model of the \ccc{SegmentVoronoiDiagramHierarchyVertexBase_2}
|
||||
concept. The second template parameter defaults to
|
||||
\ccc{CGAL::Simple_container<typename Gt::Point_2>}, whereas the third
|
||||
concept. The third template parameter defaults to
|
||||
\ccc{CGAL::Simple_container<typename Gt::Point_2>}, whereas the fourth
|
||||
template parameter defaults to
|
||||
\ccc{Segment_Voronoi_diagram_data_structure_2<
|
||||
Segment_Voronoi_diagram_hierarchy_vertex_base_2<
|
||||
Segment_Voronoi_diagram_vertex_base_2<Gt> >,
|
||||
Segment_Voronoi_diagram_face_base_2<Gt> >}.
|
||||
Segment_Voronoi_diagram_face_base_2<Gt> >}. The second template
|
||||
parameter controls whether or not segments are added in the upper
|
||||
levels of the hierarchy. It's possible values are \ccc{CGAL::Tag_true}
|
||||
and \ccc{CGAL::Tag_false}. If it is set to \ccc{CGAL::Tag_true},
|
||||
segments are also inserted in the upper levels of the hierarchy. The
|
||||
value \ccc{CGAL::Tag_false} indicates that only points are to be
|
||||
inserted in the upper levels of the hierarchy.
|
||||
|
||||
|
||||
The \ccRefName\ class derives publicly from the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class. The interface is
|
||||
the same with its base class. In the sequel only the methods
|
||||
overridden are documented.
|
||||
the same with its base class. In the sequel only additional types
|
||||
defined and the methods overridden are documented.
|
||||
|
||||
|
||||
\ccInclude{CGAL/Segment_Voronoi_diagram_hierarchy_2.h}
|
||||
|
|
@ -138,8 +152,6 @@ not.}
|
|||
\ccHeading{Insertion}
|
||||
\ccThree{Vertex_handle }{svdh.insert(Point_2 p)+}{}
|
||||
%
|
||||
{\sc In the following method I can insert the number of sites inserted
|
||||
in the diagram. Also I must add the possibility of shuffling.}
|
||||
\ccMethod{template< class Input_iterator >
|
||||
size_type insert(Input_iterator first, Input_iterator beyond);}
|
||||
{Inserts the sites in the range
|
||||
|
|
@ -148,6 +160,23 @@ size_type insert(Input_iterator first, Input_iterator beyond);}
|
|||
\ccPrecond{\ccc{Input_iterator} must be a model of \ccc{InputIterator}
|
||||
and its value type must be \ccc{Point_2} or \ccc{Site_2}.}}
|
||||
%
|
||||
\ccMethod{template< class Input_iterator >
|
||||
size_type insert(Input_iterator first, Input_iterator beyond,
|
||||
CGAL::Tag_false);}
|
||||
{Same as the \ccc{svdh.insert(first,beyond)} method.}
|
||||
%
|
||||
\ccMethod{template< class Input_iterator >
|
||||
size_type insert(Input_iterator first, Input_iterator beyond,
|
||||
CGAL::Tag_true);}
|
||||
{Inserts the sites in the range [\ccc{first}, \ccc{beyond})
|
||||
after perfoming a random shuffle on them. The input
|
||||
iterator range is not invalidated since the sites are
|
||||
copied locally before the shuffling is performed. The
|
||||
number of additional sites inserted is returned.
|
||||
\ccPrecond{\ccc{Input_iterator} must be a model of
|
||||
\ccc{InputIterator} and its value type must be
|
||||
\ccc{Point_2} or \ccc{Site_2}.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Vertex_handle insert(Point_2 p);}{Inserts the
|
||||
point \ccc{p} in the segment Voronoi diagram hierarchy. If \ccc{p} has
|
||||
|
|
@ -167,27 +196,32 @@ handle of \ccc{p} is returned.}
|
|||
vertex handle to one of its open subsegments is returned.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Vertex_handle insert(Site_2 s);}{Inserts the site \ccc{s} in the
|
||||
segment Voronoi diagram hierarchy. The vertex handle returned has
|
||||
the same semantics with the vertex handle returned by the methods
|
||||
\ccc{Vertex_handle insert(Point_2 p)} and \ccc{Vertex_handle
|
||||
insert(Point_2 p1, Point_2 p2)}, depending on whether \ccc{s}
|
||||
represents a point or a segment respectively.
|
||||
\ccPrecond{\ccc{s.is_exact()} must be \ccc{true}.}}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Vertex_handle insert(Point_2 p, Vertex_handle vnear);}
|
||||
{A call to this method is equivalent to \ccc{svdh.insert(p);} and it
|
||||
{A call to this method is equivalent to \ccc{svdh.insert(p)} and it
|
||||
has been added for the sake of conformity with the interface of the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Vertex_handle insert(Point_2 p1, Point_2 p2, Vertex_handle
|
||||
vnear);}{A call to this method is equivalent to
|
||||
\ccc{svdh.insert(p1, p2);} and it has been added for the sake of
|
||||
\ccc{svdh.insert(p1, p2)} and it has been added for the sake of
|
||||
conformity with the interface of the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class.}
|
||||
%\ccGlue
|
||||
%\ccMethod{Vertex_handle insert(Site_2 s, Vertex_handle
|
||||
%vnear);}{Inserts \ccc{s} in the Apollonius graph hierarchy using the
|
||||
%site associated with \ccc{vnear} as
|
||||
%an estimate for the nearest neighbor of the center of \ccc{s}.
|
||||
%If \ccc{s} is visible then the vertex handle of \ccc{s} is
|
||||
%returned, otherwise \ccc{Vertex_handle(NULL)} is returned.
|
||||
%A call to this method is equivalent to \ccc{agh.insert(s);} and it has
|
||||
%been added for the sake of conformity with the interface of the
|
||||
%\ccc{Apollonius_graph_2<Gt,Agds>} class.}
|
||||
%
|
||||
\ccGlue
|
||||
\ccMethod{Vertex_handle insert(Site_2 s, Vertex_handle
|
||||
vnear);}{A call to this method is equivalent to \ccc{svdh.insert(s)}
|
||||
and it has been added for the sake of conformity with the interface of
|
||||
the \ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} class.}
|
||||
|
||||
%\ccHeading{Removal}
|
||||
%\ccThree{void }{agh.remove(Vertex_handle v)+}{}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,91 @@
|
|||
%% Copyright (c) 2003,2004 INRIA Sophia-Antipolis (France) and
|
||||
%% Notre Dame University (U.S.A.). All rights reserved.
|
||||
%%
|
||||
%% This file is part of CGAL (www.cgal.org); you may redistribute it under
|
||||
%% the terms of the Q Public License version 1.0.
|
||||
%% See the file LICENSE.QPL distributed with CGAL.
|
||||
%%
|
||||
%% Licensees holding a valid commercial license may use this file in
|
||||
%% accordance with the commercial license agreement provided with the software.
|
||||
%%
|
||||
%% This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
%% WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
%%
|
||||
%% $Source$
|
||||
%% $Revision$ $Date$
|
||||
%% $Name$
|
||||
%%
|
||||
%% Author(s) : Menelaos Karavelas <mkaravel@cse.nd.edu>
|
||||
|
||||
|
||||
|
||||
|
||||
\begin{ccRefClass}{Segment_Voronoi_diagram_storage_site_2<Gt,PH>}
|
||||
%% add template arg's if necessary
|
||||
|
||||
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
|
||||
%% \ccHtmlIndexC[class]{} %% add further index entries
|
||||
|
||||
\ccDefinition
|
||||
|
||||
The class \ccRefName\ is a model for the concept
|
||||
\ccc{SegmentVoronoiDiagramStorageSite_2}. It is parametrized by two
|
||||
template parameters: \ccc{Gt}, which must be a model of the
|
||||
\ccc{SegmentVoronoiDiagramTraits_2} concept, and \ccc{PH}, which must
|
||||
be identical to the type \ccc{PC::iterator}, where \ccc{PC} is the
|
||||
same as the template parameter in the
|
||||
\ccc{Segment_Voronoi_diagram_2<Gt,PC,DS>} and
|
||||
\ccc{Segment_Voronoi_diagram_hierarchy_2<Gt,STag,PC,DS>} classes.
|
||||
|
||||
\ccInclude{CGAL/Segment_Voronoi_diagram_storage_site_2.h}
|
||||
|
||||
\ccIsModel
|
||||
\ccc{SegmentVoronoiDiagramStorageSite_2}
|
||||
|
||||
\ccTypes
|
||||
|
||||
The class \ccRefName\ introduces the following type in addition to the
|
||||
types in the concept \ccc{SegmentVoronoiDiagramStorageSite_2}.
|
||||
|
||||
\ccTypedef
|
||||
{typedef Gt Geom_traits;}{A type for the template parameter \ccc{Gt}.}
|
||||
|
||||
|
||||
\ccCreation
|
||||
\ccTwo{Segment_Voronoi_diagram_storage_site_2<Gt,H> ss(Point_handle hp)+}{}
|
||||
\ccCreationVariable{ss} %% choose variable name
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>()}{Default
|
||||
constructor}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>(Point_handle
|
||||
hp)}{}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>(Point_handle
|
||||
hp1, Point_handle hp2)}{}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>(Point_handle
|
||||
hp1, Point_handle hp2, Point_handle hq1, Point_handle hq2)}{}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>(Point_handle
|
||||
hp1, Point_handle hp2, Point_handle hq1, Point_handle hq2, bool b)}{}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_storage_site_2<Gt,H>(Point_handle
|
||||
hp1, Point_handle hp2, Point_handle hq1, Point_handle hq2,
|
||||
Point_handle hr1, Point_handle hr2)}{}
|
||||
%\ccGlue
|
||||
\ccConstructor{Segment_Voronoi_diagram_site_2<Gt,H>(
|
||||
Segment_Voronoi_diagram_storage_site_2<Gt,PH> other)}{Copy constructor.}
|
||||
|
||||
\ccSeeAlso
|
||||
\ccc{SegmentVoronoiDiagramSite_2}\\
|
||||
\ccc{SegmentVoronoiDiagramTraits_2}\\
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_traits_2<ITag,K,MTag>}\\
|
||||
\ccc{CGAL::Segment_Voronoi_diagram_filtered_traits_2<ITag,CK,CM,EK,EM,FK,FM>}
|
||||
|
||||
\end{ccRefClass}
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
%%RefPage: end of main body, begin of footer
|
||||
% EOF
|
||||
% +------------------------------------------------------------------------+
|
||||
|
||||
|
|
@ -53,13 +53,13 @@ afore-mentioned concepts.
|
|||
\ccHeading{Classes}
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_2<Gt,PC,DS>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_site_2<K>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_storage_site_2<K,PC,SSTag>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_storage_site_2<Gt,PH>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_data_structure_2<Vb,Fb>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_vertex_base_2<Gt,PC>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_vertex_base_2<Gt,PC,SSTag>}\\
|
||||
%\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_face_base_2<Gt>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_traits_2<K,Method_tag>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_filtered_traits_2<CK,CM,EK,EM,FK,FM>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_hierarchy_2<Gt,PC,DS>} \\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_traits_2<ITag,K,MTag>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_filtered_traits_2<ITag,CK,CM,EK,EM,FK,FM>}\\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_hierarchy_2<Gt,STag,PC,DS>} \\
|
||||
\ccRefIdfierPage{CGAL::Segment_Voronoi_diagram_hierarchy_vertex_base_2<Vbb>}
|
||||
|
||||
\lcHtml{\ccHeading{Links to the Reference Sections}}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@
|
|||
\input{Segment_Voronoi_diagram_2_ref/Segment_Voronoi_diagram_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/SegmentVoronoiDiagramSite_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/Segment_Voronoi_diagram_site_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/SegmentVoronoiDiagramStorageSite_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/Segment_Voronoi_diagram_storage_site_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/SegmentVoronoiDiagramDataStructure_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/Segment_Voronoi_diagram_data_structure_2.tex}
|
||||
\input{Segment_Voronoi_diagram_2_ref/SegmentVoronoiDiagramVertexBase_2.tex}
|
||||
|
|
|
|||
Loading…
Reference in New Issue