Program Listing for File Mapper.h#
↰ Return to documentation for file (src/main/cpp/lib/Mapper.h)
#ifndef MAPPER_H_
#define MAPPER_H_
class Mapper
{
private:
std::pair<double, double> m_in;
std::pair<double, double> m_out;
public:
Mapper (const std::pair<double, double>& in,
const std::pair<double, double>& out) :
m_in
{ in }, m_out
{ out }
{
}
double
map (const double& out_val) const
{
return transform (m_in, m_out, out_val);
}
double
inverse (const double& in_val) const
{
return transform (m_out, m_in, in_val);
}
private:
double
transform (const std::pair<double, double>& in,
const std::pair<double, double>& out, const double& val) const
{
return (out.second - out.first) / (in.second - in.first) * (val - in.first)
+ out.first;
}
};
#endif /* MAPPER_H_ */