The concept SegmentVoronoiDiagramTraits_2 provides the traits requirements for the Segment_Voronoi_diagram_2<Gt,DS> and Segment_Voronoi_diagram_hierarchy_2<Gt,STag,DS> classes. In particular, it provides a type Site_2, which must be a model of the concept SegmentVoronoiDiagramSite_2. It also provides constructions for sites and several function object types for the predicates.
 
Indicates or not whether the
intersecting segments are to be supported. The tag must either be
CGAL::Tag_true or CGAL::Tag_false.
 
 
A type for a site of the segment Voronoi
diagram. Must be a model of the concept
SegmentVoronoiDiagramSite_2.
 
 
A type for a point.
 
 
A type for a line. Only required if the segment
Voronoi diagram is inserted in a stream.
 
 
A type for a ray. Only required if the segment
Voronoi diagram is inserted in a stream.
 
 
A type for a segment. Only required if
if the segment Voronoi diagram is inserted in a stream.
 
 
A type for the field number type of sites, points, etc..
 
 
A type for the ring number type of sites, points, etc.
 
 
An enumeration type that indicates the
type of the arrangement of two sites. The possible values are
DISJOINT, IDENTICAL, CROSSING,
TOUCHING_1, TOUCHING_2, TOUCHING_11,
TOUCHING_12, TOUCHING_21, TOUCHING_22,
OVERLAPPING_11, OVERLAPPING_12, OVERLAPPING_21,
OVERLAPPING_22, INTERIOR, INTERIOR_1,
INTERIOR_2, TOUCHING_11_INTERIOR_1,
TOUCHING_11_INTERIOR_2, TOUCHING_12_INTERIOR_1,
TOUCHING_12_INTERIOR_2, TOUCHING_21_INTERIOR_1,
TOUCHING_21_INTERIOR_2, TOUCHING_22_INTERIOR_1,
TOUCHING_22_INTERIOR_2. A detailed description of the meaning
of these values is shown the end of the reference manual for this
concept. (to be done)
 
 
A type representing different types of objects
in two dimensions, namely: Point_2, Site_2,
Line_2, Ray_2 and Segment_2.
 
 
Must provide template <class T> bool operator() ( T& t, Object_2 o) which assigns o to t if o was
constructed from an object of type T. Returns
true, if the assignment was possible.
 
 
Must provide template <class T> Object_2 operator()( T t) that constructs an object of type
Object_2 that contains t and returns it.
 
 
A constructor for a point of the segment Voronoi diagram equidistant
from three sites. Must provide
Point_2 operator()(Site_2 s1, Site_2 s2, Site_2 s3), which
constructs a point equidistant from the sites s1, s2 and
s3.
 
 
A predicate object type. Must
provide Comparison_result operator()(Site_2 s1, Site_2 s2), which compares the $$xcoordinates of the points
represented by the sites s1 and s2. Precondition: s1 and s2 must be points.
 
 
A predicate object type. Must
provide Comparison_result operator()(Site_2 s1, Site_2 s2), which compares the $$ycoordinates of the points
represented by the sites s1 and s2. Precondition: s1 and s2 must be points.
 
 
A predicate object type. Must
provide Orientation operator()(Site_2 s1, Site_2 s2, Site_2 s3), which performs the
usual orientation test for three points.
s1, s2 and s3. Precondition: the sites s1, s2 and s3 must be points.
 
 
A predicate object type. Must provide
bool operator(Site_2 s1, Site_2 s2), which determines is the
points represented by the sites s1 and s2 are identical. Precondition: s1 and s2 must be points.
 
 
A predicate object type. Must provide
bool operator(Site_2 s1, Site_2 s2), which determines is the
segments represented by the sites s1 and s2 are
parallel. Precondition: s1 and s2 must be segments.
 
 
A predicate object type.
Must provide Oriented_side operator()(Site_2 s1, Site_2 s2, Point_2 p), which returns
the oriented side of the bisector of s1 and s2 that
contains p. Returns ON_POSITIVE_SIDE if p lies in
the halfspace of s1 (i.e., p is closer to s1 than
s2); returns ON_NEGATIVE_SIDE if p lies in the
halfspace of s2; returns ON_ORIENTED_BOUNDARY if p
lies on the bisector of s1 and s2.
 
 
A predicate object type.
Must provide Sign operator()(Site_2 s1, Site_2 s2, Site_2 s3, Site_2 q), which
returns the sign of the distance of q from the Voronoi circle
of s1, s2, s3 (the Voronoi circle of three sites
s1, s2, s3 is a circle cotangent to all three
sites, that touches them in that order as we walk on its circumference
in the counterclockwise sense). Precondition: the Voronoi circle of s1, s2, s3 must exist. Must also provide Sign operator()(Site_2 s1, Site_2 s2, Site_2 q), which returns the sign of the distance of q from the bitangent line of s1, s2 (a degenerate Voronoi circle, with its center at infinity).
 
 
A predicate object
type. Must provide bool operator()(Site_2 s1, Site_2 s2, Site_2 s3, Site_2 s4, Site_2 q, Sign sgn). The sites s1, s2,
s3 and s4 define a Voronoi edge that lies on the
bisector of s1 and s2 and has as endpoints the Voronoi
vertices defined by the triplets s1, s2, s3 and
s1, s4 and s2. The sign sgn is the common sign
of the distance of the site q from the Voronoi circle of the
triplets s1, s2, s3 and s1, s4 and
s2. In case that sgn is equal to NEGATIVE, the
predicate returns true if and only if the entire Voronoi edge is
in conflict with q. If sgn is equal to POSITIVE or
ZERO, the predicate returns false if and only if q
is not in conflict with the Voronoi edge. Precondition: the Voronoi vertices of s1, s2, s3, and s1, s4, s2 must exist. Must also provide bool operator()(Site_2 s1, Site_2 s2, Site_2 s3, Site_2 q, Sign sgn). The sites s1, s2, s3 and the site at infinity $$s_{ } define a Voronoi edge that lies on the bisector of s1 and s2 and has as endpoints the Voronoi vertices $$v_{123} and $$v_{1 2} defined by the triplets s1, s2, s3 and s1, $$s_{ } and s2 (the second vertex is actually at infinity). The sign sgn is the common sign of the distance of the site q from the two Voronoi circles centered at the Voronoi vertices $$v_{123} and $$v_{1 2}. In case that sgn is NEGATIVE, the predicate returns true if and only if the entire Voronoi edge is in conflict with q. If sgn is POSITIVE or ZERO, the predicate returns false if and only if q is not in conflict with the Voronoi edge. Precondition: the Voronoi vertex $$v_{123} of s1, s2, s3 must exist. Must finally provide bool operator()(Site_2 s1, Site_2 s2, Site_2 q, Sign sgn). The sites s1, s2 and the site at infinity $$s_{ } define a Voronoi edge that lies on the bisector of $$v_{12 } and $$v_{1 2} s1 and s2 and has as endpoints the Voronoi vertices defined by the triplets s1, s2, $$s_{ } and s1, $$s_{ } and s2 (both vertices are actually at infinity). The sign sgn denotes the common sign of the distance of the site q from the Voronoi circles centered at $$v_{12 } and $$v_{1 2}. If sgn is NEGATIVE, the predicate returns true if and only if the entire Voronoi edge is in conflict with q. If POSITIVE or ZERO is false, the predicate returns false if and only if q is not in conflict with the Voronoi edge.
 
 
A predicate
object type. Must provide bool operator()(Site_2 s1, Site_2 s2, Site_2 s3, Site_2 q, Sign sgn). The
sites $$s_{ }, s1, s2 and s3 define a
Voronoi edge that lies on the bisector of $$s_{ } and s1
and has as endpoints the Voronoi vertices $$v_{ 12} and
$$v_{ 31} defined by the triplets
$$s_{ }, s1, s2 and $$s_{ }, s3 and
s1. The sign sgn is the common sign of the distances of
q from the Voronoi circles centered at the the vertices
$$v_{ 12} and $$v_{ 31}. If sgn is NEGATIVE,
the predicate returns true if and only if the entire Voronoi
edge is in conflict with q. If sgn is POSITIVE or
ZERO, the predicate returns false if and only if q
is not in conflict with the Voronoi edge.
 
 
A predicate object type. Must provide
Oriented_side operator(Site_1 s1, Site_2 s2, Site_2 s3, Site_2 s, Site_2 p). Determines the oriented side of the line $$ ,
that passes through the Voronoi vertex of the sites s1,
s2, s3 and is perpendicular to the segment site s,
that contains the point site p. Precondition: s must be a segment and p must be a point.
 
 
A predicate object type. Must
provide Arrangement_type operator()(Site_2 s1, Site_2 s2) that
returns the type of the arrangement of the two sites s1 and
s2.


 
 



CGAL::Segment_Voronoi_diagram_traits_2<K,MTag>
CGAL::Segment_Voronoi_diagram_traits_without_intersections_2<K,MTag>
CGAL::Segment_Voronoi_diagram_filtered_traits_2<CK,CM,EK,EM,FK,FM>
CGAL::Segment_Voronoi_diagram_filtered_traits_without_intersections_2<CK,CM,EK,EM,FK,FM>