22 lines
567 B
C++
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
|