% +------------------------------------------------------------------------+ % | Reference manual page: Facet.tex % +------------------------------------------------------------------------+ % | 17.03.1999 Lutz Kettner % | Package: Polyhedron % | \RCSdef{\RCSFacetRev}{$Id$} \RCSdefDate{\RCSFacetDate}{$Date$} % +------------------------------------------------------------------------+ \ccRefPageBegin %%RefPage: end of header, begin of main body % +------------------------------------------------------------------------+ \begin{ccRefClass}[Polyhedron_3::]{Facet} \ccDefinition A facet optionally stores a plane equation, and a reference to an incident halfedge that points to the facet. Type tags indicate whether these member functions are supported. Figure~\ccTexHtml{\ref{figurePolyOptionalMethods} on page \pageref{figurePolyOptionalMethods}}{}\begin{ccHtmlOnly} reference arrow \end{ccHtmlOnly} depicts the relationship between a halfedge and its incident halfedges, vertices, and facets. The circulator is assignable to the \ccc{Halfedge_handle}. The circulator is bidirectional if the halfedge provided to the polyhedron with the \ccc{Items} template argument provides a member function \ccc{prev()}, otherwise it is of the forward category. \ccInclude{CGAL/Polyhedron_3.h} \ccTypes \ccThree{Halfedge_const_handle}{h.halfedge() const;;}{} \ccThreeToTwo \ccNestedType{Vertex}{type of incident vertices.} \ccGlue \ccNestedType{Halfedge}{type of incident halfedges.} \ccGlue \ccNestedType{Plane_3}{plane equation type stored in facets.} %\ccGlue %\ccNestedType{Normal}{normal vector type stored in facets.} \ccNestedType{Vertex_handle}{handle to vertex.} \ccGlue \ccNestedType{Halfedge_handle}{handle to halfedge.} \ccGlue \ccNestedType{Facet_handle}{handle to facet.} \ccGlue \ccNestedType{Halfedge_around_facet_circulator}{circulator of halfedges around a facet.} \ccNestedType{Vertex_const_handle}{} \ccGlue \ccNestedType{Halfedge_const_handle}{} \ccGlue \ccNestedType{Facet_const_handle}{} \ccGlue \ccNestedType{Halfedge_around_facet_const_circulator}{} \ccNestedType{Supports_facet_halfedge}{$\equiv$ \ccc{CGAL::Tag_true} or \ccc{CGAL::Tag_false}.} \ccGlue \ccNestedType{Supports_facet_plane}{$\equiv$ \ccc{CGAL::Tag_true} or \ccc{CGAL::Tag_false}.} %\ccGlue %\ccNestedType{Supports_facet_normal}{\~{}} \ccCreation \ccCreationVariable{f} \ccConstructor{Facet();}{default constructor.} \ccTagFullDeclarations \ccHeading{Operations available if \ccc{Supports_facet_plane} $\equiv$ \ccc{CGAL::Tag_true}} %Note, this implies \ccc{Supports_facet_normal} $\equiv$ %\ccc{CGAL::Tag_true}, but the return type of the \ccc{normal()} member %function will not be by reference. \ccMethod{Plane_3& plane();}{} \ccGlue \ccMethod{const Plane_3& plane() const;}{plane equation.} %\ccGlue %\ccMethod{Normal normal() const;}{normal vector.} %\ccHeading{Operations available if \ccc{Supports_facet_normal} $\equiv$ % \ccc{CGAL::Tag_true}} % %\ccMethod{Normal& normal();}{} %\ccGlue %\ccMethod{const Normal& normal() const;}{normal vector.} \ccHeading{Operations available if \ccc{Supports_facet_halfedge} $\equiv$ \ccc{CGAL::Tag_true}} \ccMethod{Halfedge_handle halfedge();}{} \ccGlue \ccMethod{Halfedge_const_handle halfedge() const;}{ an incident halfedge that points to \ccVar.} %%\ccThree{Halfedge_const_handleh.halfedge() const;}{;}{} \ccMethod{Halfedge_around_facet_circulator facet_begin();}{} \ccMethod{Halfedge_around_facet_const_circulator facet_begin() const;} {circulator of halfedges around the facet (counterclockwise).} \ccMethod{void set_halfedge( Halfedge_handle h);} {sets incident halfedge to \ccc{h}. \ccPrecond \ccc{h} is incident, i.e., \ccc{h->facet() ==} \ccVar.} \ccMethod{std::size_t facet_degree() const;}{the degree of the facet, i.e., number of edges on the boundary of this facet.} \ccMethod{bool is_triangle() const;}{returns \ccc{true} if the facet is a triangle.} \ccMethod{bool is_quad() const;}{returns \ccc{true} if the facet is a quadrilateral.} \ccSeeAlso \ccRefIdfierPage{CGAL::Polyhedron_3::Vertex}\\ \ccRefIdfierPage{CGAL::Polyhedron_3::Halfedge}\\ \ccRefIdfierPage{CGAL::Polyhedron_3} \ccTagDefaults \end{ccRefClass} % +------------------------------------------------------------------------+ %%RefPage: end of main body, begin of footer \ccRefPageEnd % EOF % +------------------------------------------------------------------------+