% +------------------------------------------------------------------------+
% | Reference manual page: RegularCellBase_3.tex
% +------------------------------------------------------------------------+
% | 12.04.2000   Author
% | Package: Package
% | 
\RCSdef{\RCSRegularcellbaseRev}{$Id$}
\RCSdefDate{\RCSRegularcellbaseDate}{$Date$}
% |
%%RefPage: end of header, begin of main body
% +------------------------------------------------------------------------+


\begin{ccRefConcept}{RegularTriangulationCellBase_3}

%% \ccHtmlCrossLink{}     %% add further rules for cross referencing links
%% \ccHtmlIndexC[concept]{} %% add further index entries

\ccDefinition
  
The regular triangulation of a set of weighted points does not
necessarily
have one vertex for each of the input points. Some of the input
weigthed points have no cell in the dual power diagrams
and therefore do not correspond to a vertex of the regular
triangulation.
Those weighted points are said to be {\it hidden} points.
A  point which is hidden at a given time may appear later as a vertex of
the regular triangulation upon removal on some other weighted point.
Therefore, hidden points have to be stored somewhere.
The regular triangulation store those hidden points
in its cells.

A hidden point can appear as vertex of the triangulation
only when the
three dimensional cell where its point component is located
(the cell which hides it)
is removed. Therefore we decided to store 
in each cell of a regular triangulation
the list of hidden points that are located in the face.
Thus  points hidden by a face are easily reinserted in the triangulation
when the face is removed.

The base cell of a regular triangulation 
has to be a model
of the concept \ccRefName\ , which refines
the concept \ccc{TriangulationCellBase_3} by adding
in the cell  a container to store hidden points.

\ccRefines
\ccc{TriangulationCellBase_3}

\ccTypes
\ccNestedType{Point}
{Must be the same as the point type \ccc{TriangulationTraits_3::Point_3}
defined by the geometric traits class of the triangulation.}

\ccTypes
\ccNestedType{Point_iterator}
{Iterator of value type Point}


\ccCreationVariable{rcb}  %% choose variable name


\ccHeading{Access Functions}
\ccMethod{Point_iterator hidden_points_begin();}
{Returns an iterator pointing to the first hidden point.}

\ccMethod{Point_iterator hidden_points_end();}
{Returns a past-the-end iterator.}

\ccHeading{Setting}
\ccMethod{void hide_point(const Point & p);}
{Adds \ccc{p} to the set of hidden points of the cell.}

\ccHasModels
\ccc{CGAL::Regular_triangulation_cell_base_3}

\ccSeeAlso
\ccc{TriangulationCellBase_3}

\end{ccRefConcept}

% +------------------------------------------------------------------------+
%%RefPage: end of main body, begin of footer
% EOF
% +------------------------------------------------------------------------+

