NimbRo ROS Soccer Package
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Interpolator.hpp
1 // Created on: June 9, 2016
2 // Author: Hafez Farazi <farazi@ais.uni-bonn.de>
3 
4 #pragma once
5 #include <math.h>
6 
7 class Interpolator
8 {
9 private:
10  double lowX;
11  double highX;
12  double queryX;
13 public:
14 
15  inline Interpolator(double lowX, double highX, double queryX = 0) :
16  lowX(lowX), highX(highX), queryX(queryX)
17  {
18 
19  }
20 
21  inline double Interpolate(double lowX, double lowY, double highX,
22  double highY, double queryX)
23  {
24  return (lowY + (highY - lowY) * (queryX - lowX) / (highX - lowX));
25  }
26 
27  inline double Interpolate(double lowY, double highY, double queryX)
28  {
29  return Interpolate(lowX, lowY, highX, highY, queryX);
30  }
31 
32  inline double Interpolate(double lowY, double highY)
33  {
34  return Interpolate(lowX, lowY, highX, highY, queryX);
35  }
36 
37  inline virtual ~Interpolator()
38  {
39 
40  }
41 };