Add Kernel_23::Compare_squared_radius_2

This commit is contained in:
Mael Rouxel-Labbé
2025-04-20 15:00:24 +02:00
parent ed337e9429
commit 7b2c8b40e1
6 changed files with 143 additions and 25 deletions
@@ -656,6 +656,42 @@ public:
}
};
template <typename K>
class Compare_squared_radius_2
{
typedef typename K::Comparison_result Comparison_result;
typedef typename K::Point_2 Point_2;
typedef typename K::FT FT;
public:
Comparison_result
operator()(const Point_2& p, const Point_2& q, const Point_2& r, const FT& ft) const
{
FT num, den;
squared_radiusC2(p.x(), p.y(),
q.x(), q.y(),
r.x(), r.y(),
num, den);
return CGAL::compare(num, den * ft);
}
Comparison_result
operator()(const Point_2& p, const Point_2& q, const FT& ft) const
{
FT num, den;
squared_radiusC2(p.x(), p.y(),
q.x(), q.y(),
num, den);
return CGAL::compare(num, den * ft);
}
Comparison_result
operator()(const Point_2&, const FT& ft) const
{
return - CGAL_NTS sign(ft);
}
};
template <typename K>
class Compare_squared_radius_3
{
@@ -1178,11 +1214,24 @@ public:
FT
operator()( const Point_2& p, const Point_2& q) const
{ return squared_radiusC2(p.x(), p.y(), q.x(), q.y()); }
{
FT num, den;
squared_radiusC2(p.x(), p.y(),
q.x(), q.y(),
num, den);
return num / den;
}
FT
operator()( const Point_2& p, const Point_2& q, const Point_2& r) const
{ return squared_radiusC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y()); }
{
FT num, den;
squared_radiusC2(p.x(), p.y(),
q.x(), q.y(),
r.x(), r.y(),
num, den);
return num / den;
}
};
} //namespace CartesianKernelFunctors