00001
00002
00004
00005
00006
00007
00009
00010
00011
00012
00014
00015 #ifndef glm_gtx_extented_min_max
00016 #define glm_gtx_extented_min_max
00017
00018
00019 #include "../glm.hpp"
00020 #include "../gtc/half_float.hpp"
00021 #include "../gtc/double_float.hpp"
00022
00023 namespace glm
00024 {
00025 namespace test{
00026 void main_ext_gtx_extented_min_max();
00027 }
00028
00029 namespace gtx{
00031 namespace extented_min_max
00032 {
00033 template <typename T> T min(const T x, const T y, const T z);
00034 template <typename T> T min(const T x, const T y, const T z, const T w);
00035
00036 template <typename T> detail::tvec2<T> min(const detail::tvec2<T>& x, const T y, const T z);
00037 template <typename T> detail::tvec3<T> min(const detail::tvec3<T>& x, const T y, const T z);
00038 template <typename T> detail::tvec4<T> min(const detail::tvec4<T>& x, const T y, const T z);
00039
00040 template <typename T> detail::tvec2<T> min(const detail::tvec2<T>& x, const T y, const T z, const T w);
00041 template <typename T> detail::tvec3<T> min(const detail::tvec3<T>& x, const T y, const T z, const T w);
00042 template <typename T> detail::tvec4<T> min(const detail::tvec4<T>& x, const T y, const T z, const T w);
00043
00044 template <typename T> detail::tvec2<T> min(const detail::tvec2<T>& x, const detail::tvec2<T>& y, const detail::tvec2<T>& z);
00045 template <typename T> detail::tvec3<T> min(const detail::tvec3<T>& x, const detail::tvec3<T>& y, const detail::tvec3<T>& z);
00046 template <typename T> detail::tvec4<T> min(const detail::tvec4<T>& x, const detail::tvec4<T>& y, const detail::tvec4<T>& z);
00047
00048 template <typename T> detail::tvec2<T> min(const detail::tvec2<T>& x, const detail::tvec2<T>& y, const detail::tvec2<T>& z, const detail::tvec2<T>& w);
00049 template <typename T> detail::tvec3<T> min(const detail::tvec3<T>& x, const detail::tvec3<T>& y, const detail::tvec3<T>& z, const detail::tvec3<T>& w);
00050 template <typename T> detail::tvec4<T> min(const detail::tvec4<T>& x, const detail::tvec4<T>& y, const detail::tvec4<T>& z, const detail::tvec4<T>& w);
00051
00052 template <typename T> T max(const T x, const T y, const T z);
00053 template <typename T> T max(const T x, const T y, const T z, const T w);
00054
00055 template <typename T> detail::tvec2<T> max(const detail::tvec2<T>& x, const T y, const T z);
00056 template <typename T> detail::tvec3<T> max(const detail::tvec3<T>& x, const T y, const T z);
00057 template <typename T> detail::tvec4<T> max(const detail::tvec4<T>& x, const T y, const T z);
00058
00059 template <typename T> detail::tvec2<T> max(const detail::tvec2<T>& x, const T y, const T z, const T w);
00060 template <typename T> detail::tvec3<T> max(const detail::tvec3<T>& x, const T y, const T z, const T w);
00061 template <typename T> detail::tvec4<T> max(const detail::tvec4<T>& x, const T y, const T z, const T w);
00062
00063 template <typename T> detail::tvec2<T> max(const detail::tvec2<T>& x, const detail::tvec2<T>& y, const detail::tvec2<T>& z);
00064 template <typename T> detail::tvec3<T> max(const detail::tvec3<T>& x, const detail::tvec3<T>& y, const detail::tvec3<T>& z);
00065 template <typename T> detail::tvec4<T> max(const detail::tvec4<T>& x, const detail::tvec4<T>& y, const detail::tvec4<T>& z);
00066
00067 template <typename T> detail::tvec2<T> max(const detail::tvec2<T>& x, const detail::tvec2<T>& y, const detail::tvec2<T>& z, const detail::tvec2<T>& w);
00068 template <typename T> detail::tvec3<T> max(const detail::tvec3<T>& x, const detail::tvec3<T>& y, const detail::tvec3<T>& z, const detail::tvec3<T>& w);
00069 template <typename T> detail::tvec4<T> max(const detail::tvec4<T>& x, const detail::tvec4<T>& y, const detail::tvec4<T>& z, const detail::tvec4<T>& w);
00070
00071 }
00072 }
00073 }
00074
00075 #define GLM_GTX_extented_min_max namespace gtx::extented_min_max
00076 #ifndef GLM_GTX_GLOBAL
00077 namespace glm {using GLM_GTX_extented_min_max;}
00078 #endif//GLM_GTX_GLOBAL
00079
00080 #include "extented_min_max.inl"
00081
00082 #endif//glm_gtx_extented_min_max