A halfedge must store a pointer to the next halfedge and a pointer to its opposite halfedge. It optionally stores pointers to its incident vertex and incident facet. Type tags indicate whether these member functions are supported. Figure depicts the relationship between a halfedge and its incident halfedges, vertices, and facets. The is_border() predicate is mandatory, but may return always false. A halfedge is an oriented edge between two vertices. It is always paired with its counterpart that has the opposite direction. They are mutually linked with the opposite() member function.
| |
corresponding vertex type.
| |
| |
self.
| |
| |
corresponding facet type.
|
|
| the opposite halfedge. |
|
|
|
|
| the next halfedge around the facet. |
|
|
|
|
| the previous halfedge around the facet. |
|
|
|
|
| the incident vertex. |
|
|
|
|
| the incident facet. If h is a border halfedge the result might be NULL or a unique facet representing this open region or a unique facet representing all open regions at once. |
|
|
|
|
| is true if h is a border halfedge. |
|
| |
|
| |
|
| |
|
| |
if NULL h becomes a border edge. |
The nested types below are either equal to Tag_true or Tag_false, depending on whether the named member function is supported or not.
| |
prev().
| |
| |
vertex().
| |
| |
facet().
|