Home | History | Annotate | Download | only in common

Lines Matching refs:Size

36 template <typename T, int VecSize, int Size>
44 VecAccess& operator= (const Vector<T, Size>& v);
46 operator Vector<T, Size> (void) const;
50 int m_index[Size];
53 template <typename T, int VecSize, int Size>
54 VecAccess<T, VecSize, Size>::VecAccess (Vector<T, VecSize>& v, int x, int y)
57 DE_STATIC_ASSERT(Size == 2);
62 template <typename T, int VecSize, int Size>
63 VecAccess<T, VecSize, Size>::VecAccess (Vector<T, VecSize>& v, int x, int y, int z)
66 DE_STATIC_ASSERT(Size == 3);
72 template <typename T, int VecSize, int Size>
73 VecAccess<T, VecSize, Size>::VecAccess (Vector<T, VecSize>& v, int x, int y, int z, int w)
76 DE_STATIC_ASSERT(Size == 4);
83 template <typename T, int VecSize, int Size>
84 VecAccess<T, VecSize, Size>& VecAccess<T, VecSize, Size>::operator= (const Vector<T, Size>& v)
86 for (int i = 0; i < Size; i++)
92 template <typename T, int Size>
99 SIZE = Size,
102 T m_data[Size];
110 Vector (const Vector<T, Size>& v);
111 Vector (const T (&v)[Size]);
119 T y (void) const { DE_STATIC_ASSERT(Size >= 2); return m_data[1]; }
120 T z (void) const { DE_STATIC_ASSERT(Size >= 3); return m_data[2]; }
121 T w (void) const { DE_STATIC_ASSERT(Size >= 4); return m_data[3]; }
125 T& y (void) { DE_STATIC_ASSERT(Size >= 2); return m_data[1]; }
126 T& z (void) { DE_STATIC_ASSERT(Size >= 3); return m_data[2]; }
127 T& w (void) { DE_STATIC_ASSERT(Size >= 4); return m_data[3]; }
130 VecAccess<T, Size, 2> xy (void) { DE_ASSERT(Size >= 2); return VecAccess<T, Size, 2>(*this, 0, 1); }
131 VecAccess<T, Size, 2> xz (void) { DE_ASSERT(Size >= 2); return VecAccess<T, Size, 2>(*this, 0, 2); }
132 VecAccess<T, Size, 2> xw (void) { DE_ASSERT(Size >= 2); return VecAccess<T, Size, 2>(*this, 0, 3); }
133 VecAccess<T, Size, 2> yz (void) { DE_ASSERT(Size >= 2); return VecAccess<T, Size, 2>(*this, 1, 2); }
134 VecAccess<T, Size, 2> yw (void) { DE_ASSERT(Size >= 2); return VecAccess<T, Size, 2>(*this, 1, 3); }
135 VecAccess<T, Size, 2> zw (void) { DE_ASSERT(Size >= 2); return VecAccess<T, Size, 2>(*this, 2, 3); }
136 VecAccess<T, Size, 3> xyz (void) { DE_ASSERT(Size >= 3); return VecAccess<T, Size, 3>(*this, 0, 1, 2); }
137 VecAccess<T, Size, 3> xyw (void) { DE_ASSERT(Size >= 3); return VecAccess<T, Size, 3>(*this, 0, 1, 3); }
138 VecAccess<T, Size, 3> xzw (void) { DE_ASSERT(Size >= 3); return VecAccess<T, Size, 3>(*this, 0, 2, 3); }
139 VecAccess<T, Size, 3> zyx (void) { DE_ASSERT(Size >= 3); return VecAccess<T, Size, 3>(*this, 2, 1, 0); }
140 VecAccess<T, Size, 3> yzw (void) { DE_ASSERT(Size >= 3); return VecAccess<T, Size, 3>(*this, 1, 2, 3); }
141 VecAccess<T, Size, 3> wzy (void) { DE_ASSERT(Size >= 3); return VecAccess<T, Size, 3>(*this, 3, 2, 1); }
142 VecAccess<T, Size, 4> xyzw (void) { DE_ASSERT(Size >= 4); return VecAccess<T, Size, 4>(*this, 0, 1, 2, 3); }
145 const T& swizzle (int a) const { DE_ASSERT(a >= 0 && a < Size); return m_data[a]; }
146 Vector<T, 2> swizzle (int a, int b) const { DE_ASSERT(a >= 0 && a < Size); DE_ASSERT(b >= 0 && b < Size); return Vector<T, 2>(m_data[a], m_data[b]); }
147 Vector<T, 3> swizzle (int a, int b, int c) const { DE_ASSERT(a >= 0 && a < Size); DE_ASSERT(b >= 0 && b < Size); DE_ASSERT(c >= 0 && c < Size); return Vector<T, 3>(m_data[a], m_data[b], m_data[c]); }
148 Vector<T, 4> swizzle (int a, int b, int c, int d) const { DE_ASSERT(a >= 0 && a < Size); DE_ASSERT(b >= 0 && b < Size); DE_ASSERT(c >= 0 && c < Size); DE_ASSERT(d >= 0 && d < Size); return Vector<T, 4>(m_data[a], m_data[b], m_data[c], m_data[d]); }
150 Vector<float, Size> asFloat (void) const { return cast<float>(); }
151 Vector<int, Size> asInt (void) const { return cast<int>(); }
152 Vector<deUint32, Size> asUint (void) const { return cast<deUint32>(); }
153 Vector<bool, Size> asBool (void) const { return cast<bool>(); }
156 Vector<T, Size>& operator= (const Vector<T, Size>& v) { for (int i = 0; i < Size; i++) m_data[i] = v.m_data[i]; return *this; }
157 Vector<T, Size>& operator+= (const Vector<T, Size>& v);
159 const T& operator[] (int ndx) const { DE_ASSERT(de::inBounds(ndx, 0, Size)); return m_data[ndx]; }
160 T& operator[] (int ndx) { DE_ASSERT(de::inBounds(ndx, 0, Size)); return m_data[ndx]; }
162 bool operator== (const Vector<T, Size>& v) const { for (int i = 0; i < Size; i++) if (m_data[i] != v.m_data[i]) return false; return true; }
163 bool operator!= (const Vector<T, Size>& v) const { return !(*this == v); }
167 Vector<NewT, Size> cast (void) const;
173 template <typename T, int Size>
174 inline Vector<T, Size>::Vector (void)
176 for (int i = 0; i < Size; i++)
180 template <typename T, int Size>
181 inline Vector<T, Size>::Vector (T s)
183 for (int i = 0; i < Size; i++)
187 template <typename T, int Size>
188 inline Vector<T, Size>::Vector (T x_, T y_)
190 DE_STATIC_ASSERT(Size == 2);
195 template <typename T, int Size>
196 inline Vector<T, Size>::Vector (T x_, T y_, T z_)
198 DE_STATIC_ASSERT(Size == 3);
204 template <typename T, int Size>
205 inline Vector<T, Size>::Vector (T x_, T y_, T z_, T w_)
207 DE_STATIC_ASSERT(Size == 4);
214 template <typename T, int Size>
215 inline Vector<T, Size>::Vector (const Vector<T, Size>& v)
217 for (int i = 0; i < Size; i++)
221 template <typename T, int Size>
222 inline Vector<T, Size>::Vector (const T (&v)[Size])
224 for (int i = 0; i < Size; i++)
229 template <typename T, int VecSize, int Size>
230 VecAccess<T, VecSize, Size>::operator Vector<T, Size> (void) const
232 Vector<T, Size> vec;
233 for (int i = 0; i < Size; i++)
239 template <typename T, int Size>
241 inline Vector<NewT, Size> Vector<T, Size>::cast (void) const
243 Vector<NewT, Size> res;
244 for (int i = 0; i < Size; i++)
249 // Size cast.
250 template <typename T, int Size>
252 inline Vector<T, NewSize> Vector<T, Size>::toWidth (void) const
256 for (i = 0; i < deMin32(Size, NewSize); i++)
265 template <typename T, int Size>
266 inline Vector<T, Size>::~Vector (void)
272 template <typename T, int Size>
273 inline Vector<T, Size> operator- (const Vector<T, Size>& a)
275 Vector<T, Size> res;
276 for (int i = 0; i < Size; i++)
281 template <typename T, int Size>
282 inline Vector<T, Size> operator+ (const Vector<T, Size>& a, const Vector<T, Size>& b)
284 Vector<T, Size> res;
285 for (int i = 0; i < Size; i++)
290 template <typename T, int Size>
291 inline Vector<T, Size> operator- (const Vector<T, Size>& a, const Vector<T, Size>& b)
293 Vector<T, Size> res;
294 for (int i = 0; i < Size; i++)
299 template <typename T, int Size>
300 inline Vector<T, Size> operator* (const Vector<T, Size>& a, const Vector<T, Size>& b)
302 Vector<T, Size> res;
303 for (int i = 0; i < Size; i++)
308 template <typename T, int Size>
309 inline Vector<T, Size> operator/ (const Vector<T, Size>& a, const Vector<T, Size>& b)
311 Vector<T, Size> res;
312 for (int i = 0; i < Size; i++)
317 template <typename T, int Size>
318 inline Vector<T, Size> operator<< (const Vector<T, Size>& a, const Vector<T, Size>& b)
320 Vector<T, Size> res;
321 for (int i = 0; i < Size; i++)
326 template <typename T, int Size>
327 inline Vector<T, Size> operator>> (const Vector<T, Size>& a, const Vector<T, Size>& b)
329 Vector<T, Size> res;
330 for (int i = 0; i < Size; i++)
335 template <typename T, int Size>
336 inline Vector<T, Size> operator* (T s, const Vector<T, Size>& a)
338 Vector<T, Size> res;
339 for (int i = 0; i < Size; i++)
344 template <typename T, int Size>
345 inline Vector<T, Size> operator+ (T s, const Vector<T, Size>& a)
347 Vector<T, Size> res;
348 for (int i = 0; i < Size; i++)
353 template <typename T, int Size>
354 inline Vector<T, Size> operator- (T s, const Vector<T, Size>& a)
356 Vector<T, Size> res;
357 for (int i = 0; i < Size; i++)
362 template <typename T, int Size>
363 inline Vector<T, Size> operator- (const Vector<T, Size>& a, T s)
365 Vector<T, Size> res;
366 for (int i = 0; i < Size; i++)
371 template <typename T, int Size>
372 inline Vector<T, Size> operator/ (T s, const Vector<T, Size>& a)
374 Vector<T, Size> res;
375 for (int i = 0; i < Size; i++)
380 template <typename T, int Size>
381 inline Vector<T, Size> operator* (const Vector<T, Size>& a, T s) { return s * a; }
383 template <typename T, int Size>
384 inline Vector<T, Size> operator+ (const Vector<T, Size>& a, T s) { return s + a; }
386 template <typename T, int Size>
387 inline Vector<T, Size> operator/ (const Vector<T, Size>& a, T s)
389 Vector<T, Size> res;
390 for (int i = 0; i < Size; i++)
395 template <typename T, int Size>
396 inline Vector<T, Size>& Vector<T, Size>::operator+= (const Vector<T, Size>& v)
398 for (int i = 0; i < Size; i++)
404 template <typename T, int Size>
405 std::ostream& operator<< (std::ostream& stream, const tcu::Vector<T, Size>& vec)
408 for (int i = 0; i < Size; i++)