## CGAL::Polyhedron_3<Traits>::Facet

### 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. Figure 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 prev(), otherwise it is of the forward category.

#include <CGAL/Polyhedron_3.h>

### Types

Polyhedron_3<Traits>::Facet::Vertex
| type of incident vertices.
Polyhedron_3<Traits>::Facet::Halfedge
| type of incident halfedges.
Polyhedron_3<Traits>::Facet::Plane_3
| plane equation type stored in facets.
Polyhedron_3<Traits>::Facet::Vertex_handle
| handle to vertex.
Polyhedron_3<Traits>::Facet::Halfedge_handle
| handle to halfedge.
Polyhedron_3<Traits>::Facet::Facet_handle
| handle to facet.
Polyhedron_3<Traits>::Facet::Halfedge_around_facet_circulator
| circulator of halfedges around a facet.
Polyhedron_3<Traits>::Facet::Vertex_const_handle

Polyhedron_3<Traits>::Facet::Halfedge_const_handle

Polyhedron_3<Traits>::Facet::Facet_const_handle

Polyhedron_3<Traits>::Facet::Halfedge_around_facet_const_circulator

Polyhedron_3<Traits>::Facet::Supports_facet_halfedge
| CGAL::Tag_true or CGAL::Tag_false.
Polyhedron_3<Traits>::Facet::Supports_facet_plane
| CGAL::Tag_true or CGAL::Tag_false.

### Creation

Polyhedron_3<Traits>::Facet f;
| default constructor.

### Operations available if Supports_facet_plane CGAL::Tag_true

Plane_3& | f.plane ()
const Plane_3& | f.plane () const | plane equation.

### Operations available if Supports_facet_halfedge CGAL::Tag_true

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

### See Also

CGAL::Polyhedron_3<Traits>::Vertex
CGAL::Polyhedron_3<Traits>::Halfedge
CGAL::Polyhedron_3<Traits>