Arr_observer<Arrangement> serves as an abstract base class for all observer classes that are attached to an arrangement instance of type Arrangement and recieve notifications from the arrangement. This base class handles the attachment of the observer to a given arrangement instance or to the detachment of the observer from this arrangement instance. It also gives a default empty implementation to all notification functions that are invoked by the arrangement to notify the observer on local or global changes it undergoes. The notification functions are all virtual functions, so they can be overridden by the concrete observer classes that inherit from Arr_observer<Arrangement>.
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()).
#include <CGAL/Arr_observer.h>
| |
the type of the associated arrangement.
|
| ||
| the point type. | |
| ||
| the -monotone curve type. | |
| ||
|
||
| ||
|
||
| ||
|
||
| ||
| represents the boundary of a connected component (CCB). In particular, holes are represented by a circulator for their outer CCB. |
| |
constructs an observer that is unattached to any arrangement instance.
| |
| |
constructs an observer and attaches it to the given arrangement
arr.
|
|
| attaches the observer to the given arrangement arr. |
|
| detaches the observer from its arrangement. |
|
| |
issued just before the attached arrangement is assigned with the contents of another arrangement arr. | ||
|
| issued immediately after the attached arrangement has been assigned with the contents of another arrangement. |
|
| issued just before the attached arrangement is cleared. |
|
| issued immediately after the attached arrangement has been cleared, so it now consists only of a the unbounded face uf. |
|
| issued just before a global function starts to modify the attached arrangement. It is guaranteed that no queries (especially no point-location queries) are issued until the termination of the global function is indicated by after_global_change(). |
|
| issued immediately after a global function has stopped modifying the attached arrangement. |
|
| |
issued just before the observer is attached to the arrangement instance arr. | ||
|
| issued immediately after the observer has been attached to an arrangement instance. |
|
| issued just before the observer is detached from its arrangement instance. |
|
| issued immediately after the observer has been detached from its arrangement instance. |
|
| |||
issued just before a new vertex that corresponds to the point p is created. | ||||
|
| |||
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. | ||||
|
| |||
issued just before a new vertex at infinity is created, with the indication whether this vertex lies at and/or . | ||||
|
| |||
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. | ||||
|
| |||
issued just before a new edge that corresponds to the -monotone curve c and connects the vertices v1 and v2 is created. | ||||
|
| |||
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). | ||||
|
| |||
issued just before a vertex v is modified to be associated with the point p. | ||||
|
| |||
issued immediately after an existing vertex v has been modified. | ||||
|
| |||
issued just before an edge e is modified to be associated with the -monotone curve c. | ||||
|
| |||
issued immediately after an existing edge e has been modified. | ||||
|
| |||
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. | ||||
|
| |||
issued immediately after an existing edge has been split into the two given edges e1 and e2. | ||||
|
| |||
issued just before a fictitious edge e is split into two. The vertex at infinity v corresponds to the split point, and will be used to separate the two resulting edges. | ||||
|
| |||
issued immediately after an existing fictitious edge has been split into the two given fictitious edges e1 and e2. | ||||
|
| |||
issued just before a face f is split into two, as a result of the insertion of the edge e into the arrangement. | ||||
|
| |||
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. | ||||
|
| |||
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. | ||||
|
| |||
issued immediately after a hole inside the face f has been split, resulting in the two holes h1 and h2. | ||||
|
| |||
issued just before the edge e is inserted as a new hole inside the face f. | ||||
|
| |||
issued immediately after a new hole h has been created. The hole always consists of a single pair of twin halfedges. | ||||
|
| |||
issued just before the vertex v is inserted as an isolated vertex inside the face f. | ||||
|
| |||
issued immediately after the vertex v has been set as an isolated vertex. | ||||
|
| |||
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. | ||||
|
| |||
issued immediately after two edges have been merged to form the edge e. | ||||
|
| |||
issued just before the two fictitious edges e1 and e2 are merged to form a single fictitious edge. | ||||
|
| |||
issued immediately after two fictitious edges have been merged to form the fictitious edge 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. | ||||
|
| |||
issued immediately after two faces have been merged to form the face f. | ||||
|
| |||
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. | ||||
|
| |||
issued immediately after two holes have been merged to form a single hole h inside the face f. | ||||
|
| |||
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. | ||||
|
| |||
issued immediately after the hole h has been moved to a new face. | ||||
|
| |||
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. | ||||
|
| |||
issued immediately after the isolated vertex v has been moved to a new face. | ||||
|
| |||
issued just before the vertex v is removed from the arrangement. | ||||
|
| issued immediately after a vertex has been removed (and deleted) from the arrangement. | ||
|
| |||
issued just before the vertex at infinity v is removed from the arrangement. | ||||
|
| |||
issued immediately after a vertex at infinity has been removed (and deleted) from the arrangement. | ||||
|
| |||
issued just before the edge e is removed from the arrangement. | ||||
|
| issued immediately after an edge has been removed (and deleted) from the arrangement. | ||
|
| |||
issued just before the hole f is removed from inside the face f. | ||||
|
| |||
issued immediately after a hole has been removed (and deleted) from inside the face f. |