\( \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.12 - 3D Polyhedral Surface
CGAL::Polyhedron_items_3 Class Reference

#include <CGAL/Polyhedron_items_3.h>

Definition

The class Polyhedron_items_3 is a model of the PolyhedronItems_3 concept.

It provides definitions for vertices with points, halfedges, and faces with plane equations. The polyhedron traits class must provide the respective types for the point and the plane equation. Vertices and facets both contain a halfedge handle to an incident halfedge.

Is Model Of:
PolyhedronItems_3
See also
CGAL::Polyhedron_3<Traits>
CGAL::Polyhedron_min_items_3
CGAL::HalfedgeDS_min_items
CGAL::HalfedgeDS_items_2

Example

The following example program defines a new face class based on the CGAL::HalfedgeDS_face_base and adds a new color member variable. The new face class is used to replace the face definition in the CGAL::Polyhedron_items_3 class. The main function illustrates the access to the new member variable. See also the PolyhedronItems_3 concept for another illustrative example.


File Polyhedron/polyhedron_prog_color.cpp

#include <CGAL/Simple_cartesian.h>
#include <CGAL/IO/Color.h>
#include <CGAL/Polyhedron_3.h>
// A face type with a color member variable.
template <class Refs>
struct My_face : public CGAL::HalfedgeDS_face_base<Refs> {
CGAL::Color color;
};
// An items type using my face.
struct My_items : public CGAL::Polyhedron_items_3 {
template <class Refs, class Traits>
struct Face_wrapper {
typedef My_face<Refs> Face;
};
};
typedef Polyhedron::Halfedge_handle Halfedge_handle;
int main() {
Polyhedron P;
Halfedge_handle h = P.make_tetrahedron();
h->facet()->color = CGAL::RED;
return 0;
}
Examples:
Polyhedron/polyhedron_prog_color.cpp, and Polyhedron/polyhedron_prog_vector.cpp.

Types in Polyhedron_items_3::Face_wrapper<Refs,Traits>::Vertex

Polyhedron_items_3::Vertex_wrapper< Refs, Traits >::Vertex typedef Traits::Point_3 Point
 
Polyhedron_items_3::Vertex_wrapper< Refs, Traits >::Vertex typedef CGAL::Tag_true Supports_vertex_point
 

Types in Polyhedron_items_3::Face_wrapper<Refs,Traits>::Face

typedef Traits::Plane_3 Plane
 
typedef CGAL::Tag_true Supports_face_plane
 

Creation

 Polyhedron_items_3 ()
 default constructor.