\begin{ccRefConcept}{TriangulationDSVertex} \ccDefinition The concept \ccRefName\ describes what a vertex is in a model of the concept \ccc{TriangulationDataStructure}. It sets requirements of combinatorial nature only, as geometry is not concerned here. In particular, we only require that the vertex holds a handle to a full cell incident to it in the triangulation. \ccHasModels \ccc{CGAL::Triangulation_ds_vertex}\\ \ccc{CGAL::Triangulation_vertex} \ccTypes \ccThree{Full_cell_handle}{v. set_full_cell(Full_cell_handle c);}{} \ccThreeToTwo \ccNestedType{Full_cell_handle}{A handle to a cell. It must be the same as the nested type \ccc{TriangulationDataStructure::Full_cell_handle} of the \ccc{TriangulationDataStructure} in which the \ccc{TriangulationDSVertex} is defined/used.} \ccNestedType{ template Rebind_TDS} {This nested template class has to define a type \ccc{Other} which is the {\it rebound} vertex, that is, the one whose \ccc{Triangulation_data_structure} will be the actually used one. The \ccc{Other} type will be the real base class of \ccc{Triangulation_data_structure::Vertex}.} \ccCreation \ccCreationVariable{v} \ccConstructor{TriangulationDSVertex();}{The default constructor (no incident full cell is set).} \ccGlue \ccConstructor{TriangulationDSVertex(Full_cell_handle c);}{Sets the incident full cell to \ccc{c}. \ccPrecond \ccc{c} must not be the default-constructed \ccc{Full_cell_handle}.} \ccOperations \ccThree{Full_cell_handle}{v. set_full_cell(Full_cell_handle c);}{} \ccMethod{void set_full_cell(Full_cell_handle c);}{Set \ccc{c} as the vertex's incident full cell. \ccPrecond \ccc{c} must not be the default-constructed \ccc{Full_cell_handle}.} \ccMethod{Full_cell_handle full_cell() const;}{Returns a handle to a full cell incident to the vertex.} \begin{ccDebug} \ccHeading{Validity check} \ccMethod{bool is_valid(bool verbose=false) const;}{% Performs some validity checks on the vertex \ccVar. It must \emph{at least} check that \ccVar\ has an incident full cell, which in turn must contain \ccVar\ as one of its vertices. Returns \ccc{true} if all the tests pass, \ccc{false} if any test fails. See the documentation for the models of this concept to see the additionnal (if any) validity checks that they implement.% } \end{ccDebug} % \ccHeading{Memory management} % \ccMethod{void* for_compact_container() const;}{} % \ccGlue\ccMethod{void* & for_compact_container();}{} % These member functions are required by the classes % \ccc{Triangulation_data_structure} and % \ccc{Triangulation} (and its derived classes) because they use % the \cgal\ container class \ccc{Compact_container} to store their vertices and % full cells. See the documentation of \ccc{Compact_container} for the exact % requirements. \ccHeading{Memory management} \ccMethod{void * for_compact_container() const;}{} \ccGlue \ccMethod{void * & for_compact_container();}{} { These member functions are required by \ccc{Triangulation_data_structure} because it uses \ccc{Compact_container} to store its cells. See the documentation of \ccc{Compact_container} for the exact requirements.} \ccHeading{Input/Output} These operators can be used directly and are called by the I/O operator of class \ccc{TriangulationDataStructure}. \ccFunction{template istream& operator>>(istream & is, Triangulation_ds_vertex & v);} {Reads (possibly) non-combinatorial information about a vertex from the stream \ccc{is} into \ccc{v}.} \ccFunction{template ostream& operator<<(ostream & os, const Triangulation_ds_vertex & v);} {Writes (possibly) non-combinatorial information about vertex \ccc{v} to the stream \ccc{os}.} \ccSeeAlso \ccc{TriangulationDSFullCell}\\ \ccc{TriangulationDSFace}\\ \ccc{TriangulationDataStructure}\\ \ccc{Triangulation} \end{ccRefConcept}