/////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2007-03-16 // Updated : 2008-10-24 // Licence : This source is under MIT License // File : glm/gtx/compatibility.inl /////////////////////////////////////////////////////////////////////////////////////////////////// namespace glm{ namespace gtx{ namespace compatibility{ // isfinite template GLM_FUNC_QUALIFIER bool isfinite( genType const & x) { #if(GLM_COMPILER & GLM_COMPILER_VC) return _finite(x); #else//(GLM_COMPILER & GLM_COMPILER_GCC) return std::isfinite(x) != 0; #endif } template GLM_FUNC_QUALIFIER detail::tvec2 isfinite( detail::tvec2 const & x) { return detail::tvec2( isfinite(x.x), isfinite(x.y)); } template GLM_FUNC_QUALIFIER detail::tvec3 isfinite( detail::tvec3 const & x) { return detail::tvec3( isfinite(x.x), isfinite(x.y), isfinite(x.z)); } template GLM_FUNC_QUALIFIER detail::tvec4 isfinite( detail::tvec4 const & x) { return detail::tvec4( isfinite(x.x), isfinite(x.y), isfinite(x.z), isfinite(x.w)); } // isinf template GLM_FUNC_QUALIFIER bool isinf( genType const & x) { #if(GLM_COMPILER & GLM_COMPILER_VC) return _fpclass(x) == _FPCLASS_NINF || _fpclass(x) == _FPCLASS_PINF; #else return std::isinf(x) != 0; #endif } template GLM_FUNC_QUALIFIER detail::tvec2 isinf( detail::tvec2 const & x) { return detail::tvec2( isinf(x.x), isinf(x.y)); } template GLM_FUNC_QUALIFIER detail::tvec3 isinf( detail::tvec3 const & x) { return detail::tvec3( isinf(x.x), isinf(x.y), isinf(x.z)); } template GLM_FUNC_QUALIFIER detail::tvec4 isinf( detail::tvec4 const & x) { return detail::tvec4( isinf(x.x), isinf(x.y), isinf(x.z), isinf(x.w)); } // isnan template GLM_FUNC_QUALIFIER bool isnan(genType const & x) { #if(GLM_COMPILER & GLM_COMPILER_VC) return _isnan(x); #else return std::isnan(x) != 0; #endif } template GLM_FUNC_QUALIFIER detail::tvec2 isnan( detail::tvec2 const & x) { return detail::tvec2( isnan(x.x), isnan(x.y)); } template GLM_FUNC_QUALIFIER detail::tvec3 isnan( detail::tvec3 const & x) { return detail::tvec3( isnan(x.x), isnan(x.y), isnan(x.z)); } template GLM_FUNC_QUALIFIER detail::tvec4 isnan( detail::tvec4 const & x) { return detail::tvec4( isnan(x.x), isnan(x.y), isnan(x.z), isnan(x.w)); } }//namespace compatibility }//namespace gtx }//namespace glm