The geometric types defined below must have a default constructor, copy constructor, assignment operator and operator==.
| |
A type that holds an x-monotone curve in
the plane.
| |
| |
A type that holds the position of a vertex in
the plane. The type of the end points of X_monotone_curve_2 curves.
|
The following categories declare the implementation of the method curves_compare_y_at_x_left(). If the category Has_left_category is Tag_true the method is required specifically. Otherwise, if the category Has_reflect_category is Tag_true the method curves_compare_y_at_x_left() is implemented using the required methods point_reflect_in_x_and_y() and curve_reflect_in_x_and_y(). If none of the categories is Tag_true, a default implementation is used, that does not require any of the above methods.
| |
A boolean category that indicates
whether the method curves_compare_y_at_x_left() is required.
It must be either Tag_true or Tag_false.
| |
| |
A boolean category that indicates
whether the methods point_reflect_in_x_and_y() and
curve_reflect_in_x_and_y() are required. It must be either
Tag_true or Tag_false.
|
| |
a constant describing the relative position between objects.
|
| |
A default constructor.
|
|
| |||
compares the x-coordinates of p0 and p1. Returns LARGER if x(p0) > x(p1); SMALLER if x(p0) < x(p1); EQUAL otherwise. | ||||
|
| |||
compares the two points p0 and p1 lexigoraphically. First the x-coordinates are compared. In case of a tie, the y-coordinates are compared. Returns LARGER if x(p1) > x(p2), or if x(p1) = x(p2) and y(p1) > y(p2); SMALLER if x(p1) < x(p2), or if x(p1) = x(p2) and y(p1) < y(p2); EQUAL otherwise. | ||||
|
| |||
returns true if cv is a vertical segment, false otherwise. | ||||
|
| |||
returns true if pnt is in the x range of cv, false otherwise. | ||||
|
| |||
compares the y-coordinate of cv1 and cv2 at the x-coordinate
of pnt. Returns LARGER if cv1(x(q)) > cv2(x(q));
SMALLER if cv1(x(q)) < cv2(x(q)); EQUAL
otherwise. Precondition: cv1 and cv2 are defined at pnt's x-coordinate. | ||||
|
| |||
compares the y-coordinate of cv1 and cv2 immediately to the
right of the x-coordinate of pnt. Precondition: cv1 and cv2 meet at pnt x-coordinate. Precondition: cv1 and cv2 are defined lexigoraphically to the right of pnt's x-coordinate. | ||||
|
| |||
compares the y-coordinate of cv1 and cv2 immediately to the
left of the x-coordinate of pnt. This predicate is not
required for the aggregate insertion of curves into the planar map.
Recall, that the aggregate insertion is based on a sweep-line
algorithm. Precondition: cv1 and cv2 meet at pnt x-coordinate. Precondition: cv1 and cv2 are defined lexigoraphically to the left of pnt's x-coordinate. | ||||
|
| |||
returns the reflection of the point pt about the origin For example, the reflection of the point (2,2) is the point as (-2,-2). This predicate is not required for the aggregate insertion of curves into the planar map, or if the method curves_compare_y_at_x_left() is provided and the Has_left_category category is Tag_true. | ||||
|
| |||
returns the reflection of the curve cv about the origin. For example, the reflection of the line segment ((2,2),(3,3)) is ((-2,-2),(-3,-3)). This predicate is not required for the aggregate insertion of curves into the planar map, or if the method curves_compare_y_at_x_left() is provided and the Has_left_category category is Tag_true. | ||||
|
| |||
compares the y-coordinates of pnt and the vertical projection of
pnt on cv. Returns SMALLER if y(pnt) < cv(x(pnt));
LARGER if y(pnt) > cv(x(pnt));
EQUAL otherwise (pnt is on the curve). Precondition: cv is defined at pnt's x-coordinate. | ||||
|
| |||
returns true if cv1 and cv2 have the same graph, false otherwise. | ||||
|
| |||
returns true if p1 is the same as p2, false otherwise. | ||||
|
| |||
returns the source of cv. | ||||
|
| |||
returns the target of cv. |
The PlanarMapWithIntersectionsTraits_2 and ArrangementTraits_2 concepts are refinements of the PlanarMapTraits_2 concept, in other words, a model of the formers is a model of the latter. Thus, all supplied (or user written ) arrangement traits classes can be passed as the Traits template parameter when instantiating an object of type Planar_map_2<Dcel,Traits>. See the list of the arrangement traits classes in chapter , Arrangement.