Program Listing for File InterpolationModel.hpp
↰ Return to documentation for file (src/navtk/utils/InterpolationModel.hpp)
#pragma once
#include <memory>
#include <typeinfo>
#include <navtk/tensors.hpp>
#include <navtk/utils/Ordered.hpp>
namespace navtk {
namespace utils {
class InterpolationModel {
public:
virtual ~InterpolationModel() = default;
InterpolationModel() = delete;
InterpolationModel(const InterpolationModel &) = delete;
InterpolationModel &operator=(const InterpolationModel &) = delete;
InterpolationModel(InterpolationModel &&) = delete;
InterpolationModel &operator=(InterpolationModel &&) = delete;
virtual double y_at(double x_interp) = 0;
protected:
InterpolationModel(const std::vector<double> &x, const std::vector<double> &y) : x(x), y(y){};
std::vector<double> x;
std::vector<double> y;
NearestNeighbors<std::vector<double>::const_iterator, std::less<double>> nn;
};
} // namespace utils
} // namespace navtk