The concept SegmentVoronoiDiagramStorageSite_2 provides the requirements for the storage sites of a segment Voronoi diagram. The storage sites are sites that are used to store the information of a site in a more compact form (that uses less storage). This is achieved by storing handles to points instead of points.
 
The site type.

 
 The type for a handle to a point. 
In addition to the default and copy constructors, the following static methods should be available for constructing sites:
 
 
Constructs a storage site from a point handle. The storage site represents the point associated with the point handle hp.  
 
 
Constructs a storage site from two point handles. The storage site represents the segment the endpoints of which are the points associated with the point handles hp1 and hp2.  
 
 
Constructs a storage site from four point handles. The storage site represents the point of intersection of the segments the endpoints of which are the points associated with the point handles hp1, hp2 and hq1 and hq2, respectively.  
 
 
Constructs a site from four point handles and a boolean. The storage site represents a segment. If b is true, the first endpoint of the segment is the point associated with the handle hp1 and the second endpoint is the point of intersection of the segments the endpoints of which are the point associated with the point handles hp1, hp2 and hq1, hq2, respectively. If b is false, the first endpoint of the represented segment is the one mentioned above, whereas the second endpoint if the point associated with the point handle hp2.  
 
 
Constructs a storage site from six point handles. The storage site represents of segment the endpoints of which are points of intersection of two pairs of segments, the endpoints of which are hp1, hp2/hq1, hq2 and hp1, hp2/hr1, hr2, respectively. 

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

 Returns true if the storage site represents a point. 

 Returns true if the storage site represents a segment. 

 Returns true if the storage 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 corresponding site is an input
point. Returns false if the ith endpoint of the
corresponding site is the intersection of two segments. Precondition: i must be at most $$1, and ss.is_segment() must be true. 
 
 
Returns a storage site object representing the segment
that supports the segment represented by the storage site.
The returned storage site represents a site, both endpoints
of which are input points. Precondition: ss.is_segment() must be true.  
 

Returns a storage site that represents the first endpoint of the
represented segment. Precondition: ss.is_segment() must be true.  
 

Returns a storage site that represents the second endpoint of the
represented segment. Precondition: ss.is_segment() must be true.  
 
 
Returns a storage site object representing the ith
segment that supports the point of intersection represented
by the storage site.
The returned storage site represents a site, both endpoints
of which are input points. Precondition: i must be at most $$1, ss.is_point() must be true and ss.is_input() must be false.  
 
 
Returns a storage site object representing the ith
segment that supports the $$ith endpoint of the site
which is not the supporting segment of the site.
The returned storage site represents a site, both endpoints
of which are input points. Precondition: i must be at most $$1, ss.is_segment() must be true and ss.is_input(i) must be false.  

 Returns the site represented by the storage site. 


Returns a handle associated with
the represented point. Precondition: is_point() and is_input() must both be true. 

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

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

 
Returns a handle to 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 a handle to 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 a handle to 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 a handle to 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. 