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_extented_min_max
00040 #define GLM_GTX_extented_min_max GLM_VERSION
00041
00042
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_extented_min_max extension included")
00048 #endif
00049
00050 namespace glm
00051 {
00054
00055
00056
00057 template <typename T>
00058 T min(
00059 T const & x,
00060 T const & y,
00061 T const & z);
00062
00063
00064
00065 template
00066 <
00067 typename T,
00068 template <typename> class C
00069 >
00070 C<T> min(
00071 C<T> const & x,
00072 typename C<T>::value_type const & y,
00073 typename C<T>::value_type const & z);
00074
00075
00076
00077 template
00078 <
00079 typename T,
00080 template <typename> class C
00081 >
00082 C<T> min(
00083 C<T> const & x,
00084 C<T> const & y,
00085 C<T> const & z);
00086
00087
00088
00089 template <typename T>
00090 T min(
00091 T const & x,
00092 T const & y,
00093 T const & z,
00094 T const & w);
00095
00096
00097
00098 template
00099 <
00100 typename T,
00101 template <typename> class C
00102 >
00103 C<T> min(
00104 C<T> const & x,
00105 typename C<T>::value_type const & y,
00106 typename C<T>::value_type const & z,
00107 typename C<T>::value_type const & w);
00108
00109
00110
00111 template
00112 <
00113 typename T,
00114 template <typename> class C
00115 >
00116 C<T> min(
00117 C<T> const & x,
00118 C<T> const & y,
00119 C<T> const & z,
00120 C<T> const & w);
00121
00122
00123
00124 template <typename T>
00125 T max(
00126 T const & x,
00127 T const & y,
00128 T const & z);
00129
00130
00131
00132 template
00133 <
00134 typename T,
00135 template <typename> class C
00136 >
00137 C<T> max(
00138 C<T> const & x,
00139 typename C<T>::value_type const & y,
00140 typename C<T>::value_type const & z);
00141
00142
00143
00144 template
00145 <
00146 typename T,
00147 template <typename> class C
00148 >
00149 C<T> max(
00150 C<T> const & x,
00151 C<T> const & y,
00152 C<T> const & z);
00153
00154
00155
00156 template <typename T>
00157 T max(
00158 T const & x,
00159 T const & y,
00160 T const & z,
00161 T const & w);
00162
00163
00164
00165 template
00166 <
00167 typename T,
00168 template <typename> class C
00169 >
00170 C<T> max(
00171 C<T> const & x,
00172 typename C<T>::value_type const & y,
00173 typename C<T>::value_type const & z,
00174 typename C<T>::value_type const & w);
00175
00176
00177
00178 template
00179 <
00180 typename T,
00181 template <typename> class C
00182 >
00183 C<T> max(
00184 C<T> const & x,
00185 C<T> const & y,
00186 C<T> const & z,
00187 C<T> const & w);
00188
00190 }
00191
00192 #include "extented_min_max.inl"
00193
00194 #endif//GLM_GTX_extented_min_max