Navigation: Up, Table of Contents, Bibliography, Index, Title Page

3D Polyhedral Surfaces

Release Note

Beginning with CGAL R2.3, this package has a new design. The old design is still available for backwards compatibility and to support older compiler, such as MSVC++6.0. However its use is deprecated and the manual pages are not converted into this new manual format. Instead, see its old documentation in the manual of deprecated packages.

For the polyhedral surface, old and new design cannot be used simultaneously (they have identical include file names and class names). The include files select automatically the old design for MSVC++6.0 and the new design otherwise. This automatism can be overwritten by defining appropriate macros before the include files. The old design is selected with the CGAL_USE_POLYHEDRON_DESIGN_ONE macro. The new design is selected with the CGAL_USE_POLYHEDRON_DESIGN_TWO macro.

The new design differs from the old design in the following ways: The Polyhedron_3 has a different number of template parameters that require different concepts, such as the new HalfedgeDS concept, the new PolyhedronItems_3 concept, and the new PolyhedronTraits_3 concept. The Polyhedron_3 interface is backwards compatible with the old design except that the normal() member function in the facet and related types disappear. Please use the plane equation instead, see also Polyhedron_traits_with_normals_3.

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 reference 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_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


Navigation: Up, Table of Contents, Bibliography, Index, Title Page
www.cgal.org. Aug 13, 2001.