1 /////////////////////////////////////////////////////////////////////////////////////////////////// 2 // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) 3 /////////////////////////////////////////////////////////////////////////////////////////////////// 4 // Created : 2007-03-14 5 // Updated : 2010-02-19 6 // Licence : This source is under MIT License 7 // File : gtx_extented_min_max.inl 8 /////////////////////////////////////////////////////////////////////////////////////////////////// 9 10 namespace glm 11 { 12 template <typename T> 13 GLM_FUNC_QUALIFIER T min( 14 T const & x, 15 T const & y, 16 T const & z) 17 { 18 return glm::min(glm::min(x, y), z); 19 } 20 21 template <typename T, template <typename> class C> 22 GLM_FUNC_QUALIFIER C<T> min 23 ( 24 C<T> const & x, 25 typename C<T>::T const & y, 26 typename C<T>::T const & z 27 ) 28 { 29 return glm::min(glm::min(x, y), z); 30 } 31 32 template <typename T, template <typename> class C> 33 GLM_FUNC_QUALIFIER C<T> min 34 ( 35 C<T> const & x, 36 C<T> const & y, 37 C<T> const & z 38 ) 39 { 40 return glm::min(glm::min(x, y), z); 41 } 42 43 template <typename T> 44 GLM_FUNC_QUALIFIER T min 45 ( 46 T const & x, 47 T const & y, 48 T const & z, 49 T const & w 50 ) 51 { 52 return glm::min(glm::min(x, y), glm::min(z, w)); 53 } 54 55 template <typename T, template <typename> class C> 56 GLM_FUNC_QUALIFIER C<T> min 57 ( 58 C<T> const & x, 59 typename C<T>::T const & y, 60 typename C<T>::T const & z, 61 typename C<T>::T const & w 62 ) 63 { 64 return glm::min(glm::min(x, y), glm::min(z, w)); 65 } 66 67 template <typename T, template <typename> class C> 68 GLM_FUNC_QUALIFIER C<T> min 69 ( 70 C<T> const & x, 71 C<T> const & y, 72 C<T> const & z, 73 C<T> const & w 74 ) 75 { 76 return glm::min(glm::min(x, y), glm::min(z, w)); 77 } 78 79 template <typename T> 80 GLM_FUNC_QUALIFIER T max( 81 T const & x, 82 T const & y, 83 T const & z) 84 { 85 return glm::max(glm::max(x, y), z); 86 } 87 88 template <typename T, template <typename> class C> 89 GLM_FUNC_QUALIFIER C<T> max 90 ( 91 C<T> const & x, 92 typename C<T>::T const & y, 93 typename C<T>::T const & z 94 ) 95 { 96 return glm::max(glm::max(x, y), z); 97 } 98 99 template <typename T, template <typename> class C> 100 GLM_FUNC_QUALIFIER C<T> max 101 ( 102 C<T> const & x, 103 C<T> const & y, 104 C<T> const & z 105 ) 106 { 107 return glm::max(glm::max(x, y), z); 108 } 109 110 template <typename T> 111 GLM_FUNC_QUALIFIER T max 112 ( 113 T const & x, 114 T const & y, 115 T const & z, 116 T const & w 117 ) 118 { 119 return glm::max(glm::max(x, y), glm::max(z, w)); 120 } 121 122 template <typename T, template <typename> class C> 123 GLM_FUNC_QUALIFIER C<T> max 124 ( 125 C<T> const & x, 126 typename C<T>::T const & y, 127 typename C<T>::T const & z, 128 typename C<T>::T const & w 129 ) 130 { 131 return glm::max(glm::max(x, y), glm::max(z, w)); 132 } 133 134 template <typename T, template <typename> class C> 135 GLM_FUNC_QUALIFIER C<T> max 136 ( 137 C<T> const & x, 138 C<T> const & y, 139 C<T> const & z, 140 C<T> const & w 141 ) 142 { 143 return glm::max(glm::max(x, y), glm::max(z, w)); 144 } 145 146 }//namespace glm 147