added missing signatures for compare_x_on_boundary

This commit is contained in:
Eric Berberich 2011-05-30 13:54:58 +00:00
parent 1b134e3230
commit fc13a07b26
1 changed files with 94 additions and 19 deletions

View File

@ -89,18 +89,20 @@ protected:
typedef CGAL::internal::Arr_bottom_top_implementation_dispatch<
Arr_bottom_side_category, Arr_top_side_category > BT;
typedef typename BT::Parameter_space_in_y_2_curve_end_tag Psy_2_curve_end_tag;
typedef typename BT::Parameter_space_in_y_2_curve_tag Psy_2_curve_tag;
typedef typename BT::Parameter_space_in_y_2_point_tag Psy_2_point_tag;
typedef typename BT::Is_on_x_identification_2_curve_tag Ioxi_2_curve_tag;
typedef typename BT::Is_on_x_identification_2_point_tag Ioxi_2_point_tag;
typedef typename BT::Parameter_space_in_y_2_curve_end_tag Psy_2_curve_end_tag;
typedef typename BT::Parameter_space_in_y_2_curve_tag Psy_2_curve_tag;
typedef typename BT::Parameter_space_in_y_2_point_tag Psy_2_point_tag;
typedef typename BT::Is_on_x_identification_2_curve_tag Ioxi_2_curve_tag;
typedef typename BT::Is_on_x_identification_2_point_tag Ioxi_2_point_tag;
typedef typename BT::Compare_x_at_limit_2_point_curve_end_tag Cmp_x_al_2_point_curve_end_tag;
typedef typename BT::Compare_x_at_limit_2_curve_ends_tag Cmp_x_al_2_curve_ends_tag;
typedef typename BT::Compare_x_near_limit_2_curve_ends_tag Cmp_x_nl_2_curve_ends_tag;
typedef typename BT::Compare_x_at_limit_2_point_curve_end_tag Cmp_x_al_2_point_curve_end_tag;
typedef typename BT::Compare_x_at_limit_2_curve_ends_tag Cmp_x_al_2_curve_ends_tag;
typedef typename BT::Compare_x_near_limit_2_curve_ends_tag Cmp_x_nl_2_curve_ends_tag;
typedef typename BT::Compare_x_on_boundary_2_points_tag Cmp_x_ob_2_points_tag;
typedef typename BT::Compare_x_near_boundary_2_curve_ends_tag Cmp_x_nb_2_curve_ends_tag;
typedef typename BT::Compare_x_on_boundary_2_points_tag Cmp_x_ob_2_points_tag;
typedef typename BT::Compare_x_on_boundary_2_point_curve_end_tag Cmp_x_ob_2_point_curve_end_tag;
typedef typename BT::Compare_x_on_boundary_2_curve_ends_tag Cmp_x_ob_2_curve_ends_tag;
typedef typename BT::Compare_x_near_boundary_2_curve_ends_tag Cmp_x_nb_2_curve_ends_tag;
public:
@ -1074,8 +1076,7 @@ public:
friend class Arr_traits_basic_adaptor_2<Base>;
public:
/*! Compare the x-coordinate of two given points that lie on horizontal
* boundaries
/*! Compare the x-coordinate of two given points projected onto the horizontal boundaries
* \param p1 the first point.
* \param p2 the second point.
*/
@ -1084,6 +1085,30 @@ public:
return comp_x_on_bnd (p1, p2, Cmp_x_ob_2_points_tag());
}
/*! Compare the x-coordinate of a point and a curve-end projected onto the horizontal
* boundaries
* \param pt the point.
* \param xcv the curve
* \param ce the curve-end
*/
Comparison_result operator()(const Point_2 & pt, const X_monotone_curve_2 & xcv, Arr_curve_end ce) const
{
return comp_x_on_bnd (pt, xcv, ce, Cmp_x_ob_2_point_curve_end_tag());
}
/*! Compare the x-coordinates of two curve-ends projected onto the horizontal
* boundaries
* \param xcv1 the curve
* \param ce1 the curve-end
* \param xcv2 the curve
* \param ce2 the curve-end
*/
Comparison_result operator()(const X_monotone_curve_2 & xcv1, Arr_curve_end ce1,
const X_monotone_curve_2 & xcv2, Arr_curve_end ce2) const
{
return comp_x_on_bnd (xcv1, ce1, xcv2, ce2, Cmp_x_ob_2_curve_ends_tag());
}
private:
Comparison_result comp_x_on_bnd (const Point_2 & p1, const Point_2 & p2,
Arr_use_traits_tag) const
@ -1097,6 +1122,36 @@ public:
CGAL_error();
return SMALLER;
}
Comparison_result comp_x_on_bnd (const Point_2 & pt, const X_monotone_curve_2 & xcv, Arr_curve_end ce,
Arr_use_traits_tag) const
{
return m_base->compare_x_on_boundary_2_object ()(pt, xcv, ce);
}
Comparison_result comp_x_on_bnd (const Point_2 &, const X_monotone_curve_2 & xcv, Arr_curve_end ce,
Arr_use_dummy_tag) const
{
CGAL_error();
return SMALLER;
}
Comparison_result comp_x_on_bnd (const X_monotone_curve_2 & xcv1, Arr_curve_end ce1,
const X_monotone_curve_2 & xcv2, Arr_curve_end ce2,
Arr_use_traits_tag) const
{
return m_base->compare_x_on_boundary_2_object ()(xcv1, ce1, xcv2, ce2);
}
Comparison_result comp_x_on_bnd (const X_monotone_curve_2 & xcv1, Arr_curve_end ce1,
const X_monotone_curve_2 & xcv2, Arr_curve_end ce2,
Arr_use_dummy_tag) const
{
CGAL_error();
return SMALLER;
}
};
/*! Obtain a Compare_x_on_boundary_2 function object. */
@ -1304,15 +1359,13 @@ public:
friend class Arr_traits_basic_adaptor_2<Base>;
protected:
// for open
Comparison_result _compare_point_curve_end(const Point_2 & pt,
const X_monotone_curve_2 & xcv,
Arr_curve_end ce,
Arr_open_side_tag) const
Comparison_result _compare_point_curve_end_with_asymptote(const Point_2 & pt,
const X_monotone_curve_2 & xcv,
Arr_curve_end ce) const
{
Comparison_result res =
m_base->compare_x_at_limit_2_object()(pt, xcv, ce);
m_base->compare_x_on_boundary_2_object()(pt, xcv, ce);
if (res != EQUAL || m_base->is_vertical_2_object()(xcv)) {
return res;
@ -1325,6 +1378,28 @@ public:
return res;
}
// for contraction
Comparison_result _compare_point_curve_end(const Point_2 & pt,
const X_monotone_curve_2 & xcv,
Arr_curve_end ce,
Arr_contracted_side_tag) const
{
return _compare_point_curve_end_with_asymptote(pt, xcv, ce);
}
// for open
Comparison_result _compare_point_curve_end(const Point_2 & pt,
const X_monotone_curve_2 & xcv,
Arr_curve_end ce,
Arr_open_side_tag) const
{
return _compare_point_curve_end_with_asymptote(pt, xcv, ce);
}
// for non-open
Comparison_result _compare_point_curve_end(const Point_2 & pt,