cgal/Triangulation/doc_tex/Triangulation_ref/Triangulation_ds_full_cell.tex

84 lines
3.0 KiB
TeX

\begin{ccRefClass}{Triangulation_ds_full_cell<TriangulationDataStructure, TDSFullCellStoragePolicy>}
\ccDefinition
The class \ccRefName\ serves as the default full cell template parameter in the
class \ccc{Triangulation_data_structure<Dimensionality, TriangulationDSVertex,
TriangulationDSFullCell>}.
This class does not provide any geometric capabilities but only combinatorial
(adjacency) information. Thus, if the \ccc{Triangulation_data_structure} is
used as a parameter of an (embedded) \ccc{Triangulation}, then its full cell template
parameter has to fulfill additional geometric requirements, i.e. it has to be
a model of the refined concept \ccc{TriangulationFullCell}.
This class can be used directly or can serve as a base to derive other classes
with some additional attributes tuned for a specific application.
\ccInclude{CGAL/Triangulation_ds_full_cell.h}
\ccParameters
The first template parameter, \ccc{TriangulationDataStructure}, must be a model of the
\ccc{TriangulationDataStructure} concept.
%It defaults to \ccc{void}, which is used to break some dependency cycles.
The second parameter, \ccc{TDSFullCellStoragePolicy}, indicates whether or not
the full cell should additionally store the mirror indices (the indices
of the mirror vertices). This improves speed a little, but takes
more space:
The class template \ccRefName\ accepts that no second parameter be specified.
It also accepts the tag \ccc{CGAL::Default} as second parameter. Both cases are
equivalent to setting \ccc{TDSFullCellStoragePolicy} to
\ccc{CGAL::TDS_full_cell_default_storage_policy}.
When the second parameter is specified, its possible ``values''
are:\begin{itemize}
\item \ccc{CGAL::Default}, which is the {default} value. In that case, the
policy \ccc{CGAL::TDS_full_cell_default_storage_policy} is used.
\item \ccc{CGAL::TDS_full_cell_default_storage_policy}. In that case, the mirror
indices are {not stored}.
\item \ccc{CGAL::TDS_full_cell_mirror_storage_policy}. In that case, the mirror
indices are stored.
\end{itemize}
See the user manual for how to choose the second option.
\ccIsModel
\ccc{TriangulationDSFullCell}
\ccCreationVariable{c}
\begin{ccDebug}
\ccHeading{Validity check}
The \ccc{is_valid} method is only minimally defined in the
\ccc{TriangulationDSFullCell} concept, so that we document it more precisely
here, for the model \ccRefName:
\ccMethod{bool is_valid(bool verbose=false) const;}{
Implements the validity checks required by the concept
\ccc{TriangulationDSFullCell}. In addition, it is checked that there is no
\ccc{NULL} handle to vertices in the middle of non-\ccc{NULL} ones, that is,
that the internal memory layout is not corrupted.%
}
\end{ccDebug}
\begin{ccAdvanced}
\ccHeading{Rebind mechanism}
In case of derivation from that class, the nested class
\ccc{Rebind_TDS} need to be provided in the derived class.
\end{ccAdvanced}
\ccSeeAlso
\ccc{Triangulation_ds_vertex<TriangulationDataStructure>}\\
\ccc{Triangulation_data_structure<Dimensionality, TriangulationDSVertex, TriangulationDSFullCell>>}
\end{ccRefClass}