cgal/Triangulation_2/doc_tex/TDS_2_ref/TriangulationDSFace_2.tex

168 lines
5.1 KiB
TeX

% +------------------------------------------------------------------------+
% | Reference manual page: TDS_2::Face.tex
% +------------------------------------------------------------------------+
% | 07.04.2000 Author
% | Package: Package
% |
\RCSdef{\RCSTdsFace}{$Id$}
\RCSdefDate{\RCSTdsFaceDate}{$Date$}
% |
%%RefPage: end of header, begin of main body
% +------------------------------------------------------------------------+
\begin{ccRefConcept}{TriangulationDataStructure_2::Face}
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
%% \ccHtmlIndexC[concept]{} %% add further index entries
\ccDefinition
The concept \ccRefName\ describes the types used to store the faces
face class of a
\ccc{TriangulationDataStructure_2}\lcTex{, see
\ccRefPage{TriangulationDataStructure_2}}.
A \ccRefName\ stores three pointers to its three vertices
and three pointers to its three neighbors.
The vertices are indexed 0,1, and 2 in counterclockwise order.
The neighbor indexed $i$ lies
opposite to vertex i.
In degenerate cases,
when the triangulation data structure stores a
simplicial complex of dimension $0$ and $1$,
the type \ccRefName\ is used to store the faces
of maximal dimension of the complex
: i.e. a vertex in dimension $0$, an edge in dimension $1$.
Only vertices and neighbors with index $0$ are set in the first case,
only vertices and neighbors with index $0$ or $1$ are set in the second case.
\ccTypes
The class \ccRefName\ defines the same types as
the triangulation data structure
except the iterators and the circulators.
\ccCreationVariable{f} %% choose variable name
\ccCreation
The methods \ccc{create_face} and
\ccc{delete_face()}
have to be used to
define new faces and to delete non longer used faces.
\ccHeading{Vertex Access Functions}
\ccThree{Vertex_handle}{f.has_neighbors((Face_handle n);}{}
\ccMethod{Vertex_handle vertex(int i) const;}
{returns the vertex \ccc{i} of \ccVar.
\ccPrecond $0\leq i \leq 2$.}
\ccGlue
\ccMethod{int index(Vertex_handle v) const;}
{returns the index of vertex \ccc{v} in \ccVar. \ccPrecond \ccc{v} is
a vertex of \ccVar}
\ccGlue
\ccMethod{bool has_vertex(Vertex_handle v) const;}
{returns \ccc{true} if \ccc{v} is a vertex of \ccVar.}
\ccGlue
\ccMethod{bool has_vertex(Vertex_handle v, int& i) const;}
{returns \ccc{true} if \ccc{v} is a vertex of \ccVar, and
computes the index \ccc{i} of \ccc{v} in \ccc{f}.}
\ccHeading{Neighbor Access Functions}
The neighbor with index \ccc{i} is the neighbor which is opposite
to the vertex with index \ccc{i}.
\ccMethod{Face_handle neighbor(int i) const;}
{returns the neighbor \ccc{i} of \ccVar.
\ccPrecond $0\leq i \leq 2$.
}
\ccGlue
\ccMethod{int index(Face_handle n) const;}
{returns the index of face \ccc{n}.
\ccPrecond \ccc{n} is a neighbor of \ccVar.}
\ccGlue
\ccMethod{bool has_neighbor(Face_handle n) const;}
{returns \ccc{true} if \ccc{n} is a neighbor of \ccVar.}
\ccGlue
\ccMethod{bool has_neighbor(Face_handle n, int& i) const;}
{returns \ccc{true} if \ccc{n} is a neighbor of \ccVar, and
compute the index \ccc{i} of \ccc{n}.}
\begin{ccAdvanced}
\ccHeading{Setting}
\ccThree{Vertex_handle}{f.has_vertex( Vertex_handle v, int& i)x}{}
\ccMethod{void set_vertex(int i, Vertex_handle v);}
{sets vertex \ccc{i} to be \ccc{v}.
\ccPrecond $0\leq i \leq 2$.
}
\ccGlue
\ccMethod{void set_neighbor(int i, Face_handle n);}
{sets neighbor \ccc{i} to be \ccc{n}.
\ccPrecond $0\leq i \leq 2$.
}
\ccGlue
\ccMethod{ void set_vertices();}{sets the vertices pointers to \ccc{NULL}.}
\ccGlue
\ccMethod{void set_vertices(Vertex_handle v0,
Vertex_handle v1,
Vertex_handle v2);}{sets the vertices pointers.}
\ccGlue
\ccMethod{void set_neighbors();} {sets the neighbors pointers to \ccc{NULL}.}
\ccGlue
\ccMethod{void set_neighbors(Face_handle n0,
Face_handle n1,
Face_handle n2);}{sets the neighbors pointers.}
\ccHeading{Checking}
\ccMethod{bool is_valid() const;}
{returns \ccc{true} if the function
\ccc{is_valid()} of the base class
returns \ccc{true} and if, for each index $i$, $0 \le i < 3$,
face $f$ is a neighbor of its neighboring face \ccc{neighbor(i)}
and shares with this neighbor the vertices \ccc{cw(i)} and \ccc{ccw(i)}
in correct reverse order.}
\end{ccAdvanced}
\ccHeading{Miscellaneous}
\ccMethod{int ccw(int i) const;}
{Returns $i+1$ modulo 3.\ccPrecond $0\leq i \leq 2$.}
\ccMethod{int cw(int i) const;}
{Returns $i+2$ modulo 3.\ccPrecond $0\leq i \leq 2$.}
\ccHeading{I/O}
\ccFunction{istream& operator>> (istream& is, TriangulationDataStructure_2::Face & f);}
{Inputs any non combinatorial information possibly stored in the face.}
\ccGlue
\ccFunction{ostream& operator<< (ostream& os, const TriangulationDataStructure_2::Face & f);}
{Outputs any non combinatorial information possibly stored in the face.}
\ccSeeAlso
\ccc{TriangulationDataStructure_2}, \\
\ccc{TriangulationDataStructure_2::Vertex}, \\
\ccc{TriangulationFaceBase_2}.
\end{ccRefConcept}
% +------------------------------------------------------------------------+
%%RefPage: end of main body, begin of footer
% EOF
% +------------------------------------------------------------------------+