% +------------------------------------------------------------------------+ % | Reference manual page: SurfaceMeshCellBase_3.tex % +------------------------------------------------------------------------+ % | 09.12.2005 Author % | Package: Package % | \RCSdef{\RCSSurfaceMeshCellBaseRev}{$Id$} \RCSdefDate{\RCSSurfaceMeshCellBaseDate}{$Date$} % | %%RefPage: end of header, begin of main body % +------------------------------------------------------------------------+ \begin{ccRefConcept}{SurfaceMeshCellBase_3} %% \ccHtmlCrossLink{} %% add further rules for cross referencing links %% \ccHtmlIndexC[concept]{} %% add further index entries \ccDefinition The concept \ccRefName\ describes the cell base type of the three dimensional triangulation used to embed the surface mesh. More precisely, the first template parameter \ccc{SurfaceMeshC2T3} of the surface mesher \ccc{make_surface_mesh} is a model of the concept \ccc{SurfaceMeshComplex_2InTriangulation_3} which describes a data structure to store a pure two dimensional complex embedded in a three dimensional triangulation. In particular, the type \ccc{SurfaceMeshC2T3} is required to provide a three dimensional triangulation type \ccc{SurfaceMeshC2T3::Triangulation_3}. The concept \ccRefName\ describes the cell base type required in this triangulation type. \ccGeneralizes \ccc{TriangulationCellBase_3} The concept \ccRefName\ adds four markers to mark the facets of the triangulation that belong to the two dimensional complex, and four markers that are helpers used in some operations to mark for instance the facets that have been visited. This concept also provides storage for the center of a Delaunay surface ball. Given a surface and a 3D Delaunay triangulation, a Delaunay surface ball is a ball circumscribed to a facet of the triangulation and centered on the surface and empty of triangulation vertices. Such a ball does exist when the facet is part of the restriction to the surface of a three dimensional triangulation. In the following we call \ccc{surface center} of a facet, the center of its biggest Delaunay surface ball. \ccTypes \ccNestedType{Point}{The point type, required to match the point type of the three dimensional triangulation in which the surface mesh is embedded.} \ccCreation \ccCreationVariable{cell} %% choose variable name \ccOperations \ccMethod {bool is_facet_on_surface(int i);} {returns \ccc{true}, if \ccc{facet(i)} is in the 2D complex. } \ccGlue \ccMethod {void set_facet_on_surface(int i, bool b );} {Sets \ccc{facet(i)} as part of the 2D complex, if \ccc{b} is \ccc{true}, and \ccc{NOT_IN_COMPLEX}, otherwise.} \ccMethod {bool is_facet_visited (int i);} {Returns \ccc{true}, if \ccc{facet(i)} has been visited, \ccc{false} otherwise.} \ccGlue \ccMethod {void set_facet_visited (int i, bool b);} {Marks \ccc{facet(i)} as visited, if \ccc{b} is \ccc{true}, and non visited otherwise.} \ccMethod {const Point& get_facet_surface_center(int i);} {Returns a const reference to the surface center of \ccc{facet(i)}.} \ccGlue \ccMethod {void set_facet_surface_center (int i, Point p);} {Sets point \ccc{p} as the surface center of \ccc{facet(i)}.} \ccHasModels \ccc{Surface_mesh_cell_base_3} \ccSeeAlso \ccc{SurfaceMeshTriangulation_3} \\ \ccc{SurfaceMeshComplex_2InTriangulation_3} \\ \ccc{Surface_mesh_complex_2_in_triangulation_3}\\ \ccc{make_surface_mesh} %\ccExample %A short example program. %Instead of a short program fragment, a full running program can be %included using the %\verb|\ccIncludeExampleCode{Package/SurfaceMeshCellBase_3.C}| %macro. The program example would be part of the source code distribution and %also part of the automatic test suite. %\begin{ccExampleCode} %void your_example_code() { %} %\end{ccExampleCode} %% \ccIncludeExampleCode{Package/SurfaceMeshCellBase_3.C} \end{ccRefConcept} % +------------------------------------------------------------------------+ %%RefPage: end of main body, begin of footer % EOF % +------------------------------------------------------------------------+