BWAPI
|
#include <Arr_planar_topology_traits_base_2.h>
Public Types | |
typedef Arr_planar_topology_traits_base_2 < Geometry_traits_2, Dcel > | Self |
The geometry-traits types. | |
! | |
typedef GeomTraits_ | Geometry_traits_2 |
typedef Geometry_traits_2::Point_2 | Point_2 |
typedef Geometry_traits_2::X_monotone_curve_2 | X_monotone_curve_2 |
The DCEL types. | |
! | |
typedef Dcel_ | Dcel |
typedef Dcel::Size | Size |
typedef Dcel::Vertex | Vertex |
typedef Dcel::Halfedge | Halfedge |
typedef Dcel::Face | Face |
typedef Dcel::Outer_ccb | Outer_ccb |
typedef Dcel::Inner_ccb | Inner_ccb |
typedef Dcel::Isolated_vertex | Isolated_vertex |
Public Member Functions | |
Construction methods. | |
! | |
Arr_planar_topology_traits_base_2 () | |
Arr_planar_topology_traits_base_2 (const Geometry_traits_2 *geom_traits) | |
void | assign (const Self &other) |
virtual | ~Arr_planar_topology_traits_base_2 () |
Common topology-traits methods. | |
! | |
const Dcel & | dcel () const |
Dcel & | dcel () |
void | notify_on_boundary_vertex_creation (Vertex *, const X_monotone_curve_2 &, Arr_curve_end, Arr_parameter_space, Arr_parameter_space) |
std::pair< bool, bool > | face_split_after_edge_insertion (const Halfedge *CGAL_precondition_code(prev1), const Halfedge *CGAL_precondition_code(prev2), const X_monotone_curve_2 &) const |
bool | hole_creation_after_edge_removal (const Halfedge *he) const |
bool | is_on_new_perimetric_face_boundary (const Halfedge *, const Halfedge *, const X_monotone_curve_2 &) const |
bool | boundaries_of_same_face (const Halfedge *, const Halfedge *) const |
bool | is_in_face (const Face *f, const Point_2 &p, const Vertex *v) const |
Additional accessors, specialized for this topology-traits class. | |
virtual const Face * | initial_face () const =0 |
Additional predicates, specialized for this topology-traits class. | |
virtual Comparison_result | compare_x (const Point_2 &p, const Vertex *v) const =0 |
virtual Comparison_result | compare_xy (const Point_2 &p, const Vertex *v) const =0 |
virtual Comparison_result | compare_y_at_x (const Point_2 &p, const Halfedge *he) const =0 |
Protected Types | |
typedef Arr_traits_basic_adaptor_2 < Geometry_traits_2 > | Traits_adaptor_2 |
Protected Member Functions | |
Arr_planar_topology_traits_base_2 (const Self &) | |
Self & | operator= (const Self &) |
Protected Attributes | |
Dcel | m_dcel |
const Traits_adaptor_2 * | traits |
bool | own_traits |
A base topology-traits class that encapsulates the embedding of 2D arrangements of bounded or unbounded curves on the plane.
typedef Dcel_ Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Dcel |
typedef Dcel::Face Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Face |
typedef GeomTraits_ Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Geometry_traits_2 |
typedef Dcel::Halfedge Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Halfedge |
typedef Dcel::Inner_ccb Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Inner_ccb |
typedef Dcel::Isolated_vertex Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Isolated_vertex |
typedef Dcel::Outer_ccb Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Outer_ccb |
typedef Geometry_traits_2::Point_2 Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Point_2 |
typedef Arr_planar_topology_traits_base_2<Geometry_traits_2, Dcel> Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Self |
typedef Dcel::Size Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Size |
typedef Arr_traits_basic_adaptor_2<Geometry_traits_2> Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Traits_adaptor_2 [protected] |
typedef Dcel::Vertex Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Vertex |
typedef Geometry_traits_2::X_monotone_curve_2 Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::X_monotone_curve_2 |
Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Arr_planar_topology_traits_base_2 | ( | const Self & | ) | [protected] |
Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Arr_planar_topology_traits_base_2 | ( | ) | [inline] |
Default constructor.
Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::Arr_planar_topology_traits_base_2 | ( | const Geometry_traits_2 * | geom_traits | ) | [inline] |
Constructor with a geometry-traits class.
virtual Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::~Arr_planar_topology_traits_base_2 | ( | ) | [inline, virtual] |
Destructor.
void Arr_planar_topology_traits_base_2< GeomTraits, Dcel_ >::assign | ( | const Self & | other | ) |
Assign the contents of another topology-traits class.
Reimplemented in Arr_unb_planar_topology_traits_2< GeomTraits_, Dcel_ >.
bool Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::boundaries_of_same_face | ( | const Halfedge * | , |
const Halfedge * | |||
) | const [inline] |
virtual Comparison_result Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::compare_x | ( | const Point_2 & | p, |
const Vertex * | v | ||
) | const [pure virtual] |
Compare the given vertex (which may lie at infinity) and the given point.
Implemented in Arr_unb_planar_topology_traits_2< GeomTraits_, Dcel_ >, and Arr_bounded_planar_topology_traits_2< GeomTraits_, Dcel_ >.
virtual Comparison_result Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::compare_xy | ( | const Point_2 & | p, |
const Vertex * | v | ||
) | const [pure virtual] |
Compare the given vertex (which may lie at infinity) and the given point.
Implemented in Arr_unb_planar_topology_traits_2< GeomTraits_, Dcel_ >, and Arr_bounded_planar_topology_traits_2< GeomTraits_, Dcel_ >.
virtual Comparison_result Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::compare_y_at_x | ( | const Point_2 & | p, |
const Halfedge * | he | ||
) | const [pure virtual] |
Compare the relative y-position of the given point and the given edge (which may be fictitious).
Implemented in Arr_unb_planar_topology_traits_2< GeomTraits_, Dcel_ >, and Arr_bounded_planar_topology_traits_2< GeomTraits_, Dcel_ >.
const Dcel& Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::dcel | ( | ) | const [inline] |
Get the DCEL (const version).
Dcel& Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::dcel | ( | ) | [inline] |
Get the DCEL (non-const version).
std::pair<bool, bool> Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::face_split_after_edge_insertion | ( | const Halfedge * | CGAL_precondition_codeprev1, |
const Halfedge * | CGAL_precondition_codeprev2, | ||
const X_monotone_curve_2 & | |||
) | const [inline] |
Given two predecessor halfedges that belong to the same inner CCB of a face, determine what happens when we insert an edge connecting the target vertices of the two edges.
prev1 | The first predecessor halfedge. |
prev2 | The second predecessor halfedge. |
cv | The curve to be inserted |
bool Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::hole_creation_after_edge_removal | ( | const Halfedge * | he | ) | const [inline] |
Determine whether the removal of the given edge will cause the creation of a hole.
he | The halfedge to be removed. |
virtual const Face* Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::initial_face | ( | ) | const [pure virtual] |
This function is used by the "walk" point-location strategy.
Implemented in Arr_unb_planar_topology_traits_2< GeomTraits_, Dcel_ >, and Arr_bounded_planar_topology_traits_2< GeomTraits_, Dcel_ >.
bool Arr_planar_topology_traits_base_2< GeomTraits, Dcel_ >::is_in_face | ( | const Face * | f, |
const Point_2 & | p, | ||
const Vertex * | v | ||
) | const |
Determine whether the given point lies in the interior of the given face.
f | The face. |
p | The query point. |
v | The vertex associated with p (if exists). |
f | must not be fictitious, and v must not lie at infinity. |
bool Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::is_on_new_perimetric_face_boundary | ( | const Halfedge * | , |
const Halfedge * | , | ||
const X_monotone_curve_2 & | |||
) | const [inline] |
Given two predecessor halfedges that will be used for inserting a new halfedge pair (prev1 will be the predecessor of the halfedge he1, and prev2 will be the predecessor of its twin he2), such that the insertion will create a new perimetric face that forms a hole inside an existing perimetric face, determine whether he1 will be incident to this new face.
prev1 | The first predecessor halfedge. |
prev2 | The second predecessor halfedge. |
cv | The x-monotone curve we use to connect prev1's target and prev2's target vertex. |
void Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::notify_on_boundary_vertex_creation | ( | Vertex * | , |
const X_monotone_curve_2 & | , | ||
Arr_curve_end | , | ||
Arr_parameter_space | , | ||
Arr_parameter_space | |||
) | [inline] |
Self& Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::operator= | ( | const Self & | ) | [protected] |
Reimplemented in Arr_unb_planar_topology_traits_2< GeomTraits_, Dcel_ >.
Dcel Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::m_dcel [protected] |
bool Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::own_traits [protected] |
const Traits_adaptor_2* Arr_planar_topology_traits_base_2< GeomTraits_, Dcel_ >::traits [protected] |