CGAL 6.1 - 2D Visibility
|
A model of the Visibility_2
concept can be attached to an Arrangement_2
instance to answer visibility queries within the faces of this arrangement.
Types | |
typedef unspecified_type | Arrangement_2 |
The arrangement type of the input. | |
typedef Arrangement_2::Point_2 | Point_2 |
The 2D point type used for the queries. | |
typedef Arrangement_2::Face_const_handle | Face_const_handle |
The face handle type of the input arrangement. | |
typedef Arrangement_2::Halfedge_const_handle | Halfedge_const_handle |
The halfedge handle type of the input arrangement. | |
Tags | |
typedef unspecified_type | Regularization_category |
identifies whether the regularized visibility area is computed (either #Tag_true or #Tag_false ). | |
typedef unspecified_type | Supports_general_polygon_category |
identifies whether general polygons (with holes) are supported (either #Tag_true or #Tag_false ). | |
typedef unspecified_type | Supports_simple_polygon_category |
identifies whether simple polygons are supported (either #Tag_true or #Tag_false ). | |
Constructors | |
Visibility_2 () | |
Default constructor creates an empty Visibility_2 object that is not attached to any arrangement yet. | |
Visibility_2 (const Arrangement_2 &arr) | |
Constructs a Visibility_2 object that is attached to arr . | |
Functions | |
bool | is_attached () const |
Returns whether an arrangement is attached to the visibility object. | |
void | attach (const Arrangement_2 &arr) |
Attaches the given arrangement arr to the visibility object. | |
void | detach () |
Detaches the arrangement from the visibility object it is currently attached to. | |
const Arrangement_2 & | arrangement_2 () const |
Access to the attached arrangement. | |
template<typename VisibilityArrangement_2 > | |
Visibility_arrangement_2::Face_handle | compute_visibility (const Point_2 &q, const Face_const_handle f, VisibilityArrangement_2 &out_arr) const |
Computes the visibility region for the given query point q in the face \( f \) of the arrangement that is attached to the visibility object. | |
template<typename VisibilityArrangement_2 > | |
Visibility_arrangement_2::Face_handle | compute_visibility (const Point_2 &q, const Halfedge_const_handle e, Visibility_arrangement_2 &out_arr) const |
Computes the visibility region in e->face() for the given query point q which must be located on e . | |
identifies whether general polygons (with holes) are supported (either #Tag_true
or #Tag_false
).
A general polygon is represented by a face \( f \) with no isolated vertex and any edge of \( f \) separates \( f \) from another face. Note that this allows \( f \) to touch a vertex from several sides.
identifies whether simple polygons are supported (either #Tag_true
or #Tag_false
).
A simple polygon is represented by a face \( f \) with no holes, no isolated vertex and any edge of \( f \) separates \( f \) from another face. Note that this allows \( f \) to touch a vertex from several sides.
void Visibility_2::attach | ( | const Arrangement_2 & | arr | ) |
Attaches the given arrangement arr
to the visibility object.
In case the object is already attached to another arrangement, the visibility object gets detached before being attached to arr
.
Visibility_arrangement_2::Face_handle Visibility_2::compute_visibility | ( | const Point_2 & | q, |
const Face_const_handle | f, | ||
VisibilityArrangement_2 & | out_arr | ||
) | const |
Computes the visibility region for the given query point q
in the face \( f \) of the arrangement that is attached to the visibility object.
The visibility region of q
is stored in out_arr
, that is, all features but the unbounded face of out_arr
represent the visibility region.
VisibilityArrangement_2 | is the type of the output arrangement representing the visibility polygon. It must be an instance of CGAL::Arrangement_2 , where its CGAL::Arrangement_2::Traits_2 must be mutual convertible to VisibilityArrangement_2::Traits_2 . |
q | is the query point |
f | is the face of the arrangement in which the visibility region is computed |
out_arr | is the output arrangement |
f
is a face of this->arrangement_2()
q
is in the interior of the given face f
out_arr
that represents interior of the visibility region Visibility_arrangement_2::Face_handle Visibility_2::compute_visibility | ( | const Point_2 & | q, |
const Halfedge_const_handle | e, | ||
Visibility_arrangement_2 & | out_arr | ||
) | const |
Computes the visibility region in e->face()
for the given query point q
which must be located on e
.
If q
is an interior point of e
, the computed visibility region is restricted to the side indicated by the halfedge e
. If q
is an endpoint of e
, the visibility region is restricted by e
and e->next()
. The visibility region of q
is stored in out_arr
, that is, all features but the unbounded face of out_arr
represent the visibility region.
VisibilityArrangement_2 | is the type of the output arrangement representing the visibility polygon. It must be an instance of CGAL::Arrangement_2 , where its CGAL::Arrangement_2::Traits_2 must be mutual convertible to VisibilityArrangement_2::Traits_2 . |
q | is the query point |
e | the halfedge on which q is located |
out_arr | is the output arrangement |
e
is a halfedge of this->arrangement_2()
q
is on e
q
equals to e->target()->point()
if q
is an endpoint of e
out_arr
that represents the interior of the visibility region