~mir-team/mir/in-process-egl+input-conglomeration

« back to all changes in this revision

Viewing changes to 3rd_party/glm/glm/core/intrinsic_vector_relational.inl

Merged trunk and fixed issues

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
///////////////////////////////////////////////////////////////////////////////////
2
 
/// OpenGL Mathematics (glm.g-truc.net)
3
 
///
4
 
/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
5
 
/// Permission is hereby granted, free of charge, to any person obtaining a copy
6
 
/// of this software and associated documentation files (the "Software"), to deal
7
 
/// in the Software without restriction, including without limitation the rights
8
 
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
 
/// copies of the Software, and to permit persons to whom the Software is
10
 
/// furnished to do so, subject to the following conditions:
11
 
/// 
12
 
/// The above copyright notice and this permission notice shall be included in
13
 
/// all copies or substantial portions of the Software.
14
 
/// 
15
 
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
 
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
 
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
 
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
 
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
 
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
 
/// THE SOFTWARE.
22
 
///
23
 
/// @ref core
24
 
/// @file glm/core/intrinsic_vector_relational.inl
25
 
/// @date 2009-06-09 / 2011-06-15
26
 
/// @author Christophe Riccio
27
 
///////////////////////////////////////////////////////////////////////////////////
28
 
//
29
 
//// lessThan
30
 
//template <typename valType>
31
 
//GLM_FUNC_QUALIFIER typename detail::tvec2<valType>::bool_type lessThan
32
 
//(
33
 
//      detail::tvec2<valType> const & x, 
34
 
//      detail::tvec2<valType> const & y
35
 
//)
36
 
//{
37
 
//      GLM_STATIC_ASSERT(
38
 
//              detail::type<valType>::is_float || 
39
 
//              detail::type<valType>::is_int || 
40
 
//              detail::type<valType>::is_uint);
41
 
//
42
 
//    return typename detail::tvec2<bool>::bool_type(x.x < y.x, x.y < y.y);
43
 
//}
44
 
//
45
 
//template <typename valType>
46
 
//GLM_FUNC_QUALIFIER typename detail::tvec3<valType>::bool_type lessThan
47
 
//(
48
 
//      detail::tvec3<valType> const & x, 
49
 
//      detail::tvec3<valType> const & y
50
 
//)
51
 
//{
52
 
//      GLM_STATIC_ASSERT(
53
 
//              detail::type<valType>::is_float || 
54
 
//              detail::type<valType>::is_int || 
55
 
//              detail::type<valType>::is_uint);
56
 
//      
57
 
//      return typename detail::tvec3<bool>::bool_type(x.x < y.x, x.y < y.y, x.z < y.z);
58
 
//}
59
 
//
60
 
//template <typename valType>
61
 
//GLM_FUNC_QUALIFIER typename detail::tvec4<valType>::bool_type lessThan
62
 
//(
63
 
//      detail::tvec4<valType> const & x, 
64
 
//      detail::tvec4<valType> const & y
65
 
//)
66
 
//{
67
 
//      GLM_STATIC_ASSERT(
68
 
//              detail::type<valType>::is_float || 
69
 
//              detail::type<valType>::is_int || 
70
 
//              detail::type<valType>::is_uint);
71
 
//
72
 
//      return typename detail::tvec4<bool>::bool_type(x.x < y.x, x.y < y.y, x.z < y.z, x.w < y.w);
73
 
//}
74
 
//
75
 
//// lessThanEqual
76
 
//template <typename valType>
77
 
//GLM_FUNC_QUALIFIER typename detail::tvec2<valType>::bool_type lessThanEqual
78
 
//(
79
 
//      detail::tvec2<valType> const & x, 
80
 
//      detail::tvec2<valType> const & y
81
 
//)
82
 
//{
83
 
//      GLM_STATIC_ASSERT(
84
 
//              detail::type<valType>::is_float || 
85
 
//              detail::type<valType>::is_int || 
86
 
//              detail::type<valType>::is_uint);
87
 
//
88
 
//      return typename detail::tvec2<bool>::bool_type(x.x <= y.x, x.y <= y.y);
89
 
//}
90
 
//
91
 
//template <typename valType>
92
 
//GLM_FUNC_QUALIFIER typename detail::tvec3<valType>::bool_type lessThanEqual
93
 
//(
94
 
//      detail::tvec3<valType> const & x, 
95
 
//      detail::tvec3<valType> const & y
96
 
//)
97
 
//{
98
 
//      GLM_STATIC_ASSERT(
99
 
//              detail::type<valType>::is_float || 
100
 
//              detail::type<valType>::is_int || 
101
 
//              detail::type<valType>::is_uint);
102
 
//      
103
 
//      return typename detail::tvec3<bool>::bool_type(x.x <= y.x, x.y <= y.y, x.z <= y.z);
104
 
//}
105
 
//
106
 
//template <typename valType>
107
 
//GLM_FUNC_QUALIFIER typename detail::tvec4<valType>::bool_type lessThanEqual
108
 
//(
109
 
//      detail::tvec4<valType> const & x, 
110
 
//      detail::tvec4<valType> const & y
111
 
//)
112
 
//{
113
 
//      GLM_STATIC_ASSERT(
114
 
//              detail::type<valType>::is_float || 
115
 
//              detail::type<valType>::is_int || 
116
 
//              detail::type<valType>::is_uint);
117
 
//      
118
 
//      return typename detail::tvec4<bool>::bool_type(x.x <= y.x, x.y <= y.y, x.z <= y.z, x.w <= y.w);
119
 
//}
120
 
//
121
 
//// greaterThan
122
 
//template <typename valType>
123
 
//GLM_FUNC_QUALIFIER typename detail::tvec2<valType>::bool_type greaterThan
124
 
//(
125
 
//      detail::tvec2<valType> const & x, 
126
 
//      detail::tvec2<valType> const & y
127
 
//)
128
 
//{
129
 
//      GLM_STATIC_ASSERT(
130
 
//              detail::type<valType>::is_float || 
131
 
//              detail::type<valType>::is_int || 
132
 
//              detail::type<valType>::is_uint);
133
 
//
134
 
//      return typename detail::tvec2<bool>::bool_type(x.x > y.x, x.y > y.y);
135
 
//}
136
 
//
137
 
//template <typename valType>
138
 
//GLM_FUNC_QUALIFIER typename detail::tvec3<valType>::bool_type greaterThan
139
 
//(
140
 
//      detail::tvec3<valType> const & x, 
141
 
//      detail::tvec3<valType> const & y
142
 
//)
143
 
//{
144
 
//      GLM_STATIC_ASSERT(
145
 
//              detail::type<valType>::is_float || 
146
 
//              detail::type<valType>::is_int || 
147
 
//              detail::type<valType>::is_uint);
148
 
//      
149
 
//      return typename detail::tvec3<bool>::bool_type(x.x > y.x, x.y > y.y, x.z > y.z);
150
 
//}
151
 
//
152
 
//template <typename valType>
153
 
//GLM_FUNC_QUALIFIER typename detail::tvec4<valType>::bool_type greaterThan
154
 
//(
155
 
//      detail::tvec4<valType> const & x, 
156
 
//      detail::tvec4<valType> const & y
157
 
//)
158
 
//{
159
 
//      GLM_STATIC_ASSERT(
160
 
//              detail::type<valType>::is_float || 
161
 
//              detail::type<valType>::is_int || 
162
 
//              detail::type<valType>::is_uint);
163
 
//      
164
 
//      return typename detail::tvec4<bool>::bool_type(x.x > y.x, x.y > y.y, x.z > y.z, x.w > y.w);
165
 
//}
166
 
//
167
 
//// greaterThanEqual
168
 
//template <typename valType>
169
 
//GLM_FUNC_QUALIFIER typename detail::tvec2<valType>::bool_type greaterThanEqual
170
 
//(
171
 
//      detail::tvec2<valType> const & x, 
172
 
//      detail::tvec2<valType> const & y
173
 
//)
174
 
//{
175
 
//      GLM_STATIC_ASSERT(
176
 
//              detail::type<valType>::is_float || 
177
 
//              detail::type<valType>::is_int || 
178
 
//              detail::type<valType>::is_uint);
179
 
//
180
 
//      return typename detail::tvec2<bool>::bool_type(x.x >= y.x, x.y >= y.y);
181
 
//}
182
 
//
183
 
//template <typename valType>
184
 
//GLM_FUNC_QUALIFIER typename detail::tvec3<valType>::bool_type greaterThanEqual
185
 
//(
186
 
//      detail::tvec3<valType> const & x, 
187
 
//      detail::tvec3<valType> const & y
188
 
//)
189
 
//{
190
 
//      GLM_STATIC_ASSERT(
191
 
//              detail::type<valType>::is_float || 
192
 
//              detail::type<valType>::is_int || 
193
 
//              detail::type<valType>::is_uint);
194
 
//
195
 
//      return typename detail::tvec3<bool>::bool_type(x.x >= y.x, x.y >= y.y, x.z >= y.z);
196
 
//}
197
 
//
198
 
//template <typename valType>
199
 
//GLM_FUNC_QUALIFIER typename detail::tvec4<valType>::bool_type greaterThanEqual
200
 
//(
201
 
//      detail::tvec4<valType> const & x, 
202
 
//      detail::tvec4<valType> const & y
203
 
//)
204
 
//{
205
 
//      GLM_STATIC_ASSERT(
206
 
//              detail::type<valType>::is_float || 
207
 
//              detail::type<valType>::is_int || 
208
 
//              detail::type<valType>::is_uint);
209
 
//
210
 
//      return typename detail::tvec4<bool>::bool_type(x.x >= y.x, x.y >= y.y, x.z >= y.z, x.w >= y.w);
211
 
//}
212
 
//
213
 
//// equal
214
 
//template <typename valType>
215
 
//GLM_FUNC_QUALIFIER typename detail::tvec2<valType>::bool_type equal
216
 
//(
217
 
//      detail::tvec2<valType> const & x, 
218
 
//      detail::tvec2<valType> const & y
219
 
//)
220
 
//{
221
 
//      GLM_STATIC_ASSERT(
222
 
//              detail::type<valType>::is_float || 
223
 
//              detail::type<valType>::is_int || 
224
 
//              detail::type<valType>::is_uint || 
225
 
//              detail::type<valType>::is_bool);
226
 
//
227
 
//      return typename detail::tvec2<valType>::bool_type(x.x == y.x, x.y == y.y);
228
 
//}
229
 
//
230
 
//template <typename valType>
231
 
//GLM_FUNC_QUALIFIER typename detail::tvec3<valType>::bool_type equal
232
 
//(
233
 
//      detail::tvec3<valType> const & x, 
234
 
//      detail::tvec3<valType> const & y
235
 
//)
236
 
//{
237
 
//      GLM_STATIC_ASSERT(
238
 
//              detail::type<valType>::is_float || 
239
 
//              detail::type<valType>::is_int || 
240
 
//              detail::type<valType>::is_uint || 
241
 
//              detail::type<valType>::is_bool);
242
 
//
243
 
//      return typename detail::tvec3<valType>::bool_type(x.x == y.x, x.y == y.y, x.z == y.z);
244
 
//}
245
 
//
246
 
//template <typename valType>
247
 
//GLM_FUNC_QUALIFIER typename detail::tvec4<valType>::bool_type equal
248
 
//(
249
 
//      detail::tvec4<valType> const & x, 
250
 
//      detail::tvec4<valType> const & y
251
 
//)
252
 
//{
253
 
//      GLM_STATIC_ASSERT(
254
 
//              detail::type<valType>::is_float || 
255
 
//              detail::type<valType>::is_int || 
256
 
//              detail::type<valType>::is_uint || 
257
 
//              detail::type<valType>::is_bool);
258
 
//
259
 
//      return typename detail::tvec4<valType>::bool_type(x.x == y.x, x.y == y.y, x.z == y.z, x.w == y.w);
260
 
//}
261
 
//
262
 
//// notEqual
263
 
//template <typename valType>
264
 
//GLM_FUNC_QUALIFIER typename detail::tvec2<valType>::bool_type notEqual
265
 
//(
266
 
//      detail::tvec2<valType> const & x, 
267
 
//      detail::tvec2<valType> const & y
268
 
//)
269
 
//{
270
 
//      GLM_STATIC_ASSERT(
271
 
//              detail::type<valType>::is_float || 
272
 
//              detail::type<valType>::is_int || 
273
 
//              detail::type<valType>::is_uint || 
274
 
//              detail::type<valType>::is_bool);
275
 
//
276
 
//      return typename detail::tvec2<valType>::bool_type(x.x != y.x, x.y != y.y);
277
 
//}
278
 
//
279
 
//template <typename valType>
280
 
//GLM_FUNC_QUALIFIER typename detail::tvec3<valType>::bool_type notEqual
281
 
//(
282
 
//      detail::tvec3<valType> const & x, 
283
 
//      detail::tvec3<valType> const & y
284
 
//)
285
 
//{
286
 
//      GLM_STATIC_ASSERT(
287
 
//              detail::type<valType>::is_float || 
288
 
//              detail::type<valType>::is_int || 
289
 
//              detail::type<valType>::is_uint || 
290
 
//              detail::type<valType>::is_bool);
291
 
//
292
 
//      return typename detail::tvec3<valType>::bool_type(x.x != y.x, x.y != y.y, x.z != y.z);
293
 
//}
294
 
//
295
 
//template <typename valType>
296
 
//GLM_FUNC_QUALIFIER typename detail::tvec4<valType>::bool_type notEqual
297
 
//(
298
 
//      detail::tvec4<valType> const & x, 
299
 
//      detail::tvec4<valType> const & y
300
 
//)
301
 
//{
302
 
//      GLM_STATIC_ASSERT(
303
 
//              detail::type<valType>::is_float || 
304
 
//              detail::type<valType>::is_int || 
305
 
//              detail::type<valType>::is_uint || 
306
 
//              detail::type<valType>::is_bool);
307
 
//
308
 
//      return typename detail::tvec4<valType>::bool_type(x.x != y.x, x.y != y.y, x.z != y.z, x.w != y.w);
309
 
//}
310
 
//
311
 
//// any
312
 
//GLM_FUNC_QUALIFIER bool any(detail::tvec2<bool> const & x)
313
 
//{
314
 
//      return x.x || x.y;
315
 
//}
316
 
//
317
 
//GLM_FUNC_QUALIFIER bool any(detail::tvec3<bool> const & x)
318
 
//{
319
 
//    return x.x || x.y || x.z;
320
 
//}
321
 
//
322
 
//GLM_FUNC_QUALIFIER bool any(detail::tvec4<bool> const & x)
323
 
//{
324
 
//    return x.x || x.y || x.z || x.w;
325
 
//}
326
 
//
327
 
//// all
328
 
//GLM_FUNC_QUALIFIER bool all(const detail::tvec2<bool>& x)
329
 
//{
330
 
//    return x.x && x.y;
331
 
//}
332
 
//
333
 
//GLM_FUNC_QUALIFIER bool all(const detail::tvec3<bool>& x)
334
 
//{
335
 
//    return x.x && x.y && x.z;
336
 
//}
337
 
//
338
 
//GLM_FUNC_QUALIFIER bool all(const detail::tvec4<bool>& x)
339
 
//{
340
 
//    return x.x && x.y && x.z && x.w;
341
 
//}
342
 
//
343
 
//// not
344
 
//GLM_FUNC_QUALIFIER detail::tvec2<bool>::bool_type not_
345
 
//(
346
 
//      detail::tvec2<bool> const & v
347
 
//)
348
 
//{
349
 
//    return detail::tvec2<bool>::bool_type(!v.x, !v.y);
350
 
//}
351
 
//
352
 
//GLM_FUNC_QUALIFIER detail::tvec3<bool>::bool_type not_
353
 
//(
354
 
//      detail::tvec3<bool> const & v
355
 
//)
356
 
//{
357
 
//    return detail::tvec3<bool>::bool_type(!v.x, !v.y, !v.z);
358
 
//}
359
 
//
360
 
//GLM_FUNC_QUALIFIER detail::tvec4<bool>::bool_type not_
361
 
//(
362
 
//      detail::tvec4<bool> const & v
363
 
//)
364
 
//{
365
 
//    return detail::tvec4<bool>::bool_type(!v.x, !v.y, !v.z, !v.w);
366
 
//}
 
 
b'\\ No newline at end of file'