In order to implement a concrete arrangement observer-class, one simply
needs to derive from Arr_observer<Arrangement> and override the relevant
notification functions. For example, if only face-split events are of
interest, it is sufficient to override just before_split_face()
(or just after_split_face()).
virtual void
|
obs.before_create_vertex ( Point_2 p)
|
| |
issued just before a new vertex that corresponds to the point p
is created.
|
virtual void
|
obs.after_create_vertex ( Vertex_handle v)
|
| |
issued immediately after a new vertex v has been created.
Note that the vertex still has no incident edges and is not connected
to any other vertex.
|
|
virtual void
|
obs.before_create_edge ( |
X_monotone_curve_2 c,
Vertex_handle v1,
Vertex_handle v2) |
|
| |
issued just before a new edge that corresponds to the -monotone curve
c and connects the vertices v1 and v2 is created.
|
virtual void
|
obs.after_create_edge ( Halfedge_handle e)
|
| |
issued immediately after a new edge e has been created.
The halfedge that is sent to this function is always directed from
v1 to v2 (see above).
|
|
virtual void
|
obs.before_modify_vertex ( Vertex_handle v, Point_2 p)
|
| |
issued just before a vertex v is modified to be associated with
the point p.
|
virtual void
|
obs.after_modify_vertex ( Vertex_handle v)
|
| |
issued immediately after an existing vertex v has been modified.
|
|
virtual void
|
obs.before_modify_edge ( |
Halfedge_handle e,
X_monotone_curve_2 c) |
|
| |
issued just before an edge e is modified to be associated with
the -monotone curve c.
|
virtual void
|
obs.after_modify_edge ( Halfedge_handle e)
|
| |
issued immediately after an existing edge e has been modified.
|
|
virtual void
|
obs.before_split_edge ( |
Halfedge_handle e,
Vertex_handle v,
X_monotone_curve_2 c1,
X_monotone_curve_2 c2) |
|
| |
issued just before an edge e is split into two edges that should
be associated with the -monotone curves c1 and c2. The
vertex v corresponds to the split point, and will be used to
separate the two resulting edges.
|
virtual void
|
obs.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
|
obs.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
|
obs.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. The flag
is_hole designates whether f2 forms a hole inside f1.
|
|
virtual void
|
obs.before_split_hole ( |
Face_handle f,
Ccb_halfedge_circulator h,
Halfedge_handle e) |
|
| |
issued just before a hole h inside a face f is split into
two, as a result of the removal of the edge e from the arrangement.
|
virtual void
|
obs.after_split_hole ( |
Face_handle f,
Ccb_halfedge_circulator h1,
Ccb_halfedge_circulator h2) |
|
| |
issued immediately after a hole inside the face f has been split,
resulting in the two holes h1 and h2.
|
|
virtual void
|
obs.before_add_hole ( Face_handle f, Halfedge_handle e)
|
| |
issued just before the edge e is inserted as a new hole inside
the face f.
|
virtual void
|
obs.after_add_hole ( Ccb_halfedge_circulator h)
|
| |
issued immediately after a new hole h has been created. The hole
always consists of a single pair of twin halfedges.
|
|
virtual void
|
obs.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
|
obs.after_add_isolated_vertex ( Vertex_handle v)
|
| |
issued immediately after the vertex v has been set as an
isolated vertex.
|
|
virtual void
|
obs.before_merge_edge ( |
Halfedge_handle e1,
Halfedge_handle e2,
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 -monotone curve
c.
|
virtual void
|
obs.after_merge_edge ( Halfedge_handle e)
|
| |
issued immediately after two edges have been merged to form the edge
e.
|
|
virtual void
|
obs.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
|
obs.after_merge_face ( Face_handle f)
|
| |
issued immediately after two faces have been merged to form the face
f.
|
|
virtual void
|
obs.before_merge_hole ( |
Face_handle f,
Ccb_halfedge_circulator h1,
Ccb_halfedge_circulator h2,
Halfedge_handle e) |
|
| |
issued just before two holes 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
|
obs.after_merge_hole ( |
Face_handle f,
Ccb_halfedge_circulator h) |
|
| |
issued immediately after two holes have been merged to form a single hole
h inside the face f.
|
|
virtual void
|
obs.before_move_hole ( |
Face_handle from_f,
Face_handle to_f,
Ccb_halfedge_circulator h) |
|
| |
issued just before the hole h is moved from one face to another.
This can happen if the face to_f containing the hole has just
been split from from_f.
|
virtual void
|
obs.after_move_hole ( Ccb_halfedge_circulator h)
|
| |
issued immediately after the hole h has been moved to a new face.
|
|
virtual void
|
obs.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.
This can happen if the face to_f containing the isolated vertex
has just been split from from_f.
|
virtual void
|
obs.after_move_isolated_vertex ( Vertex_handle v)
|
| |
issued immediately after the isolated vertex v has been moved to a
new face.
|
|
virtual void
|
obs.before_remove_vertex ( Vertex_handle v)
|
| |
issued just before the vertex v is removed from arrangement.
|
virtual void
|
obs.after_remove_vertex ()
|
| |
issued immediately after a vertex has been removed (and deleted)
from the arrangement.
|
|
virtual void
|
obs.before_remove_edge ( Halfedge_handle e)
|
| |
issued just before the edge e is removed from arrangement.
|
virtual void
|
obs.after_remove_edge ()
|
| |
issued immediately after an edge has been removed (and deleted)
from the arrangement.
|
|
virtual void
|
obs.before_remove_hole ( |
Face_handle f,
Ccb_halfedge_circulator h) |
|
| |
issued just before the hole f is removed from inside the
face f.
|
virtual void
|
obs.after_remove_hole ( Face_handle f)
|
| |
issued immediately after a hole has been removed (and deleted)
from inside the face f.
|