# Chapter 28
3D Polyhedral Surfaces

Lutz Kettner

## Summary

Polyhedral surfaces in three dimensions are composed of vertices, edges, facets and an incidence relationship on them. The organization beneath is a halfedge data structure, which restricts the class of representable surfaces to orientable 2-manifolds - with and without boundary. If the surface is closed we call it a polyhedron.

The polyhedral surface is realized as a container class managing vertices, halfedges, facets with their incidences, and maintaining the combinatorial integrity of them. Its local types for the vertices, halfedges and facets are documented separately. A default traits class, a default items class and an incremental builder conclude the references. The polyhedral surface is based on the highly flexible design of the halfedge data structure, see the reference for HalfedgeDS in Chapter or [Ket99], but the default instantiation of the polyhedral surface can be used without knowing the halfedge data structure.

### Concepts

PolyhedronTraits_3
PolyhedronItems_3

### Classes

CGAL::Polyhedron_3<Traits>
CGAL::Polyhedron_3<Traits>::Vertex
CGAL::Polyhedron_3<Traits>::Halfedge
CGAL::Polyhedron_3<Traits>::Facet
CGAL::Polyhedron_traits_3<Kernel>
CGAL::Polyhedron_traits_with_normals_3<Kernel>
CGAL::Polyhedron_items_3
CGAL::Polyhedron_min_items_3
CGAL::Polyhedron_incremental_builder_3<HDS>

### Functions

template <class Traits>
ostream& | ostream& out << CGAL::Polyhedron_3<Traits> P
|  | (go there)
template <class Traits>
istream& | istream& in >> CGAL::Polyhedron_3<Traits>& P
|  | (go there)

### Links to the Reference Sections

- Polyhedron_3<Traits>

- Polyhedron_3<Traits>::Facet

- Polyhedron_3<Traits>::Halfedge

- Polyhedron_3<Traits>::Vertex

- Polyhedron_incremental_builder_3<HDS>

- PolyhedronItems_3

- Polyhedron_items_3

- Polyhedron_min_items_3

- PolyhedronTraits_3

- Polyhedron_traits_3<Kernel>

- Polyhedron_traits_with_normals_3<Kernel>

- operator<<

- operator>>