1
///////////////////////////////////////////////////////////////////////////////////
2
/// OpenGL Mathematics (glm.g-truc.net)
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:
12
/// The above copyright notice and this permission notice shall be included in
13
/// all copies or substantial portions of the Software.
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
24
/// @file glm/core/type_vec1.inl
25
/// @date 2008-08-25 / 2011-06-15
26
/// @author Christophe Riccio
27
///////////////////////////////////////////////////////////////////////////////////
33
GLM_FUNC_QUALIFIER typename tvec1<T>::size_type tvec1<T>::length() const
38
//////////////////////////////////////
42
GLM_FUNC_QUALIFIER typename tvec1<T>::value_type & tvec1<T>::operator[]
47
assert(i < this->length());
52
GLM_FUNC_QUALIFIER typename tvec1<T>::value_type const & tvec1<T>::operator[]
57
assert(i < this->length());
61
//////////////////////////////////////
62
// Implicit basic constructors
65
GLM_FUNC_QUALIFIER tvec1<T>::tvec1() :
70
GLM_FUNC_QUALIFIER tvec1<T>::tvec1
77
GLM_FUNC_QUALIFIER tvec1<T>::tvec1
84
//////////////////////////////////////
85
// Explicit basic constructors
88
GLM_FUNC_QUALIFIER tvec1<T>::tvec1
95
//////////////////////////////////////
96
// Swizzle constructors
99
GLM_FUNC_QUALIFIER tvec1<T>::tvec1
106
//////////////////////////////////////
107
// Convertion scalar constructors
109
template <typename T>
110
template <typename U>
111
GLM_FUNC_QUALIFIER tvec1<T>::tvec1
118
//////////////////////////////////////
119
// Convertion vector constructors
121
template <typename T>
122
template <typename U>
123
GLM_FUNC_QUALIFIER tvec1<T>::tvec1
130
template <typename T>
131
template <typename U>
132
GLM_FUNC_QUALIFIER tvec1<T>::tvec1
139
template <typename T>
140
template <typename U>
141
GLM_FUNC_QUALIFIER tvec1<T>::tvec1
148
//////////////////////////////////////
149
// Unary arithmetic operators
151
template <typename T>
152
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator=
161
template <typename T>
162
template <typename U>
163
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator=
172
template <typename T>
173
template <typename U>
174
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator+=
183
template <typename T>
184
template <typename U>
185
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator+=
194
template <typename T>
195
template <typename U>
196
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator-=
205
template <typename T>
206
template <typename U>
207
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator-=
216
template <typename T>
217
template <typename U>
218
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator*=
227
template <typename T>
228
template <typename U>
229
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator*=
238
template <typename T>
239
template <typename U>
240
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator/=
249
template <typename T>
250
template <typename U>
251
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator/=
260
template <typename T>
261
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator++()
267
template <typename T>
268
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator--()
274
//////////////////////////////////////
277
template <typename T>
278
GLM_FUNC_QUALIFIER bool operator==
284
return (v1.x == v2.x);
287
template <typename T>
288
GLM_FUNC_QUALIFIER bool operator!=
294
return (v1.x != v2.x);
297
//////////////////////////////////////
298
// Unary bit operators
300
template <typename T>
301
template <typename U>
302
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator%=
311
template <typename T>
312
template <typename U>
313
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator%=
322
template <typename T>
323
template <typename U>
324
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator&=
333
template <typename T>
334
template <typename U>
335
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator&=
344
template <typename T>
345
template <typename U>
346
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator|=
355
template <typename T>
356
template <typename U>
357
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator|=
366
template <typename T>
367
template <typename U>
368
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator^=
377
template <typename T>
378
template <typename U>
379
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator^=
388
template <typename T>
389
template <typename U>
390
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator<<=
399
template <typename T>
400
template <typename U>
401
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator<<=
410
template <typename T>
411
template <typename U>
412
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator>>=
421
template <typename T>
422
template <typename U>
423
GLM_FUNC_QUALIFIER tvec1<T> & tvec1<T>::operator>>=
432
//////////////////////////////////////
435
template <typename T>
437
tvec1<T>::swizzle(comp x) const
442
template <typename T>
443
GLM_FUNC_QUALIFIER tvec2<T>
455
template <typename T>
456
GLM_FUNC_QUALIFIER tvec3<T>
470
template <typename T>
471
GLM_FUNC_QUALIFIER tvec4<T>
487
template <typename T>
488
GLM_FUNC_QUALIFIER tref1<T>
498
//////////////////////////////////////
499
// Binary arithmetic operators
501
template <typename T>
502
GLM_FUNC_QUALIFIER tvec1<T> operator+
505
typename tvec1<T>::value_type const & s
512
template <typename T>
513
GLM_FUNC_QUALIFIER tvec1<T> operator+
515
typename tvec1<T>::value_type const & s,
523
template <typename T>
524
GLM_FUNC_QUALIFIER tvec1<T> operator+
535
template <typename T>
536
GLM_FUNC_QUALIFIER tvec1<T> operator-
539
typename tvec1<T>::value_type const & s
546
template <typename T>
547
GLM_FUNC_QUALIFIER tvec1<T> operator-
549
typename tvec1<T>::value_type const & s,
557
template <typename T>
558
GLM_FUNC_QUALIFIER tvec1<T> operator-
569
template <typename T>
570
GLM_FUNC_QUALIFIER tvec1<T> operator*
573
typename tvec1<T>::value_type const & s
580
template <typename T>
581
GLM_FUNC_QUALIFIER tvec1<T> operator*
583
typename tvec1<T>::value_type const & s,
591
template <typename T>
592
GLM_FUNC_QUALIFIER tvec1<T> operator*
603
template <typename T>
604
GLM_FUNC_QUALIFIER tvec1<T> operator/
607
typename tvec1<T>::value_type const & s
614
template <typename T>
615
GLM_FUNC_QUALIFIER tvec1<T> operator/
617
typename tvec1<T>::value_type const & s,
625
template <typename T>
626
GLM_FUNC_QUALIFIER tvec1<T> operator/
636
// Unary constant operators
637
template <typename T>
638
GLM_FUNC_QUALIFIER tvec1<T> operator-
647
template <typename T>
648
GLM_FUNC_QUALIFIER tvec1<T> operator++
658
template <typename T>
659
GLM_FUNC_QUALIFIER tvec1<T> operator--
669
//////////////////////////////////////
670
// Binary bit operators
672
template <typename T>
673
GLM_FUNC_QUALIFIER tvec1<T> operator%
676
typename tvec1<T>::value_type const & s
683
template <typename T>
684
GLM_FUNC_QUALIFIER tvec1<T> operator%
686
typename tvec1<T>::value_type const & s,
694
template <typename T>
695
GLM_FUNC_QUALIFIER tvec1<T> operator%
705
template <typename T>
706
GLM_FUNC_QUALIFIER tvec1<T> operator&
709
typename tvec1<T>::value_type const & s
716
template <typename T>
717
GLM_FUNC_QUALIFIER tvec1<T> operator&
719
typename tvec1<T>::value_type const & s,
727
template <typename T>
728
GLM_FUNC_QUALIFIER tvec1<T> operator&
738
template <typename T>
739
GLM_FUNC_QUALIFIER tvec1<T> operator|
742
typename tvec1<T>::value_type const & s
749
template <typename T>
750
GLM_FUNC_QUALIFIER tvec1<T> operator|
752
typename tvec1<T>::value_type const & s,
760
template <typename T>
761
GLM_FUNC_QUALIFIER tvec1<T> operator|
771
template <typename T>
772
GLM_FUNC_QUALIFIER tvec1<T> operator^
775
typename tvec1<T>::value_type const & s
782
template <typename T>
783
GLM_FUNC_QUALIFIER tvec1<T> operator^
785
typename tvec1<T>::value_type const & s,
793
template <typename T>
794
GLM_FUNC_QUALIFIER tvec1<T> operator^
804
template <typename T>
805
GLM_FUNC_QUALIFIER tvec1<T> operator<<
808
typename tvec1<T>::value_type const & s
815
template <typename T>
816
GLM_FUNC_QUALIFIER tvec1<T> operator<<
818
typename tvec1<T>::value_type const & s,
826
template <typename T>
827
GLM_FUNC_QUALIFIER tvec1<T> operator<<
837
template <typename T>
838
GLM_FUNC_QUALIFIER tvec1<T> operator>>
841
typename tvec1<T>::value_type const & s
848
template <typename T>
849
GLM_FUNC_QUALIFIER tvec1<T> operator>>
851
typename tvec1<T>::value_type const & s,
859
template <typename T>
860
GLM_FUNC_QUALIFIER tvec1<T> operator>>
870
template <typename T>
871
GLM_FUNC_QUALIFIER tvec1<T> operator~
880
//////////////////////////////////////
883
template <typename T>
884
GLM_FUNC_QUALIFIER tref1<T>::tref1
891
template <typename T>
892
GLM_FUNC_QUALIFIER tref1<T>::tref1
899
template <typename T>
900
GLM_FUNC_QUALIFIER tref1<T>::tref1
907
template <typename T>
908
GLM_FUNC_QUALIFIER tref1<T> & tref1<T>::operator=
917
template <typename T>
918
GLM_FUNC_QUALIFIER tref1<T> & tref1<T>::operator=