All convex hull and extreme point algorithms provided in Cgal are parameterized with a traits class Traits, which defines the primitives (objects and predicates) that the convex hull algorithms use. ConvexHullTraits_2 defines the complete set of primitives required in these functions. The specific subset of these primitives required by each function is specified with each function.
| |
The point type on which the convex hull functions operate.
| |
| |
Binary predicate object type comparing Point_2s. Must provide
bool operator()(Point_2 p, Point_2 q) where true
is returned iff p ==xy q, false otherwise.
| |
| |
Binary predicate object type comparing Point_2s
lexicographically. Must provide
bool operator()(Point_2 p, Point_2 q) where true
is returned iff p <xy q.
We have p<xyq, iff px < qx or px = qx and py < qy,
where px and py denote x and y coordinate of point p,
respectively.
| |
| |
Same as Less_xy_2 with the roles of x and y interchanged.
| |
| |
Predicate object type that must provide
bool operator()(Point_2 p,Point_2 q,Point_2 r), which
returns true iff r lies to the left of the
oriented line through p and q.
| |
| |
Predicate object type that must provide
bool operator()(Point_2 p, Point_2 q, Point_2 r,Point_2 s), which returns true iff
the signed distance from r to the line lpq through p and q
is smaller than the distance from s to lpq. It is used to
compute the point right of a line with maximum unsigned distance to
the line. The predicate must provide a total order compatible
with convexity, i.e., for any line segment s one of the
endpoints
of s is the smallest point among the points on s, with respect to
the order given by Less_signed_distance_to_line_2.
| |
| |
Predicate object type that must provide
bool operator()(Point_2 e, Point_2 p,Point_2 q),
where true is returned iff a tangent at e to the point set
{e,p,q} hits p before q when rotated counterclockwise around
e.
Ties are broken such that the point with larger distance to e
is smaller!
|
Only a copy constructor is required.
|
The following member functions to create instances of the above predicate object types must exist.
|
|
|
|
|
|
|
|
|
|
| |
|
| |
|
|
CGAL::Convex_hull_constructive_traits_2<R>
CGAL::Convex_hull_projective_xy_traits_2<Point_3>
CGAL::Convex_hull_projective_xz_traits_2<Point_3>
CGAL::Convex_hull_projective_yz_traits_2<Point_3>
CGAL::Convex_hull_traits_2<R>