The concept SegmentVoronoiDiagramSite_2 provides the requirements for the sites of a segment Voronoi diagram.
 
The point type.
 
 
The segment type.
 
 
The field number type.
 
 
The ring number type.

In addition to the default and copy constructors the following static methods are available for constructing sites:
 
 
Constructs a site from a point: the site represents the point p.  
 
 
Constructs a site from two points: the site represents the (open) segment (p1,p2).  
 
 
Constructs a site from four points: the site represents the point of intersection of the segments (p1,p2) and (q1,q2).  
 
 
Constructs a site from four points and a boolean: the site represents a segment. If b is true the endpoints are p1 and $$p_{ × }, otherwise $$p_{ × } and p2. $$p_{ × } is the point of intersection of the segments (p1,p2),(q1,q2).  
 
 
Constructs a site from six points: the site represents the segment with endpoints the points of intersection of the pairs of segments (p1,p2),(q1,q2) and (p1,p2),(r1,r2). 

 Returns true if the site represents a valid point or segment. 

 Returns true if the site represents a point. 

 Returns true if the site represents a segment. 

 Returns true if the site represents an input point or a segment defined by two input points. Returns false if it represents a point of intersection of two segments, or if it represents a segment, at least one endpoint of which is a point of intersection of two segments. 

 
Returns true if the
ith endpoint of the site is an input point. Returns false
if the ith endpoint of the site is the intersection of two
segments. Precondition: i must be at most $$1, and s.is_segment() must be true. 


Returns the point represented by the
site s. Precondition: s.is_point() must be true. 


Returns the segment represented
by the site s. Precondition: s.is_segment() must be true. 


Returns the source endpoint of the
segment. Note that this method can construct an inexact point if the
number type used is inexact. Precondition: s.is_segment() must be true. 


Returns the target endpoint of the
segment. Note that this method can construct an inexact point if the
number type used is inexact. Precondition: s.is_segment() must be true. 
 
 
Returns a segment site object representing the segment
that supports the segment represented by the site. Both
endpoints of the returned site are input points. Precondition: s.is_segment() must be true.  
 
 
Returns a segment site object representing the ith
segment that supports the point of intersection represented
by the site. Both endpoints of the returned site are input
points. Precondition: i must be at most $$1, s.is_point() must be true and s.is_input() must be false.  
 
 
Returns a segment site object representing the ith
segment that supports the $$ith endpoint of the site
which is not the supporting segment of the site. Both
endpoints of the returned site are input points. Precondition: i must be at most $$1, s.is_segment() must be true and s.is_input(i) must be false.  
 

Returns a point site object representing the source point of
the site. Precondition: s.is_segment() must be true.  
 

Returns a point site object representing the target point of
the site. Precondition: s.is_segment() must be true.  

 
Returns the source point of the supporting site of the this site. Precondition: is_segment() must be true.  

 
Returns the target point of the supporting site of the this site. Precondition: is_segment() must be true.  

 
Returns the source point of the ith supporting site of the
this site. Precondition: is_point() must be true, is_input() must be false and i must either be 0 or 1.  

 
Returns the target point of the ith supporting site of the
this site. Precondition: is_point() must be true, is_input() must be false and i must either be 0 or 1.  

 
Returns the source point of the ith crossing site of the
this site. Precondition: is_segment() must be true, is_input(i) must be false and i must either be 0 or 1.  

 
Returns the target point of the ith supporting site of the
this site. Precondition: is_segment() must be true, is_input(i) must be false and i must either be 0 or 1. 