1
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
3
///////////////////////////////////////////////////////////////////////////////////////////////////
4
// Created : 2009-11-25
5
// Updated : 2010-02-13
6
// Licence : This source is under MIT License
7
// File : glm/gtx/wrap.inl
8
///////////////////////////////////////////////////////////////////////////////////////////////////
11
///////////////////////////////////////////////////////////////////////////////////////////////////
15
template <typename genType>
16
GLM_FUNC_QUALIFIER genType clamp
18
genType const & Texcoord
21
return glm::clamp(Texcoord, genType(0), genType(1));
25
GLM_FUNC_QUALIFIER detail::tvec2<T> clamp
27
detail::tvec2<T> const & Texcoord
30
detail::tvec2<T> Result;
31
for(typename detail::tvec2<T>::size_type i = 0; i < detail::tvec2<T>::value_size(); ++i)
32
Result[i] = clamp(Texcoord[i]);
37
GLM_FUNC_QUALIFIER detail::tvec3<T> clamp
39
detail::tvec3<T> const & Texcoord
42
detail::tvec3<T> Result;
43
for(typename detail::tvec3<T>::size_type i = 0; i < detail::tvec3<T>::value_size(); ++i)
44
Result[i] = clamp(Texcoord[i]);
49
GLM_FUNC_QUALIFIER detail::tvec4<T> clamp
51
detail::tvec4<T> const & Texcoord
54
detail::tvec4<T> Result;
55
for(typename detail::tvec4<T>::size_type i = 0; i < detail::tvec4<T>::value_size(); ++i)
56
Result[i] = clamp(Texcoord[i]);
60
////////////////////////
63
template <typename genType>
64
GLM_FUNC_QUALIFIER genType repeat
66
genType const & Texcoord
69
return glm::fract(Texcoord);
73
GLM_FUNC_QUALIFIER detail::tvec2<T> repeat
75
detail::tvec2<T> const & Texcoord
78
detail::tvec2<T> Result;
79
for(typename detail::tvec2<T>::size_type i = 0; i < detail::tvec2<T>::value_size(); ++i)
80
Result[i] = repeat(Texcoord[i]);
85
GLM_FUNC_QUALIFIER detail::tvec3<T> repeat
87
detail::tvec3<T> const & Texcoord
90
detail::tvec3<T> Result;
91
for(typename detail::tvec3<T>::size_type i = 0; i < detail::tvec3<T>::value_size(); ++i)
92
Result[i] = repeat(Texcoord[i]);
97
GLM_FUNC_QUALIFIER detail::tvec4<T> repeat
99
detail::tvec4<T> const & Texcoord
102
detail::tvec4<T> Result;
103
for(typename detail::tvec4<T>::size_type i = 0; i < detail::tvec4<T>::value_size(); ++i)
104
Result[i] = repeat(Texcoord[i]);
108
////////////////////////
111
template <typename genType>
112
GLM_FUNC_QUALIFIER genType mirrorRepeat
114
genType const & Texcoord
117
genType const Clamp = genType(int(glm::floor(Texcoord)) % 2);
118
genType const Floor = glm::floor(Texcoord);
119
genType const Rest = Texcoord - Floor;
120
genType const Mirror = Clamp + Rest;
123
if(Mirror >= genType(1))
124
Out = genType(1) - Rest;
130
template <typename T>
131
GLM_FUNC_QUALIFIER detail::tvec2<T> mirrorRepeat
133
detail::tvec2<T> const & Texcoord
136
detail::tvec2<T> Result;
137
for(typename detail::tvec2<T>::size_type i = 0; i < detail::tvec2<T>::value_size(); ++i)
138
Result[i] = mirrorRepeat(Texcoord[i]);
142
template <typename T>
143
GLM_FUNC_QUALIFIER detail::tvec3<T> mirrorRepeat
145
detail::tvec3<T> const & Texcoord
148
detail::tvec3<T> Result;
149
for(typename detail::tvec3<T>::size_type i = 0; i < detail::tvec3<T>::value_size(); ++i)
150
Result[i] = mirrorRepeat(Texcoord[i]);
154
template <typename T>
155
GLM_FUNC_QUALIFIER detail::tvec4<T> mirrorRepeat
157
detail::tvec4<T> const & Texcoord
160
detail::tvec4<T> Result;
161
for(typename detail::tvec4<T>::size_type i = 0; i < detail::tvec4<T>::value_size(); ++i)
162
Result[i] = mirrorRepeat(Texcoord[i]);