Kernel::CompareYAtX_2

A model for this must provide:

Comparison_result fo.operator() ( Kernel::Point_2 p, Kernel::Line_2 h)
compares the y-coordinates of p and the vertical projection of p on h, see (d) in the figure below.
 Precondition: h is not vertical.

Comparison_result fo.operator() ( Kernel::Point_2 p, Kernel::Line_2 h1, Kernel::Line_2 h2)
This function compares the y-coordinates of the vertical projection of p on h1 and on h2, see (e) in the figure below.
 Precondition: h1 and h2 are not vertical.

Comparison_result fo.operator() ( Kernel::Line_2 l1, Kernel::Line_2 l2, Kernel::Line_2 h)
Let p be the intersection of lines l1 and l2. This function compares the y-coordinates of p and the vertical projection of p on h, see (f) in the figure below.
 Precondition: l1, l2 intersect and h is not vertical.

Comparison_result fo.operator() ( Kernel::Line_2 l1, Kernel::Line_2 l2, Kernel::Line_2 h1, Kernel::Line_2 h2)
Let p be the intersection of lines l1 and l2. This function compares the y-coordinates of the vertical projection of p on h1 and on h2, see (g) in the figure below.
 Precondition: l1 and l2 intersect; h1 and h2 are not vertical.

Comparison_result fo.operator() ( Kernel::Point_2 p, Kernel::Segment_2 s)
compares the y-coordinates of p and the vertical projection of p on s. If s is vertical, then return EQUAL when p lies on s, SMALLER when p lies under s, and LARGER otherwise.
 Precondition: p is within the x range of s.

Comparison_result fo.operator() ( Kernel::Point_2 p, Kernel::Segment_2 s1, Kernel::Segment_2 s2)
This function compares the y-coordinates of the vertical projection of p on s1 and on s2. If s1 or s2 is vertical, then return EQUAL if they intersect, otherwise return SMALLER if s1 lies below s2, and return LARGER otherwise.
 Precondition: p is within the x range of s1 and s2.