BWAPI
|
#include <Arr_accessor.h>
typedef Arrangement_ Arr_accessor< Arrangement_ >::Arrangement_2 |
typedef Arrangement_2::Ccb_halfedge_circulator Arr_accessor< Arrangement_ >::Ccb_halfedge_circulator |
typedef Arrangement_2::Dcel Arr_accessor< Arrangement_ >::Dcel |
typedef Arrangement_2::DEdge_const_iter Arr_accessor< Arrangement_ >::Dcel_edge_iterator |
typedef DFace Arr_accessor< Arrangement_ >::Dcel_face |
typedef Arrangement_2::DFace_const_iter Arr_accessor< Arrangement_ >::Dcel_face_iterator |
typedef DHalfedge Arr_accessor< Arrangement_ >::Dcel_halfedge |
typedef DInner_ccb Arr_accessor< Arrangement_ >::Dcel_inner_ccb |
typedef Arrangement_2::DInner_ccb_const_iter Arr_accessor< Arrangement_ >::Dcel_inner_ccb_iterator |
typedef Arrangement_2::DIso_vertex_const_iter Arr_accessor< Arrangement_ >::Dcel_iso_vertex_iterator |
typedef DIso_vertex Arr_accessor< Arrangement_ >::Dcel_isolated_vertex |
typedef DOuter_ccb Arr_accessor< Arrangement_ >::Dcel_outer_ccb |
typedef Arrangement_2::DOuter_ccb_const_iter Arr_accessor< Arrangement_ >::Dcel_outer_ccb_iterator |
typedef DVertex Arr_accessor< Arrangement_ >::Dcel_vertex |
typedef Arrangement_2::DVertex_const_iter Arr_accessor< Arrangement_ >::Dcel_vertex_iterator |
typedef Arrangement_2::Face_const_handle Arr_accessor< Arrangement_ >::Face_const_handle |
typedef Arrangement_2::Face_handle Arr_accessor< Arrangement_ >::Face_handle |
typedef Arrangement_2::Halfedge_const_handle Arr_accessor< Arrangement_ >::Halfedge_const_handle |
typedef Arrangement_2::Halfedge_handle Arr_accessor< Arrangement_ >::Halfedge_handle |
typedef Arrangement_2::_Is_valid_vertex Arr_accessor< Arrangement_ >::Is_valid_vertex |
typedef Arrangement_2::Point_2 Arr_accessor< Arrangement_ >::Point_2 |
typedef Arr_accessor<Arrangement_2> Arr_accessor< Arrangement_ >::Self |
typedef Arrangement_2::Size Arr_accessor< Arrangement_ >::Size |
typedef Arrangement_2::_Valid_vertex_iterator Arr_accessor< Arrangement_ >::Valid_vertex_iterator |
typedef Arrangement_2::Vertex_const_handle Arr_accessor< Arrangement_ >::Vertex_const_handle |
typedef Arrangement_2::Vertex_handle Arr_accessor< Arrangement_ >::Vertex_handle |
typedef Arrangement_2::X_monotone_curve_2 Arr_accessor< Arrangement_ >::X_monotone_curve_2 |
Arr_accessor< Arrangement_ >::Arr_accessor | ( | Arrangement_2 & | arr | ) | [inline] |
Constructor with an associated arrangement.
bool Arr_accessor< Arrangement_ >::are_equal | ( | Vertex_const_handle | v, |
const X_monotone_curve_2 & | cv, | ||
Arr_curve_end | ind, | ||
Arr_parameter_space | ps_x, | ||
Arr_parameter_space | ps_y | ||
) | const [inline] |
Check if the given vertex represents one of the ends of a given curve.
v | The vertex. |
cv | The curve. |
ind | ARR_MIN_END if we refer to cv's minimal end; ARR_MAX_END if we refer to its maximal end. |
ps_x | The boundary condition of the curve end in x. |
ps_y | The boundary condition of the curve end in y. |
bool Arr_accessor< Arrangement_ >::are_on_same_inner_component | ( | Halfedge_handle | e1, |
Halfedge_handle | e2 | ||
) | [inline] |
bool Arr_accessor< Arrangement_ >::are_on_same_outer_component | ( | Halfedge_handle | e1, |
Halfedge_handle | e2 | ||
) | [inline] |
Arrangement_2& Arr_accessor< Arrangement_ >::arrangement | ( | ) | [inline] |
const Arrangement_2& Arr_accessor< Arrangement_ >::arrangement | ( | ) | const [inline] |
void Arr_accessor< Arrangement_ >::clear_all | ( | ) | [inline] |
Clear the entire arrangment.
Vertex_handle Arr_accessor< Arrangement_ >::create_boundary_vertex | ( | const X_monotone_curve_2 & | cv, |
Arr_curve_end | ind, | ||
Arr_parameter_space | ps_x, | ||
Arr_parameter_space | ps_y, | ||
bool | notify = true |
||
) | [inline] |
Create a new boundary vertex.
cv | The curve incident to the boundary. |
ind | The relevant curve-end. |
ps_x | The boundary condition in x. |
by | The boundary condition in y. |
notify | Should we send a notification to the topology traits on the creation of the vertex (true by default). |
Vertex_handle Arr_accessor< Arrangement_ >::create_vertex | ( | const Point_2 & | p | ) | [inline] |
const Dcel& Arr_accessor< Arrangement_ >::dcel | ( | ) | const [inline] |
Get the arrangement DCEL.
void Arr_accessor< Arrangement_ >::dcel_updated | ( | ) | [inline] |
Update the topology traits after the DCEL has been updated.
int Arr_accessor< Arrangement_ >::halfedge_distance | ( | Halfedge_const_handle | e1, |
Halfedge_const_handle | e2 | ||
) | const [inline] |
Compute the distance (in halfedges) between two halfedges.
Halfedge_handle Arr_accessor< Arrangement_ >::insert_at_vertices_ex | ( | const X_monotone_curve_2 & | cv, |
Halfedge_handle | prev1, | ||
Halfedge_handle | prev2, | ||
Comparison_result | res, | ||
bool & | new_face | ||
) | [inline] |
Insert an x-monotone curve into the arrangement, where the end vertices are given by the target points of two given halfedges. The two halfedges should be given such that in case a new face is formed, it will be the incident face of the halfedge directed from the first vertex to the second vertex.
cv | the given curve. |
prev1 | The reference halfedge for the first vertex. |
prev2 | The reference halfedge for the second vertex. |
res | The comparsion result between the points associated with the target vertex of prev and the target vertex of prev2. |
new_face | Output - whether a new face has been created. |
Halfedge_handle Arr_accessor< Arrangement_ >::insert_from_vertex_ex | ( | const X_monotone_curve_2 & | cv, |
Halfedge_handle | prev, | ||
Vertex_handle | v, | ||
Comparison_result | res | ||
) | [inline] |
Insert an x-monotone curve into the arrangement, such that one of its endpoints corresponds to a given arrangement vertex, given the exact place for the curve in the circular list around this vertex. The other endpoint corrsponds to a free vertex (a newly created vertex or an isolated vertex).
cv | The given x-monotone curve. |
prev | The reference halfedge. We should represent cv as a pair of edges, one of them should become prev's successor. |
v | The free vertex that corresponds to the other endpoint. |
res | The comparsion result between the points associated with the target vertex of prev and the vertex v. |
Halfedge_handle Arr_accessor< Arrangement_ >::insert_in_face_interior_ex | ( | const X_monotone_curve_2 & | cv, |
Face_handle | f, | ||
Vertex_handle | v1, | ||
Vertex_handle | v2, | ||
Comparison_result | res | ||
) | [inline] |
Insert an x-monotone curve into the arrangement, such that both its endpoints correspond to free arrangement vertices (newly created vertices or existing isolated vertices), so a new hole is formed in the face that contains the two vertices.
cv | The given x-monotone curve. |
f | The face containing the two end vertices. |
v1 | The free vertex that corresponds to the left endpoint of cv. |
v2 | The free vertex that corresponds to the right endpoint of cv. |
res | The comparsion result between the points associated with the vertices v1 and v2. |
void Arr_accessor< Arrangement_ >::insert_isolated_vertex | ( | Face_handle | f, |
Vertex_handle | v | ||
) | [inline] |
bool Arr_accessor< Arrangement_ >::is_inside_new_face | ( | Halfedge_handle | prev1, |
Halfedge_handle | prev2, | ||
const X_monotone_curve_2 & | cv | ||
) | const [inline] |
Determine whether a given query halfedge lies in the interior of a new face we are about to create, by connecting it with another halfedge using a given x-monotone curve.
prev1 | A handle for the query halfedge. |
prev2 | The other halfedge we are about to connect with prev1. |
cv | The x-monotone curve we use to connect prev1 and prev2. |
bool Arr_accessor< Arrangement_ >::is_on_inner_boundary | ( | Halfedge_const_handle | he | ) | const [inline] |
Check whether the given halfedge lies on the inner boundary of its incident face.
he | The given halfedge. |
bool Arr_accessor< Arrangement_ >::is_on_outer_boundary | ( | Halfedge_const_handle | he | ) | const [inline] |
Check whether the given halfedge lies on the outer boundary of its incident face.
he | The given halfedge. |
Halfedge_handle Arr_accessor< Arrangement_ >::locate_around_boundary_vertex | ( | Vertex_handle | vh, |
const X_monotone_curve_2 & | cv, | ||
Arr_curve_end | ind, | ||
Arr_parameter_space | ps_x, | ||
Arr_parameter_space | ps_y | ||
) | const [inline] |
Locate the place for the given curve-end around the given vertex, which lies on the boundary.
vh | A handle for the arrangement vertex. |
cv | The curve. |
ind | ARR_MIN_END if we refer to cv's minimal end; ARR_MAX_END if we refer to its maximal end. |
ps_x | The boundary condition in x. |
ps_y | The boundary condition in y. |
Halfedge_handle Arr_accessor< Arrangement_ >::locate_around_vertex | ( | Vertex_handle | vh, |
const X_monotone_curve_2 & | cv | ||
) | const [inline] |
Locate the place for the given curve around the given vertex.
CGAL::Object Arr_accessor< Arrangement_ >::locate_curve_end | ( | const X_monotone_curve_2 & | cv, |
Arr_curve_end | ind, | ||
Arr_parameter_space | ps_x, | ||
Arr_parameter_space | ps_y | ||
) | const [inline] |
Locate the arrangement feature that contains the given curve-end.
cv | The curve. |
ind | ARR_MIN_END if we refer to cv's minimal end; ARR_MAX_END if we refer to its maximal end. |
ps_x | The boundary condition in x. |
ps_y | The boundary condition in y. |
Halfedge_handle Arr_accessor< Arrangement_ >::modify_edge_ex | ( | Halfedge_handle | e, |
const X_monotone_curve_2 & | cv | ||
) | [inline] |
Vertex_handle Arr_accessor< Arrangement_ >::modify_vertex_ex | ( | Vertex_handle | v, |
const Point_2 & | p | ||
) | [inline] |
void Arr_accessor< Arrangement_ >::move_inner_ccb | ( | Face_handle | from_face, |
Face_handle | to_face, | ||
Ccb_halfedge_circulator | ccb | ||
) | [inline] |
void Arr_accessor< Arrangement_ >::move_isolated_vertex | ( | Face_handle | from_face, |
Face_handle | to_face, | ||
Vertex_handle | v | ||
) | [inline] |
void Arr_accessor< Arrangement_ >::move_outer_ccb | ( | Face_handle | from_face, |
Face_handle | to_face, | ||
Ccb_halfedge_circulator | ccb | ||
) | [inline] |
Dcel_halfedge* Arr_accessor< Arrangement_ >::new_edge | ( | const X_monotone_curve_2 * | cv | ) | [inline] |
Dcel_face* Arr_accessor< Arrangement_ >::new_face | ( | ) | [inline] |
Create a new face.
Dcel_inner_ccb* Arr_accessor< Arrangement_ >::new_inner_ccb | ( | ) | [inline] |
Create a new inner CCB.
Dcel_isolated_vertex* Arr_accessor< Arrangement_ >::new_isolated_vertex | ( | ) | [inline] |
Create a new isolated vertex.
Dcel_outer_ccb* Arr_accessor< Arrangement_ >::new_outer_ccb | ( | ) | [inline] |
Create a new outer CCB.
Dcel_vertex* Arr_accessor< Arrangement_ >::new_vertex | ( | const Point_2 * | p, |
Arr_parameter_space | ps_x, | ||
Arr_parameter_space | ps_y | ||
) | [inline] |
void Arr_accessor< Arrangement_ >::notify_after_global_change | ( | ) | [inline] |
Notify that a global operation was completed.
void Arr_accessor< Arrangement_ >::notify_before_global_change | ( | ) | [inline] |
Notify that a global operation is about to take place.
Size Arr_accessor< Arrangement_ >::number_of_valid_vertices | ( | ) | const [inline] |
Get the number of valid arrangement vertices.
std::pair<Vertex_handle, Halfedge_handle> Arr_accessor< Arrangement_ >::place_and_set_curve_end | ( | Face_handle | f, |
const X_monotone_curve_2 & | cv, | ||
Arr_curve_end | ind, | ||
Arr_parameter_space | ps_x, | ||
Arr_parameter_space | ps_y | ||
) | [inline] |
Locate the arrangement features that will be used for inserting the given curve end, which has a boundary condition, and set a proper vertex there.
f | The face that contains the curve end. |
cv | The x-monotone curve. |
ind | The curve end. |
ps_x | The boundary condition at the x-coordinate. |
ps_y | The boundary condition at the y-coordinate. |
void Arr_accessor< Arrangement_ >::relocate_holes_in_new_face | ( | Halfedge_handle | new_he | ) | [inline] |
void Arr_accessor< Arrangement_ >::relocate_in_new_face | ( | Halfedge_handle | new_he | ) | [inline] |
Relocate all holes and isolated vertices to their proper position, immediately after a face has split due to the insertion of a new halfedge. In case insert_at_vertices_ex() was invoked and indicated that a new face has been created, this function should be called with the halfedge returned by insert_at_vertices_ex().
new_he | The new halfedge that caused the split, such that the new face lies to its left and the old face to its right. |
void Arr_accessor< Arrangement_ >::relocate_isolated_vertices_in_new_face | ( | Halfedge_handle | new_he | ) | [inline] |
Face_handle Arr_accessor< Arrangement_ >::remove_edge_ex | ( | Halfedge_handle | e, |
bool | remove_source = true , |
||
bool | remove_target = true |
||
) | [inline] |
Remove a pair of twin halfedges from the arrangement.
e | A handle for one of the halfedges to be removed. |
remove_source | Should the source vertex of e be removed if it becomes isolated (true by default). |
remove_target | Should the target vertex of e be removed if it becomes isolated (true by default). |
void Arr_accessor< Arrangement_ >::remove_isolated_vertex_ex | ( | Vertex_handle | v | ) | [inline] |
Remove an isolated vertex from its face.
v | The isolated vertex to remove. |
Dcel_vertex* Arr_accessor< Arrangement_ >::set_vertex_boundary | ( | const Vertex_handle | v, |
Arr_parameter_space | ps_x, | ||
Arr_parameter_space | ps_y | ||
) | [inline] |
Halfedge_handle Arr_accessor< Arrangement_ >::split_edge_ex | ( | Halfedge_handle | e, |
const Point_2 & | p, | ||
const X_monotone_curve_2 & | cv1, | ||
const X_monotone_curve_2 & | cv2 | ||
) | [inline] |
Split a given edge into two at a given point, and associate the given x-monotone curves with the split edges.
e | The edge to split (one of the pair of twin halfegdes). |
p | The split point. |
cv1 | The curve that should be associated with the first split edge, whose source equals e's source and its target is p. |
cv2 | The curve that should be associated with the second split edge, whose source is p and its target equals e's target. |
Halfedge_handle Arr_accessor< Arrangement_ >::split_edge_ex | ( | Halfedge_handle | e, |
Vertex_handle | v, | ||
const X_monotone_curve_2 & | cv1, | ||
const X_monotone_curve_2 & | cv2 | ||
) | [inline] |
Split a given edge into two at the given vertex, and associate the given x-monotone curves with the split edges.
e | The edge to split (one of the pair of twin halfegdes). |
v | The split vertex. |
cv1 | The curve that should be associated with the first split edge, whose source equals e's source and its target is v's point. |
cv2 | The curve that should be associated with the second split edge, whose source is v's point and its target equals e's target. |
Halfedge_handle Arr_accessor< Arrangement_ >::split_fictitious_edge | ( | Halfedge_handle | e, |
Vertex_handle | v | ||
) | [inline] |
Valid_vertex_iterator Arr_accessor< Arrangement_ >::valid_vertices_begin | ( | ) | [inline] |
Get an iterator for the first valid arrangement vertex.
Valid_vertex_iterator Arr_accessor< Arrangement_ >::valid_vertices_end | ( | ) | [inline] |
Get a past-the-end iterator for the valid arrangement vertices.