geopro/src/core/algo/IInterpolator.hpp

22 lines
567 B
C++

#pragma once
#include <vector>
#include "model/Field.hpp"
namespace geopro::core {
struct PointSet { std::vector<double> x, y, z, v; };
struct GridSpec {
int nx, ny, nz;
double ox, oy, oz; // 原点
double dx, dy, dz; // 步长
double power; // IDW 幂
double maxDist; // 超过则 blank(NaN),约束插值域(设计 §10)
};
class IInterpolator {
public:
virtual ~IInterpolator() = default;
virtual ScalarVolume interpolate(const PointSet& pts, const GridSpec& spec) const = 0;
};
} // namespace geopro::core