BWAPI
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
Arr_dcel_base< V, H, F, Allocator > Class Template Reference

#include <Arr_dcel_base.h>

Collaboration diagram for Arr_dcel_base< V, H, F, Allocator >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef Arr_dcel_base< V, H, F > Self
typedef Arr_vertex< V, H, F > Vertex
typedef Arr_halfedge< V, H, F > Halfedge
typedef Arr_face< V, H, F > Face
typedef Arr_outer_ccb< V, H, F > Outer_ccb
typedef Arr_inner_ccb< V, H, F > Inner_ccb
typedef Arr_isolated_vertex< V,
H, F > 
Isolated_vertex
typedef Halfedge_list::size_type Size
typedef Halfedge_list::size_type size_type
typedef
Halfedge_list::difference_type 
difference_type
typedef
Halfedge_list::difference_type 
Difference
typedef
std::bidirectional_iterator_tag 
iterator_category
typedef Vertex_list::iterator Vertex_iterator
typedef Halfedge_list::iterator Halfedge_iterator
typedef Face_list::iterator Face_iterator
typedef
CGAL::N_step_adaptor_derived
< Halfedge_iterator, 2 > 
Edge_iterator
typedef Vertex_list::const_iterator Vertex_const_iterator
typedef
Halfedge_list::const_iterator 
Halfedge_const_iterator
typedef Face_list::const_iterator Face_const_iterator
typedef
CGAL::N_step_adaptor_derived
< Halfedge_const_iterator, 2 > 
Edge_const_iterator

Public Member Functions

void assign (const Self &dcel)
Construction and destruction.
 Arr_dcel_base ()
 ~Arr_dcel_base ()
The DCEL size.
Size size_of_vertices () const
Size size_of_halfedges () const
Size size_of_faces () const
Size size_of_outer_ccbs () const
Size size_of_inner_ccbs () const
Size size_of_isolated_vertices () const
Obtaining iterators.
Vertex_iterator vertices_begin ()
Vertex_iterator vertices_end ()
Halfedge_iterator halfedges_begin ()
Halfedge_iterator halfedges_end ()
Face_iterator faces_begin ()
Face_iterator faces_end ()
Edge_iterator edges_begin ()
Edge_iterator edges_end ()
Obtaining constant iterators.
Vertex_const_iterator vertices_begin () const
Vertex_const_iterator vertices_end () const
Halfedge_const_iterator halfedges_begin () const
Halfedge_const_iterator halfedges_end () const
Face_const_iterator faces_begin () const
Face_const_iterator faces_end () const
Edge_const_iterator edges_begin () const
Edge_const_iterator edges_end () const
Vertexnew_vertex ()
Halfedgenew_edge ()
Facenew_face ()
Outer_ccbnew_outer_ccb ()
Inner_ccbnew_inner_ccb ()
Isolated_vertexnew_isolated_vertex ()
Deletion of DCEL features.
void delete_vertex (Vertex *v)
void delete_edge (Halfedge *h)
void delete_face (Face *f)
void delete_outer_ccb (Outer_ccb *oc)
void delete_inner_ccb (Inner_ccb *ic)
void delete_isolated_vertex (Isolated_vertex *iv)
void delete_all ()

Protected Types

typedef In_place_list< Vertex,
false > 
Vertex_list
typedef In_place_list
< Halfedge, false > 
Halfedge_list
typedef In_place_list< Face,
false > 
Face_list
typedef In_place_list
< Outer_ccb, false > 
Outer_ccb_list
typedef In_place_list
< Inner_ccb, false > 
Inner_ccb_list
typedef In_place_list
< Isolated_vertex, false > 
Iso_vert_list
typedef Allocator::template
rebind< Vertex
Vertex_alloc_rebind
typedef Vertex_alloc_rebind::other Vertex_allocator
typedef Allocator::template
rebind< Halfedge
Halfedge_alloc_rebind
typedef
Halfedge_alloc_rebind::other 
Halfedge_allocator
typedef Allocator::template
rebind< Face
Face_alloc_rebind
typedef Face_alloc_rebind::other Face_allocator
typedef Allocator::template
rebind< Outer_ccb
Out_ccb_alloc_rebind
typedef Out_ccb_alloc_rebind::other Outer_ccb_allocator
typedef Allocator::template
rebind< Inner_ccb
In_ccb_alloc_rebind
typedef In_ccb_alloc_rebind::other Inner_ccb_allocator
typedef Allocator::template
rebind< Isolated_vertex
Iso_vert_alloc_rebind
typedef
Iso_vert_alloc_rebind::other 
Iso_vert_allocator

Protected Member Functions

Halfedge_new_halfedge ()
void _delete_halfedge (Halfedge *h)

Protected Attributes

Vertex_list vertices
Halfedge_list halfedges
Face_list faces
Outer_ccb_list out_ccbs
Inner_ccb_list in_ccbs
Iso_vert_list iso_verts
Vertex_allocator vertex_alloc
Halfedge_allocator halfedge_alloc
Face_allocator face_alloc
Outer_ccb_allocator out_ccb_alloc
Inner_ccb_allocator in_ccb_alloc
Iso_vert_allocator iso_vert_alloc

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
class Arr_dcel_base< V, H, F, Allocator >


Member Typedef Documentation

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Halfedge_list::difference_type Arr_dcel_base< V, H, F, Allocator >::Difference
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Halfedge_list::difference_type Arr_dcel_base< V, H, F, Allocator >::difference_type
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef CGAL::N_step_adaptor_derived<Halfedge_const_iterator, 2> Arr_dcel_base< V, H, F, Allocator >::Edge_const_iterator
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef CGAL::N_step_adaptor_derived<Halfedge_iterator, 2> Arr_dcel_base< V, H, F, Allocator >::Edge_iterator
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Arr_face<V,H,F> Arr_dcel_base< V, H, F, Allocator >::Face
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Allocator::template rebind<Face> Arr_dcel_base< V, H, F, Allocator >::Face_alloc_rebind [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Face_alloc_rebind::other Arr_dcel_base< V, H, F, Allocator >::Face_allocator [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Face_list::const_iterator Arr_dcel_base< V, H, F, Allocator >::Face_const_iterator
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Face_list::iterator Arr_dcel_base< V, H, F, Allocator >::Face_iterator
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef In_place_list<Face, false> Arr_dcel_base< V, H, F, Allocator >::Face_list [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Arr_halfedge<V,H,F> Arr_dcel_base< V, H, F, Allocator >::Halfedge
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Allocator::template rebind<Halfedge> Arr_dcel_base< V, H, F, Allocator >::Halfedge_alloc_rebind [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Halfedge_alloc_rebind::other Arr_dcel_base< V, H, F, Allocator >::Halfedge_allocator [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Halfedge_list::const_iterator Arr_dcel_base< V, H, F, Allocator >::Halfedge_const_iterator
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Halfedge_list::iterator Arr_dcel_base< V, H, F, Allocator >::Halfedge_iterator
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef In_place_list<Halfedge, false> Arr_dcel_base< V, H, F, Allocator >::Halfedge_list [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Allocator::template rebind<Inner_ccb> Arr_dcel_base< V, H, F, Allocator >::In_ccb_alloc_rebind [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Arr_inner_ccb<V,H,F> Arr_dcel_base< V, H, F, Allocator >::Inner_ccb
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef In_ccb_alloc_rebind::other Arr_dcel_base< V, H, F, Allocator >::Inner_ccb_allocator [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef In_place_list<Inner_ccb, false> Arr_dcel_base< V, H, F, Allocator >::Inner_ccb_list [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Allocator::template rebind<Isolated_vertex> Arr_dcel_base< V, H, F, Allocator >::Iso_vert_alloc_rebind [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Iso_vert_alloc_rebind::other Arr_dcel_base< V, H, F, Allocator >::Iso_vert_allocator [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef In_place_list<Isolated_vertex, false> Arr_dcel_base< V, H, F, Allocator >::Iso_vert_list [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Arr_isolated_vertex<V,H,F> Arr_dcel_base< V, H, F, Allocator >::Isolated_vertex
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef std::bidirectional_iterator_tag Arr_dcel_base< V, H, F, Allocator >::iterator_category
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Allocator::template rebind<Outer_ccb> Arr_dcel_base< V, H, F, Allocator >::Out_ccb_alloc_rebind [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Arr_outer_ccb<V,H,F> Arr_dcel_base< V, H, F, Allocator >::Outer_ccb
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Out_ccb_alloc_rebind::other Arr_dcel_base< V, H, F, Allocator >::Outer_ccb_allocator [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef In_place_list<Outer_ccb, false> Arr_dcel_base< V, H, F, Allocator >::Outer_ccb_list [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Arr_dcel_base<V,H,F> Arr_dcel_base< V, H, F, Allocator >::Self
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Halfedge_list::size_type Arr_dcel_base< V, H, F, Allocator >::Size
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Halfedge_list::size_type Arr_dcel_base< V, H, F, Allocator >::size_type
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Arr_vertex<V,H,F> Arr_dcel_base< V, H, F, Allocator >::Vertex
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Allocator::template rebind<Vertex> Arr_dcel_base< V, H, F, Allocator >::Vertex_alloc_rebind [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Vertex_alloc_rebind::other Arr_dcel_base< V, H, F, Allocator >::Vertex_allocator [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Vertex_list::const_iterator Arr_dcel_base< V, H, F, Allocator >::Vertex_const_iterator
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef Vertex_list::iterator Arr_dcel_base< V, H, F, Allocator >::Vertex_iterator
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
typedef In_place_list<Vertex, false> Arr_dcel_base< V, H, F, Allocator >::Vertex_list [protected]

Constructor & Destructor Documentation

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Arr_dcel_base< V, H, F, Allocator >::Arr_dcel_base ( ) [inline]

Default constructor.

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Arr_dcel_base< V, H, F, Allocator >::~Arr_dcel_base ( ) [inline]

Destructor.


Member Function Documentation

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
void Arr_dcel_base< V, H, F, Allocator >::_delete_halfedge ( Halfedge h) [inline, protected]

Delete an existing halfedge.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Halfedge* Arr_dcel_base< V, H, F, Allocator >::_new_halfedge ( ) [inline, protected]

Create a new halfedge.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
void Arr_dcel_base< V, H, F, Allocator >::assign ( const Self dcel) [inline]

Assign our DCEL the contents of another DCEL.

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
void Arr_dcel_base< V, H, F, Allocator >::delete_all ( ) [inline]

Delete all DCEL features.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
void Arr_dcel_base< V, H, F, Allocator >::delete_edge ( Halfedge h) [inline]

Delete an existing pair of opposite halfedges.

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
void Arr_dcel_base< V, H, F, Allocator >::delete_face ( Face f) [inline]

Delete an existing face.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
void Arr_dcel_base< V, H, F, Allocator >::delete_inner_ccb ( Inner_ccb ic) [inline]

Delete an existing inner CCB.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
void Arr_dcel_base< V, H, F, Allocator >::delete_isolated_vertex ( Isolated_vertex iv) [inline]

Delete an existing isolated vertex.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
void Arr_dcel_base< V, H, F, Allocator >::delete_outer_ccb ( Outer_ccb oc) [inline]

Delete an existing outer CCB.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
void Arr_dcel_base< V, H, F, Allocator >::delete_vertex ( Vertex v) [inline]

Delete an existing vertex.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Edge_iterator Arr_dcel_base< V, H, F, Allocator >::edges_begin ( ) [inline]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Edge_const_iterator Arr_dcel_base< V, H, F, Allocator >::edges_begin ( ) const [inline]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Edge_iterator Arr_dcel_base< V, H, F, Allocator >::edges_end ( ) [inline]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Edge_const_iterator Arr_dcel_base< V, H, F, Allocator >::edges_end ( ) const [inline]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Face_iterator Arr_dcel_base< V, H, F, Allocator >::faces_begin ( ) [inline]

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Face_const_iterator Arr_dcel_base< V, H, F, Allocator >::faces_begin ( ) const [inline]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Face_iterator Arr_dcel_base< V, H, F, Allocator >::faces_end ( ) [inline]

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Face_const_iterator Arr_dcel_base< V, H, F, Allocator >::faces_end ( ) const [inline]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Halfedge_iterator Arr_dcel_base< V, H, F, Allocator >::halfedges_begin ( ) [inline]

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Halfedge_const_iterator Arr_dcel_base< V, H, F, Allocator >::halfedges_begin ( ) const [inline]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Halfedge_iterator Arr_dcel_base< V, H, F, Allocator >::halfedges_end ( ) [inline]

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Halfedge_const_iterator Arr_dcel_base< V, H, F, Allocator >::halfedges_end ( ) const [inline]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Halfedge* Arr_dcel_base< V, H, F, Allocator >::new_edge ( ) [inline]

Create a new pair of opposite halfedges.

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Face* Arr_dcel_base< V, H, F, Allocator >::new_face ( ) [inline]

Create a new face.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Inner_ccb* Arr_dcel_base< V, H, F, Allocator >::new_inner_ccb ( ) [inline]

Create a new inner CCB.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Isolated_vertex* Arr_dcel_base< V, H, F, Allocator >::new_isolated_vertex ( ) [inline]

Create a new isolated vertex.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Outer_ccb* Arr_dcel_base< V, H, F, Allocator >::new_outer_ccb ( ) [inline]

Create a new outer CCB.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Vertex* Arr_dcel_base< V, H, F, Allocator >::new_vertex ( ) [inline]

Create a new vertex.

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Size Arr_dcel_base< V, H, F, Allocator >::size_of_faces ( ) const [inline]

Get the number of DCEL faces.

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Size Arr_dcel_base< V, H, F, Allocator >::size_of_halfedges ( ) const [inline]

Get the number of DCEL halfedges (twice the number of edges).

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Size Arr_dcel_base< V, H, F, Allocator >::size_of_inner_ccbs ( ) const [inline]

Get the number of inner CCBs.

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Size Arr_dcel_base< V, H, F, Allocator >::size_of_isolated_vertices ( ) const [inline]

Get the number of isolated vertices.

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Size Arr_dcel_base< V, H, F, Allocator >::size_of_outer_ccbs ( ) const [inline]

Get the number of outer CCBs.

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Size Arr_dcel_base< V, H, F, Allocator >::size_of_vertices ( ) const [inline]

Get the number of DCEL vertices.

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Vertex_iterator Arr_dcel_base< V, H, F, Allocator >::vertices_begin ( ) [inline]

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Vertex_const_iterator Arr_dcel_base< V, H, F, Allocator >::vertices_begin ( ) const [inline]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Vertex_iterator Arr_dcel_base< V, H, F, Allocator >::vertices_end ( ) [inline]

Here is the caller graph for this function:

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Vertex_const_iterator Arr_dcel_base< V, H, F, Allocator >::vertices_end ( ) const [inline]

Member Data Documentation

template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Face_allocator Arr_dcel_base< V, H, F, Allocator >::face_alloc [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Face_list Arr_dcel_base< V, H, F, Allocator >::faces [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Halfedge_allocator Arr_dcel_base< V, H, F, Allocator >::halfedge_alloc [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Halfedge_list Arr_dcel_base< V, H, F, Allocator >::halfedges [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Inner_ccb_allocator Arr_dcel_base< V, H, F, Allocator >::in_ccb_alloc [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Inner_ccb_list Arr_dcel_base< V, H, F, Allocator >::in_ccbs [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Iso_vert_allocator Arr_dcel_base< V, H, F, Allocator >::iso_vert_alloc [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Iso_vert_list Arr_dcel_base< V, H, F, Allocator >::iso_verts [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Outer_ccb_allocator Arr_dcel_base< V, H, F, Allocator >::out_ccb_alloc [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Outer_ccb_list Arr_dcel_base< V, H, F, Allocator >::out_ccbs [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Vertex_allocator Arr_dcel_base< V, H, F, Allocator >::vertex_alloc [protected]
template<class V, class H, class F, class Allocator = CGAL_ALLOCATOR(int)>
Vertex_list Arr_dcel_base< V, H, F, Allocator >::vertices [protected]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines