mirror of https://github.com/CGAL/cgal
more functors
This commit is contained in:
parent
faaefd9994
commit
7d8c8f68bf
|
|
@ -125,13 +125,36 @@ public:
|
||||||
Bbox_3,
|
Bbox_3,
|
||||||
Bbox<Dimension_tag<dimension>,double>>>;
|
Bbox<Dimension_tag<dimension>,double>>>;
|
||||||
|
|
||||||
using Construct_bbox = std::conditional_t<(dimension == 2) || (dimension == 3),
|
using Construct_bbox = std::conditional_t<(dimension == 2),
|
||||||
typename iKernel::Construct_bbox,
|
typename iKernel::Construct_bbox_2,
|
||||||
typename iKernel::Construct_bbox_d>;
|
std::conditional_t<(dimension == 3),
|
||||||
|
typename iKernel::Construct_bbox_3,
|
||||||
|
typename iKernel::Construct_bbox_d>>;
|
||||||
|
|
||||||
|
using Squared_distance = std::conditional_t<(dimension == 2),
|
||||||
|
typename iKernel::Compute_squared_distance_2,
|
||||||
|
std::conditional_t<(dimension == 3),
|
||||||
|
typename iKernel::Compute_squared_distance_3,
|
||||||
|
typename iKernel::Squared_distance_d>>;
|
||||||
|
|
||||||
|
using Difference_of_points = std::conditional_t<(dimension == 2),
|
||||||
|
typename iKernel::Construct_vector_2,
|
||||||
|
std::conditional_t<(dimension == 3),
|
||||||
|
typename iKernel::Construct_vector_3,
|
||||||
|
typename iKernel::Difference_of_points_d>>;
|
||||||
|
|
||||||
|
using Scaled_vector = std::conditional_t<(dimension == 2),
|
||||||
|
typename iKernel::Construct_scaled_vector_2,
|
||||||
|
std::conditional_t<(dimension == 3),
|
||||||
|
typename iKernel::Construct_scaled_vector_3,
|
||||||
|
typename iKernel::Scaled_vector_d>>;
|
||||||
|
|
||||||
|
using Translated_point = std::conditional_t<(dimension == 2),
|
||||||
|
typename iKernel::Construct_translated_point_2,
|
||||||
|
std::conditional_t<(dimension == 3),
|
||||||
|
typename iKernel::Construct_translated_point_3,
|
||||||
|
typename iKernel::Translated_point_d>>;
|
||||||
|
|
||||||
using Squared_distance = std::conditional_t<(dimension == 2) || (dimension == 3),
|
|
||||||
typename iKernel::Compute_squared_distance,
|
|
||||||
typename iKernel::Squared_distance_d>;
|
|
||||||
using PointID = ID<Point>;
|
using PointID = ID<Point>;
|
||||||
using Points = std::vector<Point>;
|
using Points = std::vector<Point>;
|
||||||
using InputPoints = std::vector<typename T::Point>;
|
using InputPoints = std::vector<typename T::Point>;
|
||||||
|
|
@ -267,9 +290,12 @@ public:
|
||||||
if (pt.getFraction()==0) {
|
if (pt.getFraction()==0) {
|
||||||
return points[pt.getPoint()];
|
return points[pt.getPoint()];
|
||||||
}
|
}
|
||||||
|
Difference_of_points difference;
|
||||||
|
Scaled_vector scale;
|
||||||
|
Translated_point translate;
|
||||||
auto fraction = pt.getFraction().approx;
|
auto fraction = pt.getFraction().approx;
|
||||||
return points[pt.getPoint()] +
|
return translate(points[pt.getPoint()] ,
|
||||||
(fraction * (points[pt.getPoint() + 1] - points[pt.getPoint()]));
|
scale(difference(points[pt.getPoint() + 1], points[pt.getPoint()]), fraction));
|
||||||
}
|
}
|
||||||
|
|
||||||
Point interpolate_at(PointID const& pt) const { return points[pt]; }
|
Point interpolate_at(PointID const& pt) const { return points[pt]; }
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,17 @@ struct Cartesian_base_d : public CGAL_BASE
|
||||||
{
|
{
|
||||||
typedef void Point_2;
|
typedef void Point_2;
|
||||||
typedef void Point_3;
|
typedef void Point_3;
|
||||||
typedef void Construct_bbox;
|
typedef void Construct_bbox_2;
|
||||||
typedef void Compute_squared_distance;
|
typedef void Construct_bbox_3;
|
||||||
|
typedef void Compute_squared_distance_2;
|
||||||
|
typedef void Compute_squared_distance_3;
|
||||||
|
typedef void Construct_vector_2;
|
||||||
|
typedef void Construct_vector_3;
|
||||||
|
typedef void Construct_translated_point_2;
|
||||||
|
typedef void Construct_translated_point_3;
|
||||||
|
typedef void Construct_scaled_vector_2;
|
||||||
|
typedef void Construct_scaled_vector_3;
|
||||||
|
|
||||||
typedef FT_ FT;
|
typedef FT_ FT;
|
||||||
constexpr Cartesian_base_d(){}
|
constexpr Cartesian_base_d(){}
|
||||||
constexpr Cartesian_base_d(int d):CGAL_BASE(d){}
|
constexpr Cartesian_base_d(int d):CGAL_BASE(d){}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue