A model of the ArrangementVerticalRayShoot_2 concept can be attached to an Arrangement_2 instance and answer vertical ray-shooting queries on this arrangement. Namely, given a Arrangement_2::Point_2 object, representing a point in the plane, it returns the arrangement feature (edge or vertex) that lies strictly above it (or below it). By ``strictly'' we mean that if the query point lies on an arrangement edge (or on an arrangement vertex) this edge will not be the query result, but the feature lying above or below it. (An exception to this rule is the degenerate situation where the query point lies in the interior of a vertical edge.) Note that it may happen that the query point lies above the upper envelope (or below the lower envelope) of the arrangement, so that the vertical ray emanating from it may go to infinity without hitting any arrangement feature on its way. In this case the unbounded face is returned.
ArrangementVerticalRayShoot_2::Arrangement_2 | |
the associated arrangement type.
| |
ArrangementVerticalRayShoot_2::Point_2 | |
equivalent to Arrangement_2::Point_2.
|
ArrangementVerticalRayShoot_2 rs; | |
default constructor.
| |
ArrangementVerticalRayShoot_2 rs ( Arrangement_2 arr); | |
constructs a ray-shooting object rs attached to the given
arrangement arr.
|
Object | rs.ray_shoot_up ( Point_2 q) const | |||
locates the arrangement feature that is first hit by an upward-directed
vertical ray emanating from the query point q,
and returns a handle for this feature.
The function returns an Object instance that is a wrapper for
one of the following types:
| ||||
Object | rs.ray_shoot_down ( Point_2 q) const | |||
locates the arrangement feature that is first hit by a downward-directed
vertical ray emanating from the query point q,
and returns a handle for this feature.
The function returns an Object instance that is a wrapper for
one of the following types:
|
void | rs.attach ( Arrangement_2 arr) | attaches rs to the given arrangement arr. |
void | rs.detach () | detaches rs from the arrangement it is currently attached to. |
Arr_naive_point_location<Arrangement>
Arr_walk_along_a_line_point_location<Arrangement>
Arr_trapezoid_ric_point_location<Arrangement>
Arr_landmarks_point_location<Arrangement,Generator>