Requirements of a traits class to be used with the function optimal_convex_partition_2 that computes an optimal convex partition of a polygon.
In addition to the types listed with the concept PartitionTraits_2, the following types are required:
OptimalConvexPartitionTraits_2::Segment_2 | |
A segment type
| |
OptimalConvexPartitionTraits_2::Ray_2 | |
A ray type
| |
OptimalConvexPartitionTraits_2::Object_2 | |
A general object type that can be either a point or a segment
| |
OptimalConvexPartitionTraits_2::Construct_segment_2 | |
Function object type that provides
Segment_2 operator()(Point_2 p, Point_2 q), which constructs and
returns the segment defined by the points p and q.
| |
OptimalConvexPartitionTraits_2::Construct_ray_2 | |
Function object type that provides
Ray_2 operator()(Point_2 p, Point_2 q), which constructs and returns
the ray from point p through point q.
| |
OptimalConvexPartitionTraits_2::Collinear_are_ordered_along_line_2 | |
Predicate object type that
determines orderings of Point_2s on a line. Must provide
bool operator()(Point_2 p, Point_2 q, Point_2 r) that
returns true, iff q lies between p
and r and p, q, and r satisfy the precondition
that they are collinear.
| |
OptimalConvexPartitionTraits_2::Are_stritcly_ordered_along_line_2 | |
Predicate object type that
determines orderings of Point_2s. Must provide
bool operator()(Point_2 p, Point_2 q, Point_2 r) that
returns true, iff the three points are collinear and
q lies strictly between p
and r. Note that false should be returned if
q==p or q==r.
| |
OptimalConvexPartitionTraits_2::Intersect_2 | |
Function object type that provides
Object_2 operator()(Segment_2 s1, Segment_2 s2) that returns
the intersection of two segments (which may be either a segment or
a point).
| |
OptimalConvexPartitionTraits_2::Assign_2 | |
Function object type that provides
bool operator()(Segment_2 s1, Object_2 o) that returns
true if o is a segment and assigns the value of o
to s1; returns false otherwise.
|
Only a copy constructor is required.
OptimalConvexPartitionTraits_2 traits ( & tr); |
In addition to the functions required by PartitionTraits_2, the following functions that create instances of the above function object types must exist:
CGAL::convex_partition_is_valid_2
CGAL::Partition_is_valid_traits_2<Traits, PolygonIsValid>