\( \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.8 - 3D Polyhedral Surface

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Polyhedron_3< Traits >::Facet Class Reference
3D Polyhedral Surface Reference

`#include <CGAL/Polyhedron_3.h>`

## Definition

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
  `CGAL::Polyhedron_3::Vertex`
  `CGAL::Polyhedron_3::Halfedge`
  `CGAL::Polyhedron_3<Traits>`

## Types
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`.

## Creation
| Facet ()
| default constructor.

## Operations available if Supports_facet_plane is CGAL::Tag_true
Plane_3 & | plane ()
const Plane_3 & | plane () 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

template<typename Traits >

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

sets incident halfedge to `h`.

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