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.
- Has Models:
CGAL::Simple_polygon_visibility_2
CGAL::Rotational_sweep_visibility_2
CGAL::Triangular_expansion_visibility_2
|
|
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.
|
| |
|
|
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. More...
|
| |
|
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. More...
|
| |
| 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. More...
|
| |
◆ Supports_general_polygon_category
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.
◆ Supports_simple_polygon_category
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.
◆ attach()
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.
◆ compute_visibility() [1/2]
template<typename VisibilityArrangement_2 >
| 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.
- Template Parameters
-
| 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. |
- Parameters
-
| 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 |
- Precondition
f is a face of this->arrangement_2()
-
q is in the interior of the given face f
- Returns
- the face handle to the face in
out_arr that represents interior of the visibility region
◆ compute_visibility() [2/2]
template<typename VisibilityArrangement_2 >
| 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.
- Template Parameters
-
| 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. |
- Parameters
-
| q | is the query point |
| e | the halfedge on which q is located |
| out_arr | is the output arrangement |
- Precondition
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
- Returns
- a handle to the face in
out_arr that represents the interior of the visibility region