Add missing filtered periodic predicates

How did things even work before...
This commit is contained in:
Mael Rouxel-Labbé 2025-03-18 12:05:17 +01:00
parent 7bc1bbd842
commit 3a1e3d83c8
2 changed files with 71 additions and 1 deletions

View File

@ -105,6 +105,18 @@ public:
Offset_converter_3<C2E>, Offset_converter_3<C2E>,
Offset_converter_3<C2F> > Compare_weighted_squared_radius_3; Offset_converter_3<C2F> > Compare_weighted_squared_radius_3;
typedef Filtered_predicate<
typename Exact_traits::Compare_squared_distance_3,
typename Filtering_traits::Compare_squared_distance_3,
Offset_converter_3<C2E>,
Offset_converter_3<C2F> > Compare_squared_distance_3;
typedef Filtered_predicate<
typename Exact_traits::Power_side_of_bounded_power_sphere_3,
typename Filtering_traits::Power_side_of_bounded_power_sphere_3,
Offset_converter_3<C2E>,
Offset_converter_3<C2F> > Power_side_of_bounded_power_sphere_3;
Coplanar_orientation_3 coplanar_orientation_3_object() const Coplanar_orientation_3 coplanar_orientation_3_object() const
{ {
typename Exact_traits::Coplanar_orientation_3 pe = regular_traits_e.coplanar_orientation_3_object(); typename Exact_traits::Coplanar_orientation_3 pe = regular_traits_e.coplanar_orientation_3_object();
@ -137,6 +149,22 @@ public:
return Compare_weighted_squared_radius_3(pe, pf); return Compare_weighted_squared_radius_3(pe, pf);
} }
Compare_squared_distance_3 compare_squared_distance_3_object() const
{
typename Exact_traits::Compare_squared_distance_3 pe = regular_traits_e.compare_squared_distance_3_object();
typename Filtering_traits::Compare_squared_distance_3 pf = regular_traits_f.compare_squared_distance_3_object();
return Compare_squared_distance_3(pe, pf);
}
Power_side_of_bounded_power_sphere_3 power_side_of_bounded_power_sphere_3_object() const
{
typename Exact_traits::Power_side_of_bounded_power_sphere_3 pe = regular_traits_e.power_side_of_bounded_power_sphere_3_object();
typename Filtering_traits::Power_side_of_bounded_power_sphere_3 pf = regular_traits_f.power_side_of_bounded_power_sphere_3_object();
return Power_side_of_bounded_power_sphere_3(pe, pf);
}
protected: protected:
Exact_traits regular_traits_e; Exact_traits regular_traits_e;
Filtering_traits regular_traits_f; Filtering_traits regular_traits_f;

View File

@ -52,7 +52,7 @@ struct Offset_converter_3
using Base::operator(); using Base::operator();
Target_off const Target_off&
operator()(const Source_off &off) const operator()(const Source_off &off) const
{ {
return off; return off;
@ -106,6 +106,24 @@ public:
traits_f.set_domain(C2F()(domain)); traits_f.set_domain(C2F()(domain));
} }
typedef Filtered_predicate<
typename Exact_traits::Compare_x_3,
typename Filtering_traits::Compare_x_3,
Offset_converter_3<C2E>,
Offset_converter_3<C2F> > Compare_x_3;
typedef Filtered_predicate<
typename Exact_traits::Compare_y_3,
typename Filtering_traits::Compare_y_3,
Offset_converter_3<C2E>,
Offset_converter_3<C2F> > Compare_y_3;
typedef Filtered_predicate<
typename Exact_traits::Compare_z_3,
typename Filtering_traits::Compare_z_3,
Offset_converter_3<C2E>,
Offset_converter_3<C2F> > Compare_z_3;
typedef Filtered_predicate< typedef Filtered_predicate<
typename Exact_traits::Compare_xyz_3, typename Exact_traits::Compare_xyz_3,
typename Filtering_traits::Compare_xyz_3, typename Filtering_traits::Compare_xyz_3,
@ -118,6 +136,30 @@ public:
Offset_converter_3<C2E>, Offset_converter_3<C2E>,
Offset_converter_3<C2F> > Orientation_3; Offset_converter_3<C2F> > Orientation_3;
Compare_x_3 compare_x_3_object() const
{
typename Exact_traits::Compare_x_3 pe = traits_e.compare_x_3_object();
typename Filtering_traits::Compare_x_3 pf = traits_f.compare_x_3_object();
return Compare_x_3(pe, pf);
}
Compare_y_3 compare_y_3_object() const
{
typename Exact_traits::Compare_y_3 pe = traits_e.compare_y_3_object();
typename Filtering_traits::Compare_y_3 pf = traits_f.compare_y_3_object();
return Compare_y_3(pe, pf);
}
Compare_z_3 compare_z_3_object() const
{
typename Exact_traits::Compare_z_3 pe = traits_e.compare_z_3_object();
typename Filtering_traits::Compare_z_3 pf = traits_f.compare_z_3_object();
return Compare_z_3(pe, pf);
}
Compare_xyz_3 compare_xyz_3_object() const Compare_xyz_3 compare_xyz_3_object() const
{ {
typename Exact_traits::Compare_xyz_3 pe = traits_e.compare_xyz_3_object(); typename Exact_traits::Compare_xyz_3 pe = traits_e.compare_xyz_3_object();