\( \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.14 - 3D Boolean Operations on Nef Polyhedra
CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Volume Class Reference

#include <CGAL/Nef_polyhedron_3.h>


template<class Nef_polyhedronTraits_3, class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
class CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Volume

A volume is a full-dimensional connected point set in \( \mathbb{R}^3\).

It is bounded by several shells, i.e. a connected part of the boundary incident to a single volume. An entry element to each shell is provided by the iterator range (shells_begin()/shells_end()). A Shell_entry_iterator is assignable to SFace_handle.


There is no need for a user to create a Volume explicitly. The class Nef_polyhedron_3<Traits> manages the needed volumes internally.

See also


The following types are the same as in Nef_polyhedron_3<Traits>.

typedef unspecified_type Mark
 type of mark.
typedef unspecified_type Object_list
 list of Object handles.
typedef unspecified_type Volume_const_handle
 const handle to Volume.
typedef unspecified_type Shell_entry_const_iterator
 const iterator over the entries to all shells adjacent to a volume.


const Markmark () const
 the mark of c .
Shell_entry_const_iterator shells_begin () const
 const iterator over the entries to all shells adjacent to c .
Shell_entry_const_iterator shells_end () const
 past-the-end iterator.