\( \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.11 - 3D Polyhedral Surface
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
PolyhedronItems_3 Concept Reference

Definition

The PolyhedronItems_3 concept refines the HalfedgeDSItems concept. In addition to the requirements stated there, a model for this concept must fulfill the following requirements for the local PolyhedronItems_3::Vertex_wrapper<Refs,Traits>::Vertex type and PolyhedronItems_3::Face_wrapper<Refs,Traits>::Face type in order to support the point for vertices and the optional plane equation for facets. Note that the items class uses face instead of facet. Only the polyhedral surface renames faces to facets.

Refines:
HalfedgeDSItems
Has Models:

CGAL::Polyhedron_items_3

CGAL::Polyhedron_min_items_3

See Also
CGAL::Polyhedron_3<Traits>
HalfedgeDSItems
CGAL::HalfedgeDS_items_2
CGAL::HalfedgeDS_vertex_base<Refs>
CGAL::HalfedgeDS_halfedge_base<Refs>
CGAL::HalfedgeDS_face_base<Refs>

Example

We define our own items class based on the available CGAL::HalfedgeDS_face_base base class for faces. We derive the the Halfedge_wrapper without further modifications from the CGAL::HalfedgeDS_items_2, replace the Face_wrapper definition with our new definition, and also replace the Vertex_wrapper with a definition that uses Point_3 instead of Point_2 as point type. The result is a model for the PolyhedronItems_3 concept similar to the available CGAL::Polyhedron_items_3 class. See also there for another illustrative example.

#include <CGAL/HalfedgeDS_bases.h>
struct My_items : public CGAL::HalfedgeDS_items_2 {
template < class Refs, class Traits>
struct Vertex_wrapper {
typedef typename Traits::Point_3 Point;
};
template < class Refs, class Traits>
struct Face_wrapper {
typedef typename Traits::Plane_3 Plane;
};
};

Concepts

conceptFace
 The PolyhedronItems_3::Face concept refines the HalfedgeDSItems::Face concept. This concept adds the requirement for the support of the geometry. More...
 
conceptVertex
 The PolyhedronItems_3::Vertex concept refines the HalfedgeDSItems::Vertex concept. This concept adds the requirement for the support of the geometry. More...