## YMonotonePartitionTraits_2

### Definition

Requirements of a traits class to be used with the function y_monotone_partition_2.

### Generalizes

PartitionTraits_2

### Types

In addition to the types defined for the concept PartitionTraits_2, the following types are also required:

YMonotonePartitionTraits_2::Line_2

YMonotonePartitionTraits_2::Compare_x_at_y_2
| Predicate object type that provides CGAL::Comparision_result operator()(Point_2 p, Line_2 h) to compare the x coordinate of p and the horizontal projection of p on h.
YMonotonePartitionTraits_2::Construct_line_2
| Function object type that provides Line_2 operator()(Point_2 p, Point_2 q), which constructs and returns the line defined by the points p and q.
YMonotonePartitionTraits_2::Is_horizontal_2
| Function object type that provides bool operator()(Line_2 l), which returns true iff the line l is horizontal.

### Creation

A copy constructor and default constructor are required.

YMonotonePartitionTraits_2 traits;

YMonotonePartitionTraits_2 traits ( YMonotonePartitionTraits tr);

### Operations

In addition to the functions required for the concept PartitionTraits_2, the following functions that create instances of the above function object types must exist.

Construct_line_2 | traits.construct_line_2_object ()
Compare_x_at_y_2 | traits.compare_x_at_y_2_object ()
Is_horizontal_2 | traits.is_horizontal_2_object ()

### Has Models

CGAL::Partition_traits_2<R>