\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 5.0 - 2D Arrangements
CGAL::Arr_face_index_map< Arrangement > Class Template Reference

#include <CGAL/Arr_face_index_map.h>

Inherits from

CGAL::Arr_observer< Arrangement >.

Definition

Arr_face_index_map maintains a mapping of face handles of an attached arrangement object to indices (of type unsigned int).

This class template is a model of the concept ReadablePropertyMap. A mapping between face handles and indices enables convenient usage of property-map classes supplied by boost. For example, the property-map class templates boost::vector_property_map, which is based on std::vector, and boost::iterator_property_map, which can be used to implement a property map based on a native C++ array, require the user to supply a mapping such as Arr_face_index_map.

As new faces might be inserted into the attached arrangement, and existing faces might be removed, the notification mechanism is used to dynamically maintain the mapping of face handles to indices.

Is Model Of:

DefaultConstructible

CopyConstructible

Assignable

ReadablePropertyMap

See also
Arr_observer<Arrangement>
Arr_vertex_index_map<Arrangement>
Examples:
Arrangement_on_surface_2/bgl_dual_adapter.cpp.

Types

typedef Arrangement Arrangement_2
 the type of the attached arrangement.
 
typedef boost::readable_property_map_tag category
 
typedef unsigned int value_type
 
typedef unsigned int reference
 
typedef Face_handle key_type
 
typedef Arrangement_2::Face_handle Face_handle
 The face handle type.
 
typedef Unique_hash_map< Face_handle, value_typeIndex_map
 The type of mapping of faces to indices.
 

Creation

 Arr_face_index_map ()
 constructs a map that is unattached to any arrangement instance.
 
 Arr_face_index_map (Arrangement_2 &arr)
 constructs a map and attaches it to the given arrangement arr.
 

Additional Inherited Members

- Public Types inherited from CGAL::Arr_observer< Arrangement >
typedef unspecified_type Arrangement_2
 the type of the associated arrangement.
 
typedef Arrangement_2::Point_2 Point_2
 the point type.
 
typedef Arrangement_2::X_monotone_curve_2 X_monotone_curve_2
 the \( x\)-monotone curve type.
 
typedef Arrangement_2::Vertex_handle Vertex_handle
 
typedef Arrangement_2::Halfedge_handle Halfedge_handle
 
typedef Arrangement_2::Face_handle Face_handle
 
typedef Arrangement_2::Ccb_halfedge_circulator Ccb_halfedge_circulator
 represents the boundary of a connected component (CCB). More...
 
- Public Member Functions inherited from CGAL::Arr_observer< Arrangement >
 Arr_observer ()
 constructs an observer that is unattached to any arrangement instance.
 
 Arr_observer (Arrangement_2 &arr)
 constructs an observer and attaches it to the given arrangement arr.
 
void attach (Arrangement_2 &arr)
 attaches the observer to the given arrangement arr.
 
void detach ()
 detaches the observer from its arrangement.
 
virtual void before_assign (const Arrangement_2 &arr)
 issued just before the attached arrangement is assigned with the contents of another arrangement arr.
 
virtual void after_assign ()
 issued immediately after the attached arrangement has been assigned with the contents of another arrangement.
 
virtual void before_clear ()
 issued just before the attached arrangement is cleared.
 
virtual void after_clear (Face_handle uf)
 issued immediately after the attached arrangement has been cleared, so it now consists only of a the unbounded face uf.
 
virtual void before_global_change ()
 issued just before a global function starts to modify the attached arrangement. More...
 
virtual void after_global_change ()
 issued immediately after a global function has stopped modifying the attached arrangement.
 
virtual void before_attach (const Arrangement_2 &arr)
 issued just before the observer is attached to the arrangement instance arr.
 
virtual void after_attach ()
 issued immediately after the observer has been attached to an arrangement instance.
 
virtual void before_detach ()
 issued just before the observer is detached from its arrangement instance.
 
virtual void after_detach ()
 issued immediately after the observer has been detached from its arrangement instance.
 
virtual void before_create_vertex (const Point_2 &p)
 issued just before a new vertex that corresponds to the point p is created.
 
virtual void after_create_vertex (Vertex_handle v)
 issued immediately after a new vertex v has been created. More...
 
virtual void before_create_boundary_vertex (const X_monotone_curve_2 &cv, Arr_curve_end ind, Arr_parameter_space ps_x, Arr_parameter_space ps_y)
 issued just before a new vertex at infinity is created, cv is the curve incident to the surface boundary, ind is the relevant curve-end, ps_x is the boundary condition of the vertex in \( x\) and ps_y is the boundary condition of the vertex in \( y\).
 
virtual void after_create_boundary_vertex (Vertex_handle v)
 issued immediately after a new vertex v has been created. More...
 
virtual void before_create_edge (const X_monotone_curve_2 &c, Vertex_handle v1, Vertex_handle v2)
 issued just before a new edge that corresponds to the \( x\)-monotone curve c and connects the vertices v1 and v2 is created.
 
virtual void after_create_edge (Halfedge_handle e)
 issued immediately after a new edge e has been created. More...
 
virtual void before_modify_vertex (Vertex_handle v, const Point_2 &p)
 issued just before a vertex v is modified to be associated with the point p.
 
virtual void after_modify_vertex (Vertex_handle v)
 issued immediately after an existing vertex v has been modified.
 
virtual void before_modify_edge (Halfedge_handle e, const X_monotone_curve_2 &c)
 issued just before an edge e is modified to be associated with the \( x\)-monotone curve c.
 
virtual void after_modify_edge (Halfedge_handle e)
 issued immediately after an existing edge e has been modified.
 
virtual void before_split_edge (Halfedge_handle e, Vertex_handle v, const X_monotone_curve_2 &c1, const X_monotone_curve_2 &c2)
 issued just before an edge e is split into two edges that should be associated with the \( x\)-monotone curves c1 and c2. More...
 
virtual void after_split_edge (Halfedge_handle e1, Halfedge_handle e2)
 issued immediately after an existing edge has been split into the two given edges e1 and e2.
 
virtual void before_split_fictitious_edge (Halfedge_handle e, Vertex_handle v)
 issued just before a fictitious edge e is split into two. More...
 
virtual void after_split_fictitious_edge (Halfedge_handle e1, Halfedge_handle e2)
 issued immediately after an existing fictitious edge has been split into the two given fictitious edges e1 and e2.
 
virtual void before_split_face (Face_handle f, Halfedge_handle e)
 issued just before a face f is split into two, as a result of the insertion of the edge e into the arrangement.
 
virtual void after_split_face (Face_handle f1, Face_handle f2, bool is_hole)
 issued immediately after the existing face f1 has been split, such that a portion of it now forms a new face f2. More...
 
virtual void before_split_outer_ccb (Face_handle f, Ccb_halfedge_circulator h, Halfedge_handle e)
 issued just before outer ccb h inside a face f is split into two, as a result of the removal of the edge e from the arrangement.
 
virtual void after_split_outer_ccb (Face_handle f, Ccb_halfedge_circulator h1, Ccb_halfedge_circulator h2)
 issued immediately after outer ccb the face f has been split, resulting in the two holes h1 and h2.
 
virtual void before_split_inner_ccb (Face_handle f, Ccb_halfedge_circulator h, Halfedge_handle e)
 issued just before inner ccb h inside a face f is split into two, as a result of the removal of the edge e from the arrangement.
 
virtual void after_split_inner_ccb (Face_handle f, Ccb_halfedge_circulator h1, Ccb_halfedge_circulator h2)
 issued immediately after inner ccb the face f has been split, resulting in the two holes h1 and h2.
 
virtual void before_add_outer_ccb (Face_handle f, Halfedge_handle e)
 issued just before the edge e is inserted as a new outer ccb inside the face f.
 
virtual void after_add_outer_ccb (Ccb_halfedge_circulator h)
 issued immediately after a new outer ccb h has been created. More...
 
virtual void before_add_inner_ccb (Face_handle f, Halfedge_handle e)
 issued just before the edge e is inserted as a new inner ccb inside the face f.
 
virtual void after_add_inner_ccb (Ccb_halfedge_circulator h)
 issued immediately after a new inner ccb h has been created. More...
 
virtual void before_add_isolated_vertex (Face_handle f, Vertex_handle v)
 issued just before the vertex v is inserted as an isolated vertex inside the face f.
 
virtual void after_add_isolated_vertex (Vertex_handle v)
 issued immediately after the vertex v has been set as an isolated vertex.
 
virtual void before_merge_edge (Halfedge_handle e1, Halfedge_handle e2, const X_monotone_curve_2 &c)
 issued just before the two edges e1 and e2 are merged to form a single edge that will be associated with the \( x\)-monotone curve c.
 
virtual void after_merge_edge (Halfedge_handle e)
 issued immediately after two edges have been merged to form the edge e.
 
virtual void before_merge_fictitious_edge (Halfedge_handle e1, Halfedge_handle e2)
 issued just before the two fictitious edges e1 and e2 are merged to form a single fictitious edge.
 
virtual void after_merge_fictitious_edge (Halfedge_handle e)
 issued immediately after two fictitious edges have been merged to form the fictitious edge e.
 
virtual void before_merge_face (Face_handle f1, Face_handle f2, Halfedge_handle e)
 issued just before the two edges f1 and f2 are merged to form a single face, following the removal of the edge e from the arrangement.
 
virtual void after_merge_face (Face_handle f)
 issued immediately after two faces have been merged to form the face f.
 
virtual void before_merge_outer_ccb (Face_handle f, Ccb_halfedge_circulator h1, Ccb_halfedge_circulator h2, Halfedge_handle e)
 issued just before two outer ccbs h1 and h2 inside the face f are merged to form a single connected component, following the insertion of the edge e into the arrangement.
 
virtual void after_merge_outer_ccb (Face_handle f, Ccb_halfedge_circulator h)
 issued immediately after two outer ccbs have been merged to form a single outer ccb h inside the face f.
 
virtual void before_merge_inner_ccb (Face_handle f, Ccb_halfedge_circulator h1, Ccb_halfedge_circulator h2, Halfedge_handle e)
 issued just before two inner ccbs h1 and h2 inside the face f are merged to form a single connected component, following the insertion of the edge e into the arrangement.
 
virtual void after_merge_inner_ccb (Face_handle f, Ccb_halfedge_circulator h)
 issued immediately after two inner ccbs have been merged to form a single inner ccb h inside the face f.
 
virtual void before_move_outer_ccb (Face_handle from_f, Face_handle to_f, Ccb_halfedge_circulator h)
 issued just before the outer ccb h is moved from one face to another. More...
 
virtual void after_move_outer_ccb (Ccb_halfedge_circulator h)
 issued immediately after the outer ccb h has been moved to a new face.
 
virtual void before_move_inner_ccb (Face_handle from_f, Face_handle to_f, Ccb_halfedge_circulator h)
 issued just before the inner ccb h is moved from one face to another. More...
 
virtual void after_move_inner_ccb (Ccb_halfedge_circulator h)
 issued immediately after the inner ccb h has been moved to a new face.
 
virtual void before_move_isolated_vertex (Face_handle from_f, Face_handle to_f, Vertex_handle v)
 issued just before the isolated vertex v is moved from one face to another. More...
 
virtual void after_move_isolated_vertex (Vertex_handle v)
 issued immediately after the isolated vertex v has been moved to a new face.
 
virtual void before_remove_vertex (Vertex_handle v)
 issued just before the vertex v is removed from the arrangement.
 
virtual void after_remove_vertex ()
 issued immediately after a vertex has been removed (and deleted) from the arrangement.
 
virtual void before_remove_edge (Halfedge_handle e)
 issued just before the edge e is removed from the arrangement.
 
virtual void after_remove_edge ()
 issued immediately after an edge has been removed (and deleted) from the arrangement.
 
virtual void before_remove_outer_ccb (Face_handle f, Ccb_halfedge_circulator h)
 issued just before the outer ccb f is removed from inside the face f.
 
virtual void after_remove_outer_ccb (Face_handle f)
 issued immediately after a outer ccb has been removed (and deleted) from inside the face f.
 
virtual void before_remove_inner_ccb (Face_handle f, Ccb_halfedge_circulator h)
 issued just before the inner ccb f is removed from inside the face f.
 
virtual void after_remove_inner_ccb (Face_handle f)
 issued immediately after a inner ccb has been removed (and deleted) from inside the face f.