Fix floorMultiple/ceilMultiple for float

This commit is contained in:
Sebastian Rettenberger 2015-09-23 12:03:15 +02:00 committed by Christophe Riccio
parent 8f39bb8730
commit 6789d897d2

View File

@ -104,10 +104,7 @@ namespace detail
GLM_FUNC_QUALIFIER static genType call(genType Source, genType Multiple) GLM_FUNC_QUALIFIER static genType call(genType Source, genType Multiple)
{ {
if(Source > genType(0)) if(Source > genType(0))
{ return Source + (Multiple - std::fmod(Source, Multiple));
genType Tmp = Source - genType(1);
return Tmp + (Multiple - std::fmod(Tmp, Multiple));
}
else else
return Source + std::fmod(-Source, Multiple); return Source + std::fmod(-Source, Multiple);
} }
@ -152,10 +149,7 @@ namespace detail
if(Source >= genType(0)) if(Source >= genType(0))
return Source - std::fmod(Source, Multiple); return Source - std::fmod(Source, Multiple);
else else
{ return Source - std::fmod(Source, Multiple) - Multiple;
genType Tmp = Source + genType(1);
return Tmp - std::fmod(Tmp, Multiple) - Multiple;
}
} }
}; };