A halfedge data structure. More...
#include <HalfedgeDS.h>
Public Types | |
| typedef Vertex< HDS > | Vertex_type | 
| A vertex in the HDS.  | |
| typedef Halfedge< HDS > | Halfedge_type | 
| A halfedge in the HDS.  | |
| typedef Face< HDS > | Face_type | 
| A face in the HDS.  | |
| typedef Vertex_container::iterator | Vertex_iterator | 
| Vertex iterator.  | |
| 
typedef  Halfedge_container::iterator  | Halfedge_iterator | 
| Halfedge iterator.  | |
| typedef Face_container::iterator | Face_iterator | 
| Face iterator.  | |
| 
typedef  Vertex_container::const_iterator  | Vertex_const_iterator | 
| Vertex const iterator.  | |
| 
typedef  Halfedge_container::const_iterator  | Halfedge_const_iterator | 
| Halfedge const iterator.  | |
| 
typedef  Face_container::const_iterator  | Face_const_iterator | 
| Face const iterator.  | |
| typedef Vertex_container::iterator | Vertex_handle | 
| Vertex handle.  | |
| 
typedef  Halfedge_container::iterator  | Halfedge_handle | 
| Halfedge handle.  | |
| typedef Face_container::iterator | Face_handle | 
| Face handle.  | |
| 
typedef  Vertex_container::const_iterator  | Vertex_const_handle | 
| const Vertex handle.  | |
| 
typedef  Halfedge_container::const_iterator  | Halfedge_const_handle | 
| const Halfedge handle.  | |
| 
typedef  Face_container::const_iterator  | Face_const_handle | 
| const Face handle.  | |
| typedef Vertex_container::size_type | size_type | 
| The size type.  | |
| 
typedef  Vertex_container::difference_type  | difference_type | 
| The pointer difference type.  | |
| 
typedef Face_Halfedge_circ < Halfedge_handle >  | Face_Halfedge_circulator | 
| Halfedge around Face circulator.  | |
| 
typedef Face_Halfedge_circ < Halfedge_const_handle >  | Face_Halfedge_const_circulator | 
| Halfedge around Face const circulator.  | |
Public Member Functions | |
| HalfedgeDS () | |
| Default constructor. Empty containers.  | |
| HalfedgeDS (size_type v, size_type h, size_type f) | |
| Size constructor.   | |
| HalfedgeDS (const HalfedgeDS &x) | |
| Copy constructor.  | |
| ~HalfedgeDS () | |
| Destructor.  | |
| HalfedgeDS & | operator= (const HalfedgeDS &x) | 
| Assignment operator.  | |
| Vertex_const_iterator | vertices_begin () const | 
| Return a const iterator to the beginning of the vertices.  | |
| Vertex_const_iterator | vertices_end () const | 
| Return a const iterator to the end of the vertices.  | |
| Halfedge_const_iterator | halfedges_begin () const | 
| Return a const iterator to the beginning of the half-edges.  | |
| Halfedge_const_iterator | halfedges_end () const | 
| Return a const iterator to the end of the half-edges.  | |
| Face_const_iterator | faces_begin () const | 
| Return a const iterator to the beginning of the faces.  | |
| Face_const_iterator | faces_end () const | 
| Return a const iterator to the end of the faces.  | |
| size_type | vertices_size () const | 
| Return the number of vertices.  | |
| size_type | halfedges_size () const | 
| Return the number of half-edges.  | |
| size_type | faces_size () const | 
| Return the number of faces.  | |
| Vertex_iterator | vertices_begin () | 
| Return an iterator to the beginning of the vertices.  | |
| Vertex_iterator | vertices_end () | 
| Return an iterator to the end of the vertices.  | |
| Halfedge_iterator | halfedges_begin () | 
| Return an iterator to the beginning of the half-edges.  | |
| Halfedge_iterator | halfedges_end () | 
| Return an iterator to the end of the half-edges.  | |
| Face_iterator | faces_begin () | 
| Return an iterator to the beginning of the faces.  | |
| Face_iterator | faces_end () | 
| Return an iterator to the end of the faces.  | |
| bool | is_valid () const | 
| Return true if the data structure is valid.   | |
| bool | is_valid (Vertex_const_handle h) const | 
| Return true if the vertex handle is null or points to a vertex.  | |
| bool | is_valid (Halfedge_const_handle h) const | 
| Return true if the halfedge handle is null or points to a halfedge.  | |
| bool | is_valid (Face_const_handle h) const | 
| Return true if the face handle is null or points to a face.  | |
| difference_type | index (Vertex_const_handle h) const | 
| Return the index of a vertex specified by its handle.  | |
| difference_type | index (Halfedge_const_handle h) const | 
| Return the index of a half-edge specified by its handle.  | |
| difference_type | index (Face_const_handle h) const | 
| Return the index of a face specified by its handle.  | |
| bool | is_null (Vertex_const_handle h) const | 
| Return true if the Vertex_handle is null.  | |
| bool | is_null (Halfedge_const_handle h) const | 
| Return true if the Halfedge_handle is null.  | |
| bool | is_null (Face_const_handle h) const | 
| Return true if the Face_handle is null.  | |
| void | reserve (size_type v, size_type h, size_type f) | 
Reserve memory for v vertices, h halfedges and f faces.  | |
| void | clear () | 
| Clear the data structure.  | |
| Vertex_handle | insert_vertex () | 
| Add a vertex with a null halfedge and return its handle.  | |
| Vertex_handle | insert_vertex (const Vertex_type &x) | 
Add a copy of x and return its handle.  | |
| Halfedge_handle | insert_halfedge () | 
| Add a halfedge and its opposite. Return a handle to the former.   | |
| Halfedge_handle | insert_halfedge (const Halfedge_type &x) | 
Add a copy of x, (and its opposite), and return its handle.  | |
| Halfedge_handle | insert_halfedge (const Halfedge_type &x, const Halfedge_type &y) | 
Add a copy of x and its opposite y, and return its handle.  | |
| Face_handle | insert_face () | 
| Add a face with a null halfedge and return its handle.  | |
| Face_handle | insert_face (const Face_type &x) | 
Add a copy of x and return its handle.  | |
| void | put (std::ostream &out) const | 
| Write indices for each of the handles.  | |
| void | get (std::istream &in) | 
| Read indices and convert them to handles.  | |
A halfedge data structure.
| HalfedgeDS< Vertex, Halfedge, Face >::HalfedgeDS | ( | size_type | v, | |
| size_type | h, | |||
| size_type | f | |||
| ) |  [inline] | 
        
Size constructor.
Reserve memory for v vertices, h halfedges and f faces. 
| Halfedge_handle HalfedgeDS< Vertex, Halfedge, Face >::insert_halfedge | ( | ) | 
Add a halfedge and its opposite. Return a handle to the former.
Use the default constructor.
| bool HalfedgeDS< Vertex, Halfedge, Face >::is_valid | ( | ) |  const [inline] | 
        
Return true if the data structure is valid.
To be valid, all the handles must be valid or null.
 1.6.3