Skip to content

Instantly share code, notes, and snippets.

@mimetaur
Created April 12, 2014 09:34
Show Gist options
  • Select an option

  • Save mimetaur/10526983 to your computer and use it in GitHub Desktop.

Select an option

Save mimetaur/10526983 to your computer and use it in GitHub Desktop.
Example Map function (TODO port to GLSL)
//check for division by zero???
//--------------------------------------------------
float ofMap(float value, float inputMin, float inputMax, float outputMin, float outputMax, bool clamp) {
if (fabs(inputMin - inputMax) < FLT_EPSILON){
ofLogWarning("ofMath") << "ofMap(): avoiding possible divide by zero, check inputMin and inputMax: " << inputMin << " " << inputMax;
return outputMin;
} else {
float outVal = ((value - inputMin) / (inputMax - inputMin) * (outputMax - outputMin) + outputMin);
if( clamp ){
if(outputMax < outputMin){
if( outVal < outputMax )outVal = outputMax;
else if( outVal > outputMin )outVal = outputMin;
}else{
if( outVal > outputMax )outVal = outputMax;
else if( outVal < outputMin )outVal = outputMin;
}
}
return outVal;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment