Preston Ernst
/
mirror_actuator_VT
-data logging revision
Diff: Lib_Misc/LinearCharacteristics.cpp
- Revision:
- 0:d2e117716219
diff -r 000000000000 -r d2e117716219 Lib_Misc/LinearCharacteristics.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lib_Misc/LinearCharacteristics.cpp Sun May 02 19:32:30 2021 +0000 @@ -0,0 +1,52 @@ +#include "LinearCharacteristics.h" + +using namespace std; + +LinearCharacteristics::LinearCharacteristics(float gain,float offset){ // standard lin characteristics + this->gain = gain; + this->offset = offset; + this->ulim = 999999.0; + this->llim = -999999.0; +} + +LinearCharacteristics::LinearCharacteristics(float xmin,float xmax, float ymin, float ymax){ // standard lin characteristics + this->gain = (ymax - ymin)/(xmax - xmin); + this->offset = xmax - ymax/this->gain; + this->ulim = 999999.0; + this->llim = -999999.0; + +} +LinearCharacteristics::LinearCharacteristics(float xmin,float xmax, float ymin, float ymax,float ll, float ul){ // standard lin characteristics + this->gain = (ymax - ymin)/(xmax - xmin); + this->offset = xmax - ymax/this->gain; + this->llim = ll; + this->ulim = ul; + +} + +LinearCharacteristics::~LinearCharacteristics() {} + + +float LinearCharacteristics::evaluate(float x) +{ +float dum = this->gain*(x - this->offset); +if(dum > this->ulim) + dum = this->ulim; +if(dum < this->llim) + dum = this->llim; +return dum; + } + +void LinearCharacteristics::setup(float xmin,float xmax, float ymin, float ymax){ // standard lin characteristics + this->gain = (ymax - ymin)/(xmax - xmin); + this->offset = xmax - ymax/this->gain; + this->ulim = 999999.0; + this->llim = -999999.0; +} +void LinearCharacteristics::setup(float xmin,float xmax, float ymin, float ymax,float ll, float ul){ // standard lin characteristics + this->gain = (ymax - ymin)/(xmax - xmin); + this->offset = xmax - ymax/this->gain; + this->llim = ll; + this->ulim = ul; +} +