Concept

PartitionTraits_2

Definition

The polygon partitioning functions are each parameterized by a traits class that defines the primitives used in the algorithms. Many requirements are common to all traits classes. The concept PartitionTraits_2 defines this common set of requirements.

Types

PartitionTraits_2::Point_2
The point type on which the partitioning algorithm operates.


PartitionTraits_2::Polygon_2
The polygon type to be created by the partitioning algorithm. For testing the validity postcondition of the partition, this type should provide a nested type Vertex_const_iterator that is the type of the iterator over the polygon vertices and member functions Vertex_const_iterator vertices_begin() and Vertex_const_iterator vertices_end().

PartitionTraits_2::Less_xy_2
Predicate object type that compares 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 the x and y coordinates of point p, respectively.


PartitionTraits_2::Less_yx_2
Same as Less_xy_2 with the roles of x and y interchanged.


PartitionTraits_2::Left_turn_2
Predicate object type that provides 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.


PartitionTraits_2::Orientation_2
Predicate object type that provides CGAL::Orientation operator()(Point_2 p, Point_2 q, Point_2 r) that returns CGAL::LEFT_TURN, if r lies to the left of the oriented line l defined by p and q, returns CGAL::RIGHT_TURN if r lies to the right of l, and returns CGAL::COLLINEAR if r lies on l.


PartitionTraits_2::Compare_y_2
Predicate object type that provides CGAL::Comparision_result operator()(Point_2 p, Point_2 q) to compare the y values of two points. The operator must return CGAL::SMALLER if py < qy, CGAL::LARGER if py > qy and CGAL::EQUAL if py = qy.


PartitionTraits_2::Compare_x_2
The same as Compare_y_2, except that x coordinates are compared instead of y.

Creation

A copy constructor and default constructor are required.

PartitionTraits_2 traits;

PartitionTraits_2 traits ( & tr);

Operations

The following functions that create instances of the above predicate object types must exist.

Less_yx_2 traits.less_yx_2_object ()

Less_xy_2 traits.less_xy_2_object ()

Left_turn_2 traits.left_turn_2_object ()

Orientation_2 traits.orientation_2_object ()

Compare_y_2 traits.compare_y_2_object ()

Compare_x_2 traits.compare_x_2_object ()

Has Models

CGAL::Partition_traits_2<R>

See Also

CGAL::approx_convex_partition_2
CGAL::greene_approx_convex_partition_2
CGAL::optimal_convex_partition_2
CGAL::y_monotone_partition_2