2014-11-02 17:24:21 +01:00
|
|
|
//
|
|
|
|
// FILE: FastMap.h
|
|
|
|
// AUTHOR: Rob Tillaart
|
2014-11-02 22:20:21 +01:00
|
|
|
// VERSION: 0.1.05
|
2014-11-02 17:24:21 +01:00
|
|
|
// PURPOSE: class implementation of map function - library for Arduino
|
|
|
|
// URL: http://forum.arduino.cc/index.php?topic=276194
|
|
|
|
//
|
|
|
|
// HISTORY:
|
2014-11-02 22:20:21 +01:00
|
|
|
// see FastMap.cpp file
|
2014-11-02 17:24:21 +01:00
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef FastMap_h
|
|
|
|
#define FastMap_h
|
|
|
|
|
|
|
|
#if ARDUINO < 100
|
|
|
|
#include <WProgram.h>
|
|
|
|
#else
|
|
|
|
#include <Arduino.h>
|
|
|
|
#endif
|
|
|
|
|
2014-11-02 22:20:21 +01:00
|
|
|
#define FASTMAP_LIB_VERSION (F("0.1.05"))
|
2014-11-02 17:24:21 +01:00
|
|
|
|
|
|
|
class FastMap
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
void init(float in_min, float in_max, float out_min, float out_max);
|
|
|
|
|
|
|
|
float inline map(float value) { return _base + value * _factor; }
|
2014-11-02 22:20:21 +01:00
|
|
|
float inline back(float value) { return _backbase + value * _backfactor; }
|
|
|
|
|
2014-11-02 17:24:21 +01:00
|
|
|
float constrainedMap(float value);
|
|
|
|
float lowerConstrainedMap(float value);
|
|
|
|
float upperConstrainedMap(float value);
|
|
|
|
|
|
|
|
private:
|
|
|
|
float _in_min, _in_max, _out_min, _out_max;
|
|
|
|
float _factor, _base;
|
2014-11-02 22:20:21 +01:00
|
|
|
float _backfactor, _backbase;
|
2014-11-02 17:24:21 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
//
|
|
|
|
// END OF FILE
|
|
|
|
//
|