FlukyEngine
associated_min_max.hpp
Go to the documentation of this file.
1 
14 #pragma once
15 
16 // Dependency:
17 #include "../glm.hpp"
18 
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 # ifndef GLM_ENABLE_EXPERIMENTAL
21 # pragma message("GLM: GLM_GTX_associated_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
22 # else
23 # pragma message("GLM: GLM_GTX_associated_min_max extension included")
24 # endif
25 #endif
26 
27 namespace glm
28 {
31 
34  template<typename T, typename U, qualifier Q>
35  GLM_FUNC_DECL U associatedMin(T x, U a, T y, U b);
36 
39  template<length_t L, typename T, typename U, qualifier Q>
40  GLM_FUNC_DECL vec<2, U, Q> associatedMin(
41  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
42  vec<L, T, Q> const& y, vec<L, U, Q> const& b);
43 
46  template<length_t L, typename T, typename U, qualifier Q>
47  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
48  T x, const vec<L, U, Q>& a,
49  T y, const vec<L, U, Q>& b);
50 
53  template<length_t L, typename T, typename U, qualifier Q>
54  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
55  vec<L, T, Q> const& x, U a,
56  vec<L, T, Q> const& y, U b);
57 
60  template<typename T, typename U>
61  GLM_FUNC_DECL U associatedMin(
62  T x, U a,
63  T y, U b,
64  T z, U c);
65 
68  template<length_t L, typename T, typename U, qualifier Q>
69  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
70  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
71  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
72  vec<L, T, Q> const& z, vec<L, U, Q> const& c);
73 
76  template<typename T, typename U>
77  GLM_FUNC_DECL U associatedMin(
78  T x, U a,
79  T y, U b,
80  T z, U c,
81  T w, U d);
82 
85  template<length_t L, typename T, typename U, qualifier Q>
86  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
87  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
88  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
89  vec<L, T, Q> const& z, vec<L, U, Q> const& c,
90  vec<L, T, Q> const& w, vec<L, U, Q> const& d);
91 
94  template<length_t L, typename T, typename U, qualifier Q>
95  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
96  T x, vec<L, U, Q> const& a,
97  T y, vec<L, U, Q> const& b,
98  T z, vec<L, U, Q> const& c,
99  T w, vec<L, U, Q> const& d);
100 
103  template<length_t L, typename T, typename U, qualifier Q>
104  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
105  vec<L, T, Q> const& x, U a,
106  vec<L, T, Q> const& y, U b,
107  vec<L, T, Q> const& z, U c,
108  vec<L, T, Q> const& w, U d);
109 
112  template<typename T, typename U>
113  GLM_FUNC_DECL U associatedMax(T x, U a, T y, U b);
114 
117  template<length_t L, typename T, typename U, qualifier Q>
118  GLM_FUNC_DECL vec<2, U, Q> associatedMax(
119  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
120  vec<L, T, Q> const& y, vec<L, U, Q> const& b);
121 
124  template<length_t L, typename T, typename U, qualifier Q>
125  GLM_FUNC_DECL vec<L, T, Q> associatedMax(
126  T x, vec<L, U, Q> const& a,
127  T y, vec<L, U, Q> const& b);
128 
131  template<length_t L, typename T, typename U, qualifier Q>
132  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
133  vec<L, T, Q> const& x, U a,
134  vec<L, T, Q> const& y, U b);
135 
138  template<typename T, typename U>
139  GLM_FUNC_DECL U associatedMax(
140  T x, U a,
141  T y, U b,
142  T z, U c);
143 
146  template<length_t L, typename T, typename U, qualifier Q>
147  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
148  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
149  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
150  vec<L, T, Q> const& z, vec<L, U, Q> const& c);
151 
154  template<length_t L, typename T, typename U, qualifier Q>
155  GLM_FUNC_DECL vec<L, T, Q> associatedMax(
156  T x, vec<L, U, Q> const& a,
157  T y, vec<L, U, Q> const& b,
158  T z, vec<L, U, Q> const& c);
159 
162  template<length_t L, typename T, typename U, qualifier Q>
163  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
164  vec<L, T, Q> const& x, U a,
165  vec<L, T, Q> const& y, U b,
166  vec<L, T, Q> const& z, U c);
167 
170  template<typename T, typename U>
171  GLM_FUNC_DECL U associatedMax(
172  T x, U a,
173  T y, U b,
174  T z, U c,
175  T w, U d);
176 
179  template<length_t L, typename T, typename U, qualifier Q>
180  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
181  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
182  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
183  vec<L, T, Q> const& z, vec<L, U, Q> const& c,
184  vec<L, T, Q> const& w, vec<L, U, Q> const& d);
185 
188  template<length_t L, typename T, typename U, qualifier Q>
189  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
190  T x, vec<L, U, Q> const& a,
191  T y, vec<L, U, Q> const& b,
192  T z, vec<L, U, Q> const& c,
193  T w, vec<L, U, Q> const& d);
194 
197  template<length_t L, typename T, typename U, qualifier Q>
198  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
199  vec<L, T, Q> const& x, U a,
200  vec<L, T, Q> const& y, U b,
201  vec<L, T, Q> const& z, U c,
202  vec<L, T, Q> const& w, U d);
203 
205 } //namespace glm
206 
207 #include "associated_min_max.inl"
GLM_FUNC_DECL U associatedMin(T x, U a, T y, U b)
Minimum comparison between 2 variables and returns 2 associated variable values.
Definition: associated_min_max.inl:7
Core features
Definition: common.hpp:20
GLM_FUNC_DECL U associatedMax(T x, U a, T y, U b)
Maximum comparison between 2 variables and returns 2 associated variable values.
Definition: associated_min_max.inl:165