private float clerpFunction(float start, float end, float value)
{
float min = 0.0f;
float max = 360.0f;
float half = Mathf.Abs((max - min) / 2.0f);
float retval = 0.0f;
float diff = 0.0f;
if ((end - start) < -half){
diff = ((max - start) + end) * value;
retval = start + diff;
}else if ((end - start) > half){
diff = -((max - end) + start) * value;
retval = start + diff;
}else retval = start + (end - start) * value;
return retval;
}