BWAPI
Public Types | Public Member Functions | Protected Types
Arr_basic_insertion_sl_visitor< Helper_ > Class Template Reference

#include <Arr_basic_insertion_sl_visitor.h>

Inheritance diagram for Arr_basic_insertion_sl_visitor< Helper_ >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef Helper_ Helper
typedef Helper::Traits_2 Traits_2
typedef Helper::Arrangement_2 Arrangement_2
typedef Helper::Parent_visitor Base
typedef Helper::Event Event
typedef Helper::Subcurve Subcurve
typedef
Traits_2::X_monotone_curve_2 
X_monotone_curve_2
typedef Traits_2::Point_2 Point_2

Public Member Functions

 Arr_basic_insertion_sl_visitor (Arrangement_2 *arr)
virtual Halfedge_handle insert_in_face_interior (const X_monotone_curve_2 &cv, Subcurve *sc)
virtual Halfedge_handle insert_from_left_vertex (const X_monotone_curve_2 &cv, Halfedge_handle he, Subcurve *sc)
virtual Halfedge_handle insert_from_right_vertex (const X_monotone_curve_2 &cv, Halfedge_handle prev, Subcurve *sc)
virtual Halfedge_handle insert_at_vertices (const X_monotone_curve_2 &cv, Halfedge_handle prev1, Halfedge_handle prev2, Subcurve *sc, bool &new_face_created)
virtual Vertex_handle insert_isolated_vertex (const Point_2 &pt, Status_line_iterator iter)
Sweep-line notifications.
void before_sweep ()
void before_handle_event (Event *event)
void add_subcurve (const X_monotone_curve_2 &cv, Subcurve *sc)
void update_event ()
void update_event (Event *, const Point_2 &, const X_monotone_curve_2 &, Arr_curve_end, bool)
void update_event (Event *, const X_monotone_curve_2 &, Arr_curve_end, bool)
void update_event (Event *, Subcurve *, Subcurve *, bool)
void update_event (Event *, Subcurve *)
void update_event (Event *e, const Point_2 &pt, bool)
Edge-split functions (to be overridden by the child visitor).
virtual bool is_split_event (Subcurve *, Event *)
virtual Halfedge_handle split_edge (Halfedge_handle, Subcurve *, const Point_2 &)

Protected Types

typedef Base::Status_line_iterator Status_line_iterator
typedef Base::Vertex_handle Vertex_handle
typedef Base::Halfedge_handle Halfedge_handle
typedef Base::Face_handle Face_handle
typedef
Base::Event_subcurve_iterator 
Event_subcurve_iterator
typedef
Base::Event_subcurve_reverse_iterator 
Event_subcurve_reverse_iterator

Protected Member Functions

Auxiliary functions.
Halfedge_handle _insert_in_face_interior (const X_monotone_curve_2 &cv, Subcurve *sc)
Halfedge_handle _insert_from_left_vertex (const X_monotone_curve_2 &cv, Halfedge_handle he, Subcurve *sc)
Halfedge_handle _insert_from_right_vertex (const X_monotone_curve_2 &cv, Halfedge_handle he, Subcurve *sc)
Halfedge_handle _insert_at_vertices (const X_monotone_curve_2 &cv, Halfedge_handle hhandle, Halfedge_handle prev, Subcurve *sc, bool &new_face_created)
Face_handle _ray_shoot_up (Subcurve *sc)

Detailed Description

template<class Helper_>
class Arr_basic_insertion_sl_visitor< Helper_ >

Definition of the Arr_basic_insertion_sl_visitor class-template.

A sweep-line visitor for inserting new curves into an existing arrangement embedded on a surface, where these curves are interior-disjoint from all existing arrangement edges and vertices (so no intersections occur).


Member Typedef Documentation

template<class Helper_>
typedef Helper::Arrangement_2 Arr_basic_insertion_sl_visitor< Helper_ >::Arrangement_2
template<class Helper_>
typedef Helper::Parent_visitor Arr_basic_insertion_sl_visitor< Helper_ >::Base
template<class Helper_>
typedef Helper::Event Arr_basic_insertion_sl_visitor< Helper_ >::Event
template<class Helper_>
typedef Base::Event_subcurve_iterator Arr_basic_insertion_sl_visitor< Helper_ >::Event_subcurve_iterator [protected]
template<class Helper_>
typedef Base::Event_subcurve_reverse_iterator Arr_basic_insertion_sl_visitor< Helper_ >::Event_subcurve_reverse_iterator [protected]
template<class Helper_>
typedef Base::Face_handle Arr_basic_insertion_sl_visitor< Helper_ >::Face_handle [protected]
template<class Helper_>
typedef Base::Halfedge_handle Arr_basic_insertion_sl_visitor< Helper_ >::Halfedge_handle [protected]
template<class Helper_>
typedef Helper_ Arr_basic_insertion_sl_visitor< Helper_ >::Helper
template<class Helper_>
typedef Traits_2::Point_2 Arr_basic_insertion_sl_visitor< Helper_ >::Point_2
template<class Helper_>
typedef Base::Status_line_iterator Arr_basic_insertion_sl_visitor< Helper_ >::Status_line_iterator [protected]
template<class Helper_>
typedef Helper::Subcurve Arr_basic_insertion_sl_visitor< Helper_ >::Subcurve
template<class Helper_>
typedef Helper::Traits_2 Arr_basic_insertion_sl_visitor< Helper_ >::Traits_2
template<class Helper_>
typedef Base::Vertex_handle Arr_basic_insertion_sl_visitor< Helper_ >::Vertex_handle [protected]
template<class Helper_>
typedef Traits_2::X_monotone_curve_2 Arr_basic_insertion_sl_visitor< Helper_ >::X_monotone_curve_2

Constructor & Destructor Documentation

template<class Helper_>
Arr_basic_insertion_sl_visitor< Helper_ >::Arr_basic_insertion_sl_visitor ( Arrangement_2 arr) [inline]

Constructor.


Member Function Documentation

template<class Hlpr >
Arr_basic_insertion_sl_visitor< Hlpr >::Halfedge_handle Arr_basic_insertion_sl_visitor< Hlpr >::_insert_at_vertices ( const X_monotone_curve_2 cv,
Halfedge_handle  hhandle,
Halfedge_handle  prev,
Subcurve sc,
bool &  new_face_created 
) [protected]

Perform the actual insertion.

Perform the actual insertion.

Perform the actual insertion.

template<class Hlpr >
Arr_basic_insertion_sl_visitor< Hlpr >::Halfedge_handle Arr_basic_insertion_sl_visitor< Hlpr >::_insert_in_face_interior ( const X_monotone_curve_2 cv,
Subcurve sc 
) [protected]

Perform the actual insertion.

template<class Hlpr >
Arr_basic_insertion_sl_visitor< Hlpr >::Face_handle Arr_basic_insertion_sl_visitor< Hlpr >::_ray_shoot_up ( Subcurve sc) [protected]

Locate the face containing the current object in its interior.

template<class Hlpr >
void Arr_basic_insertion_sl_visitor< Hlpr >::add_subcurve ( const X_monotone_curve_2 cv,
Subcurve sc 
)

A notification invoked when a new subcurve is created.

Here is the call graph for this function:

template<class Hlpr >
void Arr_basic_insertion_sl_visitor< Hlpr >::before_handle_event ( Event event)

A notification invoked before the sweep-line starts handling the given event.

template<class Hlpr >
void Arr_basic_insertion_sl_visitor< Hlpr >::before_sweep ( )
template<class Hlpr >
Arr_basic_insertion_sl_visitor< Hlpr >::Halfedge_handle Arr_basic_insertion_sl_visitor< Hlpr >::insert_at_vertices ( const X_monotone_curve_2 cv,
Halfedge_handle  prev1,
Halfedge_handle  prev2,
Subcurve sc,
bool &  new_face_created 
) [virtual]

Insert the given subcurve given its two end-vertices.

Parameters:
cvThe geometric subcurve.
prev1The predecessor halfedge around the left vertex.
prev2The predecessor halfedge around the right vertex.
scThe sweep-line subcurve information.
new_face_createdOutput: Whether a new face has been created.
Returns:
A handle to the inserted halfedge.

Insert the given subcurve given its left end-vertex.

Parameters:
cvThe geometric entity.
prevThe predecessor halfedge around the left vertex.
scThe sweep-line subcurve information.
Returns:
A handle to the inserted halfedge.

Insert the given subcurve given its right end-vertex.

Parameters:
cvThe geometric entity.
prevThe predecessor halfedge around the right vertex.
scThe sweep-line subcurve information.
Returns:
A handle to the inserted halfedge.
template<class Hlpr >
Arr_basic_insertion_sl_visitor< Hlpr >::Halfedge_handle Arr_basic_insertion_sl_visitor< Hlpr >::insert_in_face_interior ( const X_monotone_curve_2 cv,
Subcurve sc 
) [virtual]

Insert the given subcurve in the interior of a face.

Parameters:
cvThe geometric subcurve.
scThe sweep-line subcurve information.
Returns:
A handle to the inserted halfedge.
template<class Hlpr >
Arr_basic_insertion_sl_visitor< Hlpr >::Vertex_handle Arr_basic_insertion_sl_visitor< Hlpr >::insert_isolated_vertex ( const Point_2 pt,
Status_line_iterator  iter 
) [virtual]

Insert an isolated vertex into the arrangement.

Parameters:
ptThe point associated with the vertex.
iterThe location of the corresponding event in the status line.
Returns:
A handle to the inserted vertex.

Here is the call graph for this function:

template<class Helper_>
virtual bool Arr_basic_insertion_sl_visitor< Helper_ >::is_split_event ( Subcurve ,
Event  
) [inline, virtual]

Check if the halfedge associated with the given subcurve will be split at the given event.

Reimplemented in Arr_insertion_sl_visitor< Helper_ >.

template<class Helper_>
virtual Halfedge_handle Arr_basic_insertion_sl_visitor< Helper_ >::split_edge ( Halfedge_handle  ,
Subcurve ,
const Point_2  
) [inline, virtual]

Split an edge (does nothing here, as there are no intersections).

Reimplemented in Arr_insertion_sl_visitor< Helper_ >.

template<class Helper_>
void Arr_basic_insertion_sl_visitor< Helper_ >::update_event ( ) [inline]

Update the event information.

template<class Helper_>
void Arr_basic_insertion_sl_visitor< Helper_ >::update_event ( Event ,
const Point_2 ,
const X_monotone_curve_2 ,
Arr_curve_end  ,
bool   
) [inline]
template<class Helper_>
void Arr_basic_insertion_sl_visitor< Helper_ >::update_event ( Event ,
const X_monotone_curve_2 ,
Arr_curve_end  ,
bool   
) [inline]
template<class Helper_>
void Arr_basic_insertion_sl_visitor< Helper_ >::update_event ( Event ,
Subcurve ,
Subcurve ,
bool   
) [inline]
template<class Helper_>
void Arr_basic_insertion_sl_visitor< Helper_ >::update_event ( Event ,
Subcurve  
) [inline]
template<class Helper_>
void Arr_basic_insertion_sl_visitor< Helper_ >::update_event ( Event e,
const Point_2 pt,
bool   
) [inline]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines