Navigation: Up, Table of Contents, Bibliography, Index, Title Page

Abstract Base Class for Point Location Strategies

Definition

An abstract base class pl of type Pm_point_location_base<Planar_map> provides the interface for any point location strategy. A point location strategy is a class derived from Pm_point_location_base<Planar_map> that implements the pure virtual member functions defined below. Planar_map is the type that aggregates the strategy. The return values of the queries are given in terms of the Planar_map handles.

#include <CGAL/Pm_point_location_base.h>

Types

typedef typename Planar_map::Traits
Traits;

typedef typename Planar_map::Locate_type
Locate_type;

typedef typename Planar_map::Halfedge_handle
Halfedge_handle;

typedef typename Traits::X_curve
X_curve;

typedef typename Traits::Point
Point;

Operations

virtual void pl.init ( Planar_map& pmp, Traits& tr)
initializes the strategy; will be called by the planar map directly after its construction, with *this and the traits instantiation inside the planar map, as its parameters.

Query Functions

virtual Halfedge_handle
pl.locate ( Point p, Locate_type& lt)
point location query.

virtual Halfedge_handle
pl.vertical_ray_shoot ( Point p,
Locate_type& lt,
bool up)
vertical ray shooting query.

Updating Functions

virtual void pl.insert ( Halfedge_handle h, X_curve cv)
updates the internal structure of the strategy after an insertion in the planar map. The planar map will call this function after the insertion has taken place. h is the handle which is returned by the map after insertion, cv is the curve inserted into the map.

virtual void
pl.split_edge ( X_curve cv,
Halfedge_handle e1,
Halfedge_handle e2,
X_curve cv1,
X_curve cv2)
updates the internal structure of the strategy after a split_edge operation in the planar map. The planar map will call this function after the splitting has taken place. e1 and e2 are the two edges created after the split. cv is the original curve that was in the map before the splitting, cv1 and cv2 are the curves in e1 and e2 (resp.) after the splitting has taken place.

virtual void
pl.merge_edge ( X_curve cv1,
X_curve cv2,
Halfedge_handle e,
X_curve cv)
updates the internal structure of the strategy after a merge_edge operation in the planar map. The planar map will call this function after the merging has taken place. e is the merged edge. cv1 and cv2 are the original curves that were in the map before the merging and cv is the curve in e after the merging.

virtual void pl.remove_edge ( Halfedge_handle e)
updates the internal structure of the strategy during a remove_edge operation in the planar map.The planar map will call this function before the removal has taken place (so the internal structure can be updated before the Halfedge has been removed from the planar map itself.)


Next: Class declaration of Dcel::Vertex
Navigation: Up, Table of Contents, Bibliography, Index, Title Page
The GALIA project. Jan 18, 2000.