\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.14 - 3D Polyhedral Surface
CGAL::Polyhedron_3< Traits >::Facet Class Reference

#include <CGAL/Polyhedron_3.h>


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. Note that the plane equation is not automatically computed nor maintained and should handled by the user (see Polyhedron/polyhedron_prog_planes.cpp for an example). Figure figurePolyOptionalMethods depicts the relationship between a halfedge and its incident halfedges, vertices, and facets. The circulator is assignable to the Halfedge_handle. The circulator is bidirectional if the halfedge provided to the polyhedron with the Items template argument provides a member function Halfedge::prev(), otherwise it is of the forward category.

See also


typedef unspecified_type Vertex
 type of incident vertices.
typedef unspecified_type Halfedge
 type of incident halfedges.
typedef unspecified_type Plane_3
 plane equation type stored in facets.
typedef unspecified_type Vertex_handle
 handle to vertex.
typedef unspecified_type Halfedge_handle
 handle to halfedge.
typedef unspecified_type Facet_handle
 handle to facet.
typedef unspecified_type Halfedge_around_facet_circulator
 circulator of halfedges around a facet.
typedef unspecified_type Vertex_const_handle
typedef unspecified_type Halfedge_const_handle
typedef unspecified_type Facet_const_handle
typedef unspecified_type Halfedge_around_facet_const_circulator
typedef unspecified_type Supports_facet_halfedge
 \( \equiv\) CGAL::Tag_true or CGAL::Tag_false.
typedef unspecified_type Supports_facet_plane
 \( \equiv\) CGAL::Tag_true or CGAL::Tag_false.


 Facet ()
 default constructor.

Operations available if Supports_facet_plane is CGAL::Tag_true

Plane_3plane ()
const Plane_3plane () const
 plane equation.

Operations available if Supports_facet_halfedge is CGAL::Tag_true

Halfedge_handle halfedge ()
Halfedge_const_handle halfedge () const
 an incident halfedge that points to the facet.
Halfedge_around_facet_circulator facet_begin ()
Halfedge_around_facet_const_circulator facet_begin () const
 circulator of halfedges around the facet (counterclockwise).
void set_halfedge (Halfedge_handle h)
 sets incident halfedge to h. More...
std::size_t facet_degree () const
 the degree of the facet, i.e., number of edges on the boundary of this facet.
bool is_triangle () const
 returns true if the facet is a triangle.
bool is_quad () const
 returns true if the facet is a quadrilateral.

Member Function Documentation

◆ set_halfedge()

template<typename Traits >
void CGAL::Polyhedron_3< Traits >::Facet::set_halfedge ( Halfedge_handle  h)

sets incident halfedge to h.

h is incident, i.e., h->facet() == *this.