From 8ee0aafb6ef9d74071dfa0a8e6d42cb99893205b Mon Sep 17 00:00:00 2001 From: cignoni Date: Thu, 11 Feb 2016 15:43:20 +0000 Subject: [PATCH] Added Sgn function added hack for missing is_nan in mingw Thanks to Antonio Nicoletti --- vcg/math/base.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vcg/math/base.h b/vcg/math/base.h index 8b1dee3f..132c9ea1 100644 --- a/vcg/math/base.h +++ b/vcg/math/base.h @@ -186,9 +186,15 @@ inline float ToRad(const float &a){return float(M_PI)*a/180.0f;} inline double ToDeg(const double &a){return a*180.0/M_PI;} inline double ToRad(const double &a){return M_PI*a/180.0;} +template +int Sgn(T val) { + return (T(0) < val) - (val < T(0)); +} #if defined(_MSC_VER) // Microsoft Visual C++ template int IsNAN(T t) { return _isnan(t) || (!_finite(t)); } +#elif defined(__MINGW32__) // GCC +template int IsNAN(T t) { return std::isnan(t) || std::isinf(t); } #elif defined(__GNUC__) // GCC template int IsNAN(T t) { return isnan(t) || isinf(t); } #else // generic