mirror of https://github.com/CGAL/cgal
91 lines
3.8 KiB
Plaintext
91 lines
3.8 KiB
Plaintext
/// \defgroup PkgHalfedgeDSRef Reference Manual
|
|
/// \defgroup PkgHalfedgeDSConcepts Concepts
|
|
/// \ingroup PkgHalfedgeDSRef
|
|
|
|
/// \defgroup PkgHalfedgeDS_HDS Halfedge Data Structures
|
|
/// \ingroup PkgHalfedgeDSRef
|
|
|
|
/// \defgroup PkgHalfedgeDS_Items Item Classes
|
|
/// \ingroup PkgHalfedgeDSRef
|
|
|
|
/// \defgroup PkgHalfedgeDS_VHF Vertices, Halfedges, Faces
|
|
/// \ingroup PkgHalfedgeDSRef
|
|
|
|
/// \defgroup PkgHalfedgeDS_Decorators Decorators
|
|
/// \ingroup PkgHalfedgeDSRef
|
|
/// Classes that provide additional functions
|
|
/// to examine and to modify a halfedge data structure.
|
|
|
|
|
|
/*!
|
|
\addtogroup PkgHalfedgeDSRef
|
|
\cgalPkgDescriptionBegin{Halfedge Data Structures,PkgHalfedgeDS}
|
|
\cgalPkgPicture{HalfedgeDS/fig/HalfedgeDS-teaser-small.png}
|
|
\cgalPkgSummaryBegin
|
|
\cgalPkgAuthor{Lutz Kettner}
|
|
\cgalPkgDesc{A halfedge data structure is an edge-centered data structure capable of maintaining incidence information of vertices, edges and faces, for example for planar maps, polyhedra, or other orientable, two-dimensional surfaces embedded in arbitrary dimension. Each edge is decomposed into two halfedges with opposite orientations. One incident face and one incident vertex are stored in each halfedge. For each face and each vertex, one incident halfedge is stored. Reduced variants of the halfedge data structure can omit some of these information, for example the halfedge pointers in faces or the storage of faces at all.}
|
|
\cgalPkgManuals{Chapter_Halfedge_Data_Structures,PkgHalfedgeDSRef}
|
|
\cgalPkgSummaryEnd
|
|
\cgalPkgShortInfoBegin
|
|
\cgalPkgSince{1.0}
|
|
\cgalPkgBib{cgal:k-hds}
|
|
\cgalPkgLicense{\ref licensesLGPL "LGPL"}
|
|
\cgalPkgShortInfoEnd
|
|
\cgalPkgDescriptionEnd
|
|
|
|
A halfedge data structure (abbreviated as `HalfedgeDS`, or
|
|
`HDS` for template parameters) is an edge-centered data structure
|
|
capable of maintaining incidence information of vertices, edges and
|
|
faces, for example for planar maps or polyhedral surfaces. It is a
|
|
combinatorial data structure, geometric interpretation is added by
|
|
classes built on top of the halfedge data structure.These classes
|
|
might be more convenient to use than the halfedge data structure
|
|
directly, since the halfedge data structure is meant as an
|
|
implementation layer.See for example the `Polyhedron_3`
|
|
class in the package \ref Chapter_3D_Polyhedral_Surfaces "3D Polyhedral Surface".
|
|
|
|
The data structure provided here is known as the
|
|
FE-structure \cgalCite{w-ebdss-85}, as
|
|
halfedges \cgalCite{m-ism-88}, \cgalCite{cgal:bfh-mgedm-95} or as the doubly connected edge
|
|
list (DCEL) \cgalCite{bkos-cgaa-97}, although the original reference for
|
|
the DCEL \cgalCite{mp-fitcp-78} describes a related but different data
|
|
structure. The halfedge data structure can also be seen as one of the
|
|
variants of the quad-edge data structure \cgalCite{gs-pmgsc-85}. In
|
|
general, the quad-edge data can represent non-orientable 2-manifolds,
|
|
but the variant here is restricted to orientable 2-manifolds only. An
|
|
overview and comparison of these different data structures together
|
|
with a thorough description of the design implemented here can be
|
|
found in \cgalCite{k-ugpdd-99}.
|
|
|
|
\cgalClassifedRefPages
|
|
|
|
\cgalCRPSection{Concepts}
|
|
- `HalfedgeDS<Traits,Items,Alloc>`
|
|
- `HalfedgeDSItems`
|
|
- `HalfedgeDSVertex`
|
|
- `HalfedgeDSHalfedge`
|
|
- `HalfedgeDSFace`
|
|
|
|
\cgalCRPSection{Classes}
|
|
- `CGAL::HalfedgeDS_default<Traits,HalfedgeDSItems,Alloc>`
|
|
- `CGAL::HalfedgeDS_list<Traits,HalfedgeDSItems,Alloc>`
|
|
- `CGAL::HalfedgeDS_vector<Traits,HalfedgeDSItems,Alloc>`
|
|
|
|
- `CGAL::HalfedgeDS_min_items`
|
|
- `CGAL::HalfedgeDS_items_2`
|
|
|
|
- `CGAL::HalfedgeDS_vertex_base<Refs>`
|
|
- `CGAL::HalfedgeDS_halfedge_base<Refs>`
|
|
- `CGAL::HalfedgeDS_face_base<Refs>`
|
|
|
|
- `CGAL::HalfedgeDS_vertex_min_base<Refs>`
|
|
- `CGAL::HalfedgeDS_halfedge_min_base<Refs>`
|
|
- `CGAL::HalfedgeDS_face_min_base<Refs>`
|
|
|
|
- `CGAL::HalfedgeDS_items_decorator<HDS>`
|
|
- `CGAL::HalfedgeDS_decorator<HDS>`
|
|
- `CGAL::HalfedgeDS_const_decorator<HDS>`
|
|
|
|
*/
|
|
|