- Main Page
- Related Pages
- Modules
- Classes
- Files

- File List

compatibility.hpp
Go to the documentation of this file.

    00001
    00002
    00003
    00004
    00005
    00006
    00007
    00008
    00009
    00010
    00011
    00012
    00013
    00014
    00015
    00016
    00017
    00018
    00019
    00020
    00021
    00022
    00023
    00024
    00025
    00026
    00027
    00028
    00029
    00030
    00031
    00032
    00033
    00034
    00035
    00036
    00037
    00038
    00039 #ifndef GLM_GTX_compatibility
    00040 #define GLM_GTX_compatibility GLM_VERSION
    00041
    00042 // Dependency:
    00043 #include "../glm.hpp"
    00044 #include "../gtc/half_float.hpp"
    00045
    00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
    00047 #       pragma message("GLM: GLM_GTX_compatibility extension included")
    00048 #endif
    00049
    00050 #if(GLM_COMPILER & GLM_COMPILER_VC)
    00051 #include <cfloat>
    00052 #elif(GLM_COMPILER & GLM_COMPILER_GCC)
    00053 #include <cmath>
    00054 #endif//GLM_COMPILER
    00055
    00056 namespace glm
    00057 {
    00060
    00061         template <typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);}
    00062         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, T a){return mix(x, y, a);}
    00063         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, T a){return mix(x, y, a);}
    00064         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> lerp(const detail::tvec4<T>& x, const detail::tvec4<T>& y, T a){return mix(x, y, a);}
    00065         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, const detail::tvec2<T>& a){return mix(x, y, a);}
    00066         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, const detail::tvec3<T>& a){return mix(x, y, a);}
    00067         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> lerp(const detail::tvec4<T>& x, const detail::tvec4<T>& y, const detail::tvec4<T>& a){return mix(x, y, a);}
    00068
    00069         template <typename T> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));}
    00070         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> saturate(const detail::tvec2<T>& x){return clamp(x, T(0), T(1));}
    00071         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> saturate(const detail::tvec3<T>& x){return clamp(x, T(0), T(1));}
    00072         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> saturate(const detail::tvec4<T>& x){return clamp(x, T(0), T(1));}
    00073
    00074         template <typename T> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);}
    00075         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> atan2(const detail::tvec2<T>& x, const detail::tvec2<T>& y){return atan(x, y);}
    00076         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> atan2(const detail::tvec3<T>& x, const detail::tvec3<T>& y){return atan(x, y);}
    00077         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> atan2(const detail::tvec4<T>& x, const detail::tvec4<T>& y){return atan(x, y);}
    00078
    00079         template <typename genType> bool isfinite(genType const & x);
    00080         template <typename valType> detail::tvec2<bool> isfinite(const detail::tvec2<valType>& x);
    00081         template <typename valType> detail::tvec3<bool> isfinite(const detail::tvec3<valType>& x);
    00082         template <typename valType> detail::tvec4<bool> isfinite(const detail::tvec4<valType>& x);
    00083
    00084         template <typename genType> bool isinf(genType const & x);
    00085         template <typename genType> detail::tvec2<bool> isinf(const detail::tvec2<genType>& x);
    00086         template <typename genType> detail::tvec3<bool> isinf(const detail::tvec3<genType>& x);
    00087         template <typename genType> detail::tvec4<bool> isinf(const detail::tvec4<genType>& x);
    00088
    00089         template <typename genType> bool isnan(genType const & x);
    00090         template <typename genType> detail::tvec2<bool> isnan(const detail::tvec2<genType>& x);
    00091         template <typename genType> detail::tvec3<bool> isnan(const detail::tvec3<genType>& x);
    00092         template <typename genType> detail::tvec4<bool> isnan(const detail::tvec4<genType>& x);
    00093
    00094         typedef bool                                            bool1;
    00095         typedef detail::tvec2<bool>                     bool2;
    00096         typedef detail::tvec3<bool>                     bool3;
    00097         typedef detail::tvec4<bool>                     bool4;
    00098
    00099         typedef bool                                            bool1x1;
    00100         typedef detail::tmat2x2<bool>           bool2x2;
    00101         typedef detail::tmat2x3<bool>           bool2x3;
    00102         typedef detail::tmat2x4<bool>           bool2x4;
    00103         typedef detail::tmat3x2<bool>           bool3x2;
    00104         typedef detail::tmat3x3<bool>           bool3x3;
    00105         typedef detail::tmat3x4<bool>           bool3x4;
    00106         typedef detail::tmat4x2<bool>           bool4x2;
    00107         typedef detail::tmat4x3<bool>           bool4x3;
    00108         typedef detail::tmat4x4<bool>           bool4x4;
    00109
    00110         typedef int                                                     int1;
    00111         typedef detail::tvec2<int>                      int2;
    00112         typedef detail::tvec3<int>                      int3;
    00113         typedef detail::tvec4<int>                      int4;
    00114
    00115         typedef int                                                     int1x1;
    00116         typedef detail::tmat2x2<int>            int2x2;
    00117         typedef detail::tmat2x3<int>            int2x3;
    00118         typedef detail::tmat2x4<int>            int2x4;
    00119         typedef detail::tmat3x2<int>            int3x2;
    00120         typedef detail::tmat3x3<int>            int3x3;
    00121         typedef detail::tmat3x4<int>            int3x4;
    00122         typedef detail::tmat4x2<int>            int4x2;
    00123         typedef detail::tmat4x3<int>            int4x3;
    00124         typedef detail::tmat4x4<int>            int4x4;
    00125
    00126         typedef detail::half                                    half1;
    00127         typedef detail::tvec2<detail::half>     half2;
    00128         typedef detail::tvec3<detail::half>     half3;
    00129         typedef detail::tvec4<detail::half>     half4;
    00130
    00131         typedef detail::half                                    half1x1;
    00132         typedef detail::tmat2x2<detail::half>   half2x2;
    00133         typedef detail::tmat2x3<detail::half>   half2x3;
    00134         typedef detail::tmat2x4<detail::half>   half2x4;
    00135         typedef detail::tmat3x2<detail::half>   half3x2;
    00136         typedef detail::tmat3x3<detail::half>   half3x3;
    00137         typedef detail::tmat3x4<detail::half>   half3x4;
    00138         typedef detail::tmat4x2<detail::half>   half4x2;
    00139         typedef detail::tmat4x3<detail::half>   half4x3;
    00140         typedef detail::tmat4x4<detail::half>   half4x4;
    00141
    00142         typedef float                                           float1;
    00143         typedef detail::tvec2<float>            float2;
    00144         typedef detail::tvec3<float>            float3;
    00145         typedef detail::tvec4<float>            float4;
    00146
    00147         typedef float                                           float1x1;
    00148         typedef detail::tmat2x2<float>          float2x2;
    00149         typedef detail::tmat2x3<float>          float2x3;
    00150         typedef detail::tmat2x4<float>          float2x4;
    00151         typedef detail::tmat3x2<float>          float3x2;
    00152         typedef detail::tmat3x3<float>          float3x3;
    00153         typedef detail::tmat3x4<float>          float3x4;
    00154         typedef detail::tmat4x2<float>          float4x2;
    00155         typedef detail::tmat4x3<float>          float4x3;
    00156         typedef detail::tmat4x4<float>          float4x4;
    00157
    00158         typedef double                                          double1;
    00159         typedef detail::tvec2<double>           double2;
    00160         typedef detail::tvec3<double>           double3;
    00161         typedef detail::tvec4<double>           double4;
    00162
    00163         typedef double                                          double1x1;
    00164         typedef detail::tmat2x2<double>         double2x2;
    00165         typedef detail::tmat2x3<double>         double2x3;
    00166         typedef detail::tmat2x4<double>         double2x4;
    00167         typedef detail::tmat3x2<double>         double3x2;
    00168         typedef detail::tmat3x3<double>         double3x3;
    00169         typedef detail::tmat3x4<double>         double3x4;
    00170         typedef detail::tmat4x2<double>         double4x2;
    00171         typedef detail::tmat4x3<double>         double4x3;
    00172         typedef detail::tmat4x4<double>         double4x4;
    00173
    00175 }//namespace glm
    00176
    00177 #include "compatibility.inl"
    00178
    00179 #endif//GLM_GTX_compatibility
    00180