Made use of constexpr keyword

Former-commit-id: 79bc50ffaa21947dacd18578a34f6be65285821b
This commit is contained in:
Lynix 2014-04-02 01:02:47 +02:00
parent 485b35684d
commit 7196d8399f
3 changed files with 12 additions and 7 deletions

View File

@ -21,9 +21,9 @@
#endif
template<typename T> T NzApproach(T value, T objective, T increment);
template<typename T> T NzClamp(T value, T min, T max);
template<typename T> T NzDegrees(T degrees);
template<typename T> T NzDegreeToRadian(T degrees);
template<typename T> constexpr T NzClamp(T value, T min, T max);
template<typename T> constexpr T NzDegrees(T degrees);
template<typename T> constexpr T NzDegreeToRadian(T degrees);
template<typename T> T NzMultiplyAdd(T x, T y, T z);
unsigned int NzIntegralPow(unsigned int base, unsigned int exponent);
unsigned int NzGetNearestPowerOfTwo(unsigned int number);

View File

@ -15,6 +15,7 @@
template<typename T>
T NzApproach(T value, T objective, T increment)
{
///TODO: Marquer comme constexpr en C++14
if (value < objective)
return std::min(value + increment, objective);
else if (value > objective)
@ -24,13 +25,13 @@ T NzApproach(T value, T objective, T increment)
}
template<typename T>
T NzClamp(T value, T min, T max)
constexpr T NzClamp(T value, T min, T max)
{
return std::max(std::min(value, max), min);
}
template<typename T>
T NzDegrees(T degrees)
constexpr T NzDegrees(T degrees)
{
#if NAZARA_MATH_ANGLE_RADIAN
return NzDegreeToRadian(degrees);
@ -40,7 +41,7 @@ T NzDegrees(T degrees)
}
template<typename T>
T NzDegreeToRadian(T degrees)
constexpr T NzDegreeToRadian(T degrees)
{
return degrees * F(M_PI/180.0);
}
@ -77,6 +78,7 @@ inline long double NzMultiplyAdd(long double x, long double y, long double z)
inline unsigned int NzIntegralPow(unsigned int base, unsigned int exponent)
{
///TODO: Marquer comme constexpr en C++14
unsigned int r = 1;
for (unsigned int i = 0; i < exponent; ++i)
r *= base;
@ -86,6 +88,7 @@ inline unsigned int NzIntegralPow(unsigned int base, unsigned int exponent)
inline unsigned int NzGetNearestPowerOfTwo(unsigned int number)
{
///TODO: Marquer comme constexpr en C++14
unsigned int x = 1;
// Tant que x est plus petit que n, on décale ses bits vers la gauche, ce qui revient à multiplier par deux
while(x <= number)
@ -96,6 +99,7 @@ inline unsigned int NzGetNearestPowerOfTwo(unsigned int number)
inline unsigned int NzGetNumberLength(signed char number)
{
///TODO: Marquer comme constexpr en C++14
// Le standard définit le char comme étant codé sur un octet
static_assert(sizeof(number) == 1, "Signed char must be one byte-sized");
@ -115,6 +119,7 @@ inline unsigned int NzGetNumberLength(signed char number)
inline unsigned int NzGetNumberLength(unsigned char number)
{
///TODO: Marquer comme constexpr en C++14
// Le standard définit le char comme étant codé sur un octet
static_assert(sizeof(number) == 1, "Unsigned char must be one byte-sized");

View File

@ -783,7 +783,7 @@ void NzGenerateBox(const NzVector3f& lengths, const NzVector3ui& subdivision, co
void NzGenerateCone(float length, float radius, unsigned int subdivision, const NzMatrix4f& matrix, const NzRectf& textureCoords, NzMeshVertex* vertices, NzIndexIterator indices, NzBoxf* aabb, unsigned int indexOffset)
{
const float round = 2.f*static_cast<float>(M_PI);
constexpr float round = 2.f*static_cast<float>(M_PI);
float delta = round/subdivision;
vertices->position = matrix.GetTranslation(); // matrix.Transform(NzVector3f(0.f));