added missing signatures

This commit is contained in:
Eric Berberich 2011-05-30 14:50:10 +00:00
parent 3d36ca2423
commit 07db04d3cf
5 changed files with 122 additions and 11 deletions

View File

@ -76,7 +76,9 @@ public:
COMPARE_X_AT_LIMIT_POINT_CURVE_END_OP,
COMPARE_X_AT_LIMIT_CURVE_ENDS_OP,
COMPARE_X_NEAR_LIMIT_OP,
COMPARE_X_ON_BOUNDARY_OP,
COMPARE_X_ON_BOUNDARY_POINTS_OP,
COMPARE_X_ON_BOUNDARY_POINT_CURVE_END_OP,
COMPARE_X_ON_BOUNDARY_CURVE_ENDS_OP,
COMPARE_X_NEAR_BOUNDARY_OP,
NUMBER_OF_OPERATIONS
@ -204,8 +206,14 @@ public:
unsigned int count_compare_x_near_limit() const
{ return m_counters[COMPARE_X_NEAR_LIMIT_OP]; }
unsigned int count_compare_x_on_boundary() const
{ return m_counters[COMPARE_X_ON_BOUNDARY_OP]; }
unsigned int count_compare_x_on_boundary_points() const
{ return m_counters[COMPARE_X_ON_BOUNDARY_POINTS_OP]; }
unsigned int count_compare_x_on_boundary_point_curve_end() const
{ return m_counters[COMPARE_X_ON_BOUNDARY_POINT_CURVE_END_OP]; }
unsigned int count_compare_x_on_boundary_curve_ends() const
{ return m_counters[COMPARE_X_ON_BOUNDARY_CURVE_ENDS_OP]; }
unsigned int count_compare_x_near_boundary() const
{ return m_counters[COMPARE_X_NEAR_BOUNDARY_OP]; }
@ -756,19 +764,35 @@ public:
class Compare_x_on_boundary_2 {
private:
typename Base::Compare_x_on_boundary_2 m_object;
unsigned int & m_counter;
unsigned int & m_counter1;
unsigned int & m_counter2;
unsigned int & m_counter3;
public:
/*! Construct */
Compare_x_on_boundary_2(const Base * base, unsigned int & counter) :
Compare_x_on_boundary_2(const Base * base,
unsigned int & counter1, unsigned int & counter2, unsigned int & counter3 ) :
m_object(base->compare_x_on_boundary_2_object()),
m_counter(counter)
m_counter1(counter1),
m_counter2(counter2),
m_counter3(counter3),
{}
/*! Operate */
Comparison_result operator()(const Point_2 & p1,
const Point_2 & p2) const
{ ++m_counter; return m_object(p1, p2); }
{ ++m_counter1; return m_object(p1, p2); }
/*! Operate */
Comparison_result operator()(const Point_2 & pt,
const X_monotone_curve_2 & xcv, Arr_curve_end ce) const
{ ++m_counter2; return m_object(pt, xcv, ce); }
/*! Operate */
Comparison_result operator()(const X_monotone_curve_2 & xcv1, Arr_curve_end ce1,
const X_monotone_curve_2 & xcv2, Arr_curve_end ce2) const
{ ++m_counter3; return m_object(xcv1, ce1, xcv2, ce2); }
};
/*! A functor that compares the x-coordinates of curve ends near the
@ -903,8 +927,11 @@ public:
{ return Compare_x_near_limit_2(this, m_counters[COMPARE_X_NEAR_LIMIT_OP]); }
Compare_x_on_boundary_2 compare_x_on_boundary_2_object() const
{ return Compare_x_on_boundary_2(this, m_counters[COMPARE_X_ON_BOUNDARY_OP]); }
{ return Compare_x_on_boundary_2(this,
m_counters[COMPARE_X_ON_BOUNDARY_POINTS_OP],
m_counters[COMPARE_X_ON_BOUNDARY_POINT_CURVE_END_OP],
m_counters[COMPARE_X_ON_BOUNDARY_CURVE_ENDS_OP]); }
Compare_x_near_boundary_2 compare_x_near_boundary_2_object() const
{ return Compare_x_near_boundary_2(this, m_counters[COMPARE_X_NEAR_BOUNDARY_OP]); }
@ -1006,8 +1033,12 @@ Out_stream & operator<<(Out_stream & os,
<< traits.count_compare_x_at_limit_curve_ends() << std::endl
<< "# of COMPARE_X_NEAR_LIMIT operation = "
<< traits.count_compare_x_near_limit() << std::endl
<< "# of COMPARE_X_ON_BOUNDARY operation = "
<< traits.count_compare_x_on_boundary() << std::endl
<< "# of COMPARE_X_ON_BOUNDARY points operation = "
<< traits.count_compare_x_on_boundary_points() << std::endl
<< "# of COMPARE_X_ON_BOUNDARY point/curve-end operation = "
<< traits.count_compare_x_on_boundary_point_curve_end() << std::endl
<< "# of COMPARE_X_ON_BOUNDARY curve-ends operation = "
<< traits.count_compare_x_on_boundary_curve_ends() << std::endl
<< "# of COMPARE_X_NEAR_BOUNDARY operation = "
<< traits.count_compare_x_near_boundary() << std::endl

View File

@ -639,6 +639,16 @@ public:
{
return m_base->compare_x_on_boundary_2_object()(p1.base(), p2.base());
}
Comparison_result operator() (const Point_2 & pt,
const X_monotone_curve_2& xcv, Arr_curve_end ce) const
{
return m_base->compare_x_on_boundary_2_object()(pt.base(), xcv.base(), ce);
}
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 m_base->compare_x_on_boundary_2_object()(xcv1.base(), ce1, xcv2.base(), ce2);
}
};
/*! Obtain a Compare_y_on_boundary_2 functor object. */

View File

@ -1092,6 +1092,45 @@ public:
std::cout << " result: " << cr << std::endl;
return cr;
}
/*! Operate
* \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
{
if (!m_enabled) return m_object(pt, xcv, ce);
std::cout << "compare_x_on_boundary" << std::endl
<< " pt: " << pt << std::endl
<< " xcv: " << xcv << std::endl
<< " ce: " << ce << std::endl;
Comparison_result cr = m_object(pt, xcv, ce);
std::cout << " result: " << cr << std::endl;
return cr;
}
/*! Operate
* \param xcv1 the first curve.
* \param ce1 the first curve-end
* \param xcv2 the second curve.
* \param ce2 the second 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
{
if (!m_enabled) return m_object(xcv2, ce1, xcv2, ce2);
std::cout << "compare_x_on_boundary" << std::endl
<< "xcv1: " << xcv1 << std::endl
<< " ce1: " << ce1 << std::endl
<< "xcv2: " << xcv2 << std::endl
<< " ce2: " << ce2 << std::endl;
Comparison_result cr = m_object(xcv1, ce1, xcv2, ce2);
std::cout << " result: " << cr << std::endl;
return cr;
}
};
/*! A functor that compares the x-coordinates of curve ends near the

View File

@ -951,6 +951,24 @@ public:
return m_base->compare_x_on_boundary_2_object()(p1.base(), p2.base());
}
/*! Use tag dispatching to avoid compilation errors in case the functor
* is not defined
*/
Comparison_result operator() (const Point_2 & pt,
const X_monotone_curve_2& xcv, Arr_curve_end ce) const
{
return m_base->compare_x_on_boundary_2_object()(pt.base(), xcv.base(), ce);
}
/*! Use tag dispatching to avoid compilation errors in case the functor
* is not defined
*/
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 m_base->compare_x_on_boundary_2_object()(xcv1.base(), ce1, xcv2.base(), ce2);
}
};
/*! Obtain a Compare_x_on_boundary_2 object

View File

@ -1312,6 +1312,19 @@ public:
{
return m_base->compare_x_on_boundary_2_object()(pt1.base(), pt2.base());
}
Comparison_result operator() (const Point_2 & pt,
const X_monotone_curve_2& xcv, Arr_curve_end ce) const
{
return m_base->compare_x_on_boundary_2_object()(pt.base(), xcv.base(), ce);
}
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 m_base->compare_x_on_boundary_2_object()(xcv1.base(), ce1, xcv2.base(), ce2);
}
};
/*! Obtain a Compare_x_on_boundary_2 functor. */