\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.12 - 2D Polygon Partitioning
OptimalConvexPartitionTraits_2 Concept Reference

Definition

Requirements of a traits class to be used with the function optimal_convex_partition_2() that computes an optimal convex partition of a polygon.

Refines:
PartitionTraits_2
Has Models:
CGAL::Partition_traits_2<R>
See also
CGAL::convex_partition_is_valid_2()
CGAL::Partition_is_valid_traits_2<Traits, PolygonIsValid>

Types

In addition to the types listed with the concept PartitionTraits_2, the following types are required:

typedef unspecified_type Segment_2
 A segment type.
 
typedef unspecified_type Ray_2
 A ray type.
 
typedef unspecified_type Object_2
 A general object type that can be either a point or a segment.
 
typedef unspecified_type 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\).
 
typedef unspecified_type 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\).
 
typedef unspecified_type Collinear_are_ordered_along_line_2
 Predicate object type that determines orderings of Point_2 's on a line. More...
 
typedef unspecified_type Are_stritcly_ordered_along_line_2
 Predicate object type that determines orderings of Point_2 's. More...
 
typedef unspecified_type 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).
 
typedef unspecified_type 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.
 

Creation

Only a copy constructor is required.

 OptimalConvexPartitionTraits_2 (OptimalConvexPartitionTraits_2 tr)
 

Operations

In addition to the functions required by PartitionTraits_2, the following functions that create instances of the above function object types must exist:

Collinear_are_ordered_along_line_2 collinear_are_ordered_along_line_2_object () const
 
Construct_segment_2 construct_segment_2_object () const
 
Construct_ray_2 construct_ray_2_object () const
 
Are_strictly_ordered_along_line_2 are_strictly_ordered_along_line_2_object () const
 

Member Typedef Documentation

◆ Are_stritcly_ordered_along_line_2

Predicate object type that determines orderings of Point_2 's.

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.

◆ Collinear_are_ordered_along_line_2

Predicate object type that determines orderings of Point_2 's 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.