CGAL 5.1 - 3D Polyhedral Surface
CGAL::Polyhedron_3< Traits >::Facet Class Reference

#include <CGAL/Polyhedron_3.h>

Definition

template<typename Traits>
class CGAL::Polyhedron_3< Traits >::Facet

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. More...
 
typedef unspecified_type Halfedge
 type of incident halfedges. More...
 
typedef unspecified_type Plane_3
 plane equation type stored in facets. More...
 
typedef unspecified_type Vertex_handle
 handle to vertex. More...
 
typedef unspecified_type Halfedge_handle
 handle to halfedge. More...
 
typedef unspecified_type Facet_handle
 handle to facet. More...
 
typedef unspecified_type Halfedge_around_facet_circulator
 circulator of halfedges around a facet. More...
 
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. More...
 
typedef unspecified_type Supports_facet_plane
 \( \equiv\) CGAL::Tag_true or CGAL::Tag_false. More...
 

Creation

 Facet ()
 default constructor. More...
 

Operations available if Supports_facet_plane is CGAL::Tag_true

Plane_3plane ()
 
const Plane_3plane () const
 plane equation. More...
 

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. More...
 
Halfedge_around_facet_circulator facet_begin ()
 
Halfedge_around_facet_const_circulator facet_begin () const
 circulator of halfedges around the facet (counterclockwise). More...
 
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. More...
 
bool is_triangle () const
 returns true if the facet is a triangle. More...
 
bool is_quad () const
 returns true if the facet is a quadrilateral. More...
 

Member Typedef Documentation

◆ Facet_const_handle

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Facet_const_handle

◆ Facet_handle

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Facet_handle

handle to facet.

◆ Halfedge

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Halfedge

type of incident halfedges.

◆ Halfedge_around_facet_circulator

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Halfedge_around_facet_circulator

circulator of halfedges around a facet.

◆ Halfedge_around_facet_const_circulator

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Halfedge_around_facet_const_circulator

◆ Halfedge_const_handle

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Halfedge_const_handle

◆ Halfedge_handle

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Halfedge_handle

handle to halfedge.

◆ Plane_3

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Plane_3

plane equation type stored in facets.

◆ Supports_facet_halfedge

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Supports_facet_halfedge

◆ Supports_facet_plane

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Supports_facet_plane

◆ Vertex

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Vertex

type of incident vertices.

◆ Vertex_const_handle

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Vertex_const_handle

◆ Vertex_handle

template<typename Traits >
typedef unspecified_type CGAL::Polyhedron_3< Traits >::Facet::Vertex_handle

handle to vertex.

Constructor & Destructor Documentation

◆ Facet()

template<typename Traits >
CGAL::Polyhedron_3< Traits >::Facet::Facet ( )

default constructor.

Member Function Documentation

◆ facet_begin() [1/2]

template<typename Traits >
Halfedge_around_facet_circulator CGAL::Polyhedron_3< Traits >::Facet::facet_begin ( )

◆ facet_begin() [2/2]

template<typename Traits >
Halfedge_around_facet_const_circulator CGAL::Polyhedron_3< Traits >::Facet::facet_begin ( ) const

circulator of halfedges around the facet (counterclockwise).

◆ facet_degree()

template<typename Traits >
std::size_t CGAL::Polyhedron_3< Traits >::Facet::facet_degree ( ) const

the degree of the facet, i.e., number of edges on the boundary of this facet.

◆ halfedge() [1/2]

template<typename Traits >
Halfedge_handle CGAL::Polyhedron_3< Traits >::Facet::halfedge ( )

◆ halfedge() [2/2]

template<typename Traits >
Halfedge_const_handle CGAL::Polyhedron_3< Traits >::Facet::halfedge ( ) const

an incident halfedge that points to the facet.

◆ is_quad()

template<typename Traits >
bool CGAL::Polyhedron_3< Traits >::Facet::is_quad ( ) const

returns true if the facet is a quadrilateral.

◆ is_triangle()

template<typename Traits >
bool CGAL::Polyhedron_3< Traits >::Facet::is_triangle ( ) const

returns true if the facet is a triangle.

◆ plane() [1/2]

template<typename Traits >
Plane_3& CGAL::Polyhedron_3< Traits >::Facet::plane ( )

◆ plane() [2/2]

template<typename Traits >
const Plane_3& CGAL::Polyhedron_3< Traits >::Facet::plane ( ) const

plane equation.

◆ set_halfedge()

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.