HalfedgeDS< Vertex, Halfedge, Face > Class Template Reference

A halfedge data structure. More...

#include <HalfedgeDS.h>

List of all members.

Public Types

typedef Vertex< HDSVertex_type
 A vertex in the HDS.
typedef Halfedge< HDSHalfedge_type
 A halfedge in the HDS.
typedef Face< HDSFace_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.
HalfedgeDSoperator= (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.

Detailed Description

template<template< class > class Vertex, template< class > class Halfedge, template< class > class Face>
class HalfedgeDS< Vertex, Halfedge, Face >

A halfedge data structure.


Constructor & Destructor Documentation

template<template< class > class Vertex, template< class > class Halfedge, template< class > class Face>
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.


Member Function Documentation

template<template< class > class Vertex, template< class > class Halfedge, template< class > class Face>
Halfedge_handle HalfedgeDS< Vertex, Halfedge, Face >::insert_halfedge (  ) 

Add a halfedge and its opposite. Return a handle to the former.

Use the default constructor.

template<template< class > class Vertex, template< class > class Halfedge, template< class > class Face>
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.


The documentation for this class was generated from the following file:
Generated on Thu Jun 30 02:14:51 2016 for Algorithms and Data Structures Package by  doxygen 1.6.3