37#ifndef SPATIAL_INTERPOLATION_H
38#define SPATIAL_INTERPOLATION_H
51 Point2D(
double x_ = 0,
double y_ = 0) :
x(x_),
y(y_)
59 std::vector<Point2D>
pts;
68 return (dim == 0) ?
pts[idx].x :
pts[idx].y;
90 std::vector<double>
const& values,
100 void Interpolate(std::vector<Point2D>
const& query_points,
101 std::vector<double>& results)
const;
123 std::vector<double>
const& values,
133 std::vector<double>
const& values_x,
134 std::vector<double>
const& values_y,
135 int k_neighbors = 12,
141 void Interpolate(std::vector<Point2D>
const& query_points,
142 std::vector<double>& results_x,
143 std::vector<double>& results_y)
const;
156 void InterpolatePoint(
double x,
double y,
double& result_x,
double& result_y,
157 std::vector<unsigned int>& indices,
158 std::vector<double>& sq_dists)
const;
~DualSpatialInterpolator()
void Interpolate(std::vector< Point2D > const &query_points, std::vector< double > &results_x, std::vector< double > &results_y) const
void InterpolatePoint(double x, double y, double &result_x, double &result_y, std::vector< unsigned int > &indices, std::vector< double > &sq_dists) const
std::vector< double > m_values_y
DualSpatialInterpolator(std::vector< Point2D > const &points, std::vector< double > const &values_x, std::vector< double > const &values_y, int k_neighbors=12, double power=2.0)
static constexpr double EPSILON
std::vector< double > m_values_x
std::vector< double > m_values
static constexpr double EPSILON
SpatialInterpolator(std::vector< Point2D > const &points, std::vector< double > const &values, int k_neighbors=12, double power=2.0)
double Interpolate(double x, double y) const
KDTree const * GetKDTree() const
friend class DualSpatialInterpolator
PointCloud const & GetPointCloud() const
nanoflann::KDTreeSingleIndexAdaptor< nanoflann::L2_Simple_Adaptor< double, PointCloud >, PointCloud, 2 > KDTree
Point2D(double x_=0, double y_=0)
size_t kdtree_get_point_count() const
bool kdtree_get_bbox(BBOX &) const
double kdtree_get_pt(size_t const idx, size_t const dim) const
std::vector< Point2D > pts