#pragma once #include #include "model/Field.hpp" namespace geopro::core { struct PointSet { std::vector 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