MEPP2 Project
|
Diagram reference: CGAL and BGL concepts diagram
CellIncidenceGraph Halfedge Adaptor
The purpose of the Halfedge Adaptor of a CellIncidenceGraph is for a CellIncidenceGraph to provide, through an adaptor, a partial implementation of CGAL's halfedge concept. Although the halfedge is well suited to manifold surfaces, and not general enough to handle non-manifold cases (refer to CellIncidenceGraphConceptPage), this adaptor still enables simple walks on the non-manifold which in turn permit to abstract the vizualization code.
Notations
G
A type that is a model of HalfedgeGraphAdapter.g
An object of type G
.h
A halfedge descriptor.Expression | Reference | Returns | Description |
---|---|---|---|
HalfedgeGraph | |||
next(h, g) | HalfedgeGraph (CGAL) | halfedge_descriptor | The next halfedge around its face. |
prev(h, g) | HalfedgeGraph (CGAL) | halfedge_descriptor | The previous halfedge around its face. |
faces(h,g) | Generalization of FaceGraph's face(h, g,) | std::pair<face_iterator, face_iterator> | Returns an iterator-range providing access to the incident faces edge e in graph g . Note: when the ordering of faces is a partial order then the ordering criteria is unspecified and can change arbitrarily. |
To be discussed | |||
boost::graph_traits<G>::null_halfedge() | HalfedgeGraph (CGAL) | halfedge_descriptor | Returns a special halfedge that is not equal to any other halfedge. |
FIXME:
Design notes:
h
of a HalfedgeGraphAdapter can be implemented as a triplet of referencesv
of the wrapped CellIncidenceGraphe
of the wrapped CellIncidenceGraphf
of the wrapped CellIncidenceGraph where f
is incident to e
and e
is incident to v
.