A model of the concept SweepLineTraits_2 aggregates the geometric types and primitive operations used by the Sweep_line_2<CurveInputIterator,SweepLineTraits_2> data structure.
The geometric types defined below must have a default constructor, copy constructor, and assignment operator.
 
A type that holds an $$xmonotone curve in
the plane.
 
 
A type that holds the position of a vertex in
the plane. The type of the end points of X_monotone_curve_2 curves.
 
 
A type that holds a general curve in the plane.
Its endpoints must be of type Point_2.
Curves of type either X_monotone_curve_2 or Curve_2 can be
inserted into a Planar_map_with_intersections_2<Dcel,Traits> object.


 
compares the xcoordinates of $$p0 and $$p1. Returns LARGER if $$x(p0) > x(p1); SMALLER if $$x(p0) < x(p1); EQUAL otherwise.  

 
compares the two points $$p0 and $$p1 lexigoraphically. First the $$xcoordinates are compared. In case of a tie, the $$ycoordinates are compared. Returns LARGER if $$x(p1) > x(p2), or if $$x(p1) = x(p2) and $$y(p1) > y(p2); SMALLER if $$x(p1) < x(p2), or if $$x(p1) = x(p2) and $$y(p1) < y(p2); EQUAL otherwise.  

 
returns true if cv is a vertical segment, false otherwise.  

 
returns true if pnt is in the $$x range of cv, false otherwise.  

 
compares the $$ycoordinate of $$cv1 and $$cv2 at the $$xcoordinate
of $$pnt. Returns LARGER if $$cv1(x(q)) > cv2(x(q));
SMALLER if $$cv1(x(q)) < cv2(x(q)); EQUAL
otherwise. Precondition: $$cv1 and $$cv2 are defined at $$pnt's $$xcoordinate. Precondition: $$cv1 or $$cv2 contain $$pnt.  

 
compares the $$ycoordinate of $$cv1 and $$cv2 immediately to the
right of the $$xcoordinate of $$pnt. Precondition: $$cv1 and $$cv2 meet at $$pnt $$xcoordinate. Precondition: $$cv1 and $$cv2 are defined to the right of $$pnt's $$xcoordinate.  

 
compares the $$ycoordinates of $$pnt and the vertical projection of
$$pnt on $$cv. Returns SMALLER if $$y(p) < cv(x(p));
LARGER if $$y(p) > cv(x(p));
EQUAL otherwise (p is on the curve). Precondition: $$cv is defined at $$pnt's $$xcoordinate.  

 
returns true if cv1 and cv2 have the same graph, false otherwise.  

 
returns true if p1 is the same as p2, false otherwise.  

 
returns true if cv1 and cv2 overlap in a onedimensional subcurve (i.e., non countable and non infinite number of points), false. otherwise.  

 
returns the source of cv.  

 
returns the target of cv.  
 

 
cuts cv into $$xmonotone subcurves and stores them in a sequence starting at res. The order in which they are stored defines their order in the hierarchy tree. Returns pasttheend iterator of the sequence.  

 
splits $$cv at split_pt into two curves, and assigns them to
c1 and c2 respectively. Precondition: split_pt is on cv but is not one of its endpoint.  

 
finds the nearest intersection point (or points) of c1 and c2 lexicographically to the right of pt not including pt itself, (with one exception explained below). If the intersection of c1 and c2 is an X_monotone_curve_2, that is, they overlap at infinitely many points, then if the right endpoint and the left endpoint of the overlapping subcurve are strictly to the right of pt, they are returned through the two point references p1 and p2 respectively. If pt is between the overlappingsubcurve endpoints, or pt is its left endpoint, pt and the right endpoint of the subcurve are returned through p1 and p2 respectively. If the intersection of the two curves is a point to the right of pt, it is returned through p1 and p2. Returns true if c1 and c2 do intersect to the right of pt, false otherwise. 
Note that the concept ArrangementTraits_2 is a refinement of the concept SweepLineTraits_2 so each model of the former is a model of the latter.