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