|
|
|
@ -514,6 +514,494 @@ namespace detail |
|
|
|
|
( |
|
|
|
|
tvec3<thalf> const & v |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x -= v.x; |
|
|
|
|
this->y -= v.y; |
|
|
|
|
this->z -= v.z; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec3<thalf> & tvec3<thalf>::operator*= |
|
|
|
|
( |
|
|
|
|
thalf const & s |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x *= s; |
|
|
|
|
this->y *= s; |
|
|
|
|
this->z *= s; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec3<thalf> & tvec3<thalf>::operator*= |
|
|
|
|
( |
|
|
|
|
tvec3<thalf> const & v |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x *= v.x; |
|
|
|
|
this->y *= v.y; |
|
|
|
|
this->z *= v.z; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec3<thalf> & tvec3<thalf>::operator/= |
|
|
|
|
( |
|
|
|
|
thalf const & s |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x /= s; |
|
|
|
|
this->y /= s; |
|
|
|
|
this->z /= s; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec3<thalf> & tvec3<thalf>::operator/= |
|
|
|
|
( |
|
|
|
|
tvec3<thalf> const & v |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x /= v.x; |
|
|
|
|
this->y /= v.y; |
|
|
|
|
this->z /= v.z; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec3<thalf> & tvec3<thalf>::operator++() |
|
|
|
|
{ |
|
|
|
|
++this->x; |
|
|
|
|
++this->y; |
|
|
|
|
++this->z; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec3<thalf> & tvec3<thalf>::operator--() |
|
|
|
|
{ |
|
|
|
|
--this->x; |
|
|
|
|
--this->y; |
|
|
|
|
--this->z; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
////////////////////////////////////// |
|
|
|
|
// Swizzle operators |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER thalf tvec3<thalf>::swizzle(comp x) const |
|
|
|
|
{ |
|
|
|
|
return (*this)[x]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec2<thalf> tvec3<thalf>::swizzle(comp x, comp y) const |
|
|
|
|
{ |
|
|
|
|
return tvec2<thalf>( |
|
|
|
|
(*this)[x], |
|
|
|
|
(*this)[y]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec3<thalf> tvec3<thalf>::swizzle(comp x, comp y, comp z) const |
|
|
|
|
{ |
|
|
|
|
return tvec3<thalf>( |
|
|
|
|
(*this)[x], |
|
|
|
|
(*this)[y], |
|
|
|
|
(*this)[z]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf> tvec3<thalf>::swizzle(comp x, comp y, comp z, comp w) const |
|
|
|
|
{ |
|
|
|
|
return tvec4<thalf>( |
|
|
|
|
(*this)[x], |
|
|
|
|
(*this)[y], |
|
|
|
|
(*this)[z], |
|
|
|
|
(*this)[w]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tref3<thalf> tvec3<thalf>::swizzle(comp x, comp y, comp z) |
|
|
|
|
{ |
|
|
|
|
return tref3<thalf>( |
|
|
|
|
(*this)[x], |
|
|
|
|
(*this)[y], |
|
|
|
|
(*this)[z]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
////////////////////////////////////// |
|
|
|
|
// hvec4 |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::size_type tvec4<thalf>::length() const |
|
|
|
|
{ |
|
|
|
|
return 4; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::size_type tvec4<thalf>::value_size() |
|
|
|
|
{ |
|
|
|
|
return 4; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
////////////////////////////////////// |
|
|
|
|
// Accesses |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER thalf & tvec4<thalf>::operator[] |
|
|
|
|
( |
|
|
|
|
tvec4<thalf>::size_type i |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
assert(/*i >= tvec4<thalf>::size_type(0) && */i < tvec4<thalf>::value_size()); |
|
|
|
|
|
|
|
|
|
return (&x)[i]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER thalf const & tvec4<thalf>::operator[] |
|
|
|
|
( |
|
|
|
|
tvec4<thalf>::size_type i |
|
|
|
|
) const |
|
|
|
|
{ |
|
|
|
|
assert(/*i >= tvec4<thalf>::size_type(0) && */i < tvec4<thalf>::value_size()); |
|
|
|
|
|
|
|
|
|
return (&x)[i]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
////////////////////////////////////// |
|
|
|
|
// Implicit basic constructors |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4() : |
|
|
|
|
x(thalf(0)), |
|
|
|
|
y(thalf(0)), |
|
|
|
|
z(thalf(0)), |
|
|
|
|
w(thalf(0)) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
tvec4<thalf> const & v |
|
|
|
|
) : |
|
|
|
|
x(v.x), |
|
|
|
|
y(v.y), |
|
|
|
|
z(v.z), |
|
|
|
|
w(v.w) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
////////////////////////////////////// |
|
|
|
|
// Explicit basic constructors |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
thalf const & s |
|
|
|
|
) : |
|
|
|
|
x(s), |
|
|
|
|
y(s), |
|
|
|
|
z(s), |
|
|
|
|
w(s) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
thalf const & s1, |
|
|
|
|
thalf const & s2, |
|
|
|
|
thalf const & s3, |
|
|
|
|
thalf const & s4 |
|
|
|
|
) : |
|
|
|
|
x(s1), |
|
|
|
|
y(s2), |
|
|
|
|
z(s3), |
|
|
|
|
w(s4) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
////////////////////////////////////// |
|
|
|
|
// Swizzle constructors |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
tref4<thalf> const & r |
|
|
|
|
) : |
|
|
|
|
x(r.x), |
|
|
|
|
y(r.y), |
|
|
|
|
z(r.z), |
|
|
|
|
w(r.w) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
////////////////////////////////////// |
|
|
|
|
// Convertion scalar constructors |
|
|
|
|
|
|
|
|
|
template <typename U> |
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
U const & x |
|
|
|
|
) : |
|
|
|
|
x(thalf(x)), |
|
|
|
|
y(thalf(x)), |
|
|
|
|
z(thalf(x)), |
|
|
|
|
w(thalf(x)) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
template <typename A, typename B, typename C, typename D> |
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
A const & x, |
|
|
|
|
B const & y, |
|
|
|
|
C const & z, |
|
|
|
|
D const & w |
|
|
|
|
) : |
|
|
|
|
x(thalf(x)), |
|
|
|
|
y(thalf(y)), |
|
|
|
|
z(thalf(z)), |
|
|
|
|
w(thalf(w)) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
////////////////////////////////////// |
|
|
|
|
// Convertion vector constructors |
|
|
|
|
|
|
|
|
|
template <typename A, typename B, typename C> |
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
tvec2<A> const & v, |
|
|
|
|
B const & s1, |
|
|
|
|
C const & s2 |
|
|
|
|
) : |
|
|
|
|
x(thalf(v.x)), |
|
|
|
|
y(thalf(v.y)), |
|
|
|
|
z(thalf(s1)), |
|
|
|
|
w(thalf(s2)) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
template <typename A, typename B, typename C> |
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
A const & s1, |
|
|
|
|
tvec2<B> const & v, |
|
|
|
|
C const & s2 |
|
|
|
|
) : |
|
|
|
|
x(thalf(s1)), |
|
|
|
|
y(thalf(v.x)), |
|
|
|
|
z(thalf(v.y)), |
|
|
|
|
w(thalf(s2)) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
template <typename A, typename B, typename C> |
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
A const & s1, |
|
|
|
|
B const & s2, |
|
|
|
|
tvec2<C> const & v |
|
|
|
|
) : |
|
|
|
|
x(thalf(s1)), |
|
|
|
|
y(thalf(s2)), |
|
|
|
|
z(thalf(v.x)), |
|
|
|
|
w(thalf(v.y)) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
template <typename A, typename B> |
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
tvec3<A> const & v, |
|
|
|
|
B const & s |
|
|
|
|
) : |
|
|
|
|
x(thalf(v.x)), |
|
|
|
|
y(thalf(v.y)), |
|
|
|
|
z(thalf(v.z)), |
|
|
|
|
w(thalf(s)) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
template <typename A, typename B> |
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
A const & s, |
|
|
|
|
tvec3<B> const & v |
|
|
|
|
) : |
|
|
|
|
x(thalf(s)), |
|
|
|
|
y(thalf(v.x)), |
|
|
|
|
z(thalf(v.y)), |
|
|
|
|
w(thalf(v.z)) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
template <typename A, typename B> |
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
tvec2<A> const & v1, |
|
|
|
|
tvec2<B> const & v2 |
|
|
|
|
) : |
|
|
|
|
x(thalf(v1.x)), |
|
|
|
|
y(thalf(v1.y)), |
|
|
|
|
z(thalf(v2.x)), |
|
|
|
|
w(thalf(v2.y)) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
template <typename U> |
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>::tvec4 |
|
|
|
|
( |
|
|
|
|
tvec4<U> const & v |
|
|
|
|
) : |
|
|
|
|
x(thalf(v.x)), |
|
|
|
|
y(thalf(v.y)), |
|
|
|
|
z(thalf(v.z)), |
|
|
|
|
w(thalf(v.w)) |
|
|
|
|
{} |
|
|
|
|
|
|
|
|
|
////////////////////////////////////// |
|
|
|
|
// Unary arithmetic operators |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>& tvec4<thalf>::operator= |
|
|
|
|
( |
|
|
|
|
tvec4<thalf> const & v |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x = v.x; |
|
|
|
|
this->y = v.y; |
|
|
|
|
this->z = v.z; |
|
|
|
|
this->w = v.w; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>& tvec4<thalf>::operator+= |
|
|
|
|
( |
|
|
|
|
thalf const & s |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x += s; |
|
|
|
|
this->y += s; |
|
|
|
|
this->z += s; |
|
|
|
|
this->w += s; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>& tvec4<thalf>::operator+= |
|
|
|
|
( |
|
|
|
|
tvec4<thalf> const & v |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x += v.x; |
|
|
|
|
this->y += v.y; |
|
|
|
|
this->z += v.z; |
|
|
|
|
this->w += v.w; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>& tvec4<thalf>::operator-= |
|
|
|
|
( |
|
|
|
|
thalf const & s |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x -= s; |
|
|
|
|
this->y -= s; |
|
|
|
|
this->z -= s; |
|
|
|
|
this->w -= s; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>& tvec4<thalf>::operator-= |
|
|
|
|
( |
|
|
|
|
tvec4<thalf> const & v |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x -= v.x; |
|
|
|
|
this->y -= v.y; |
|
|
|
|
this->z -= v.z; |
|
|
|
|
this->w -= v.w; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>& tvec4<thalf>::operator*= |
|
|
|
|
( |
|
|
|
|
thalf const & s |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x *= s; |
|
|
|
|
this->y *= s; |
|
|
|
|
this->z *= s; |
|
|
|
|
this->w *= s; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>& tvec4<thalf>::operator*= |
|
|
|
|
( |
|
|
|
|
tvec4<thalf> const & v |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x *= v.x; |
|
|
|
|
this->y *= v.y; |
|
|
|
|
this->z *= v.z; |
|
|
|
|
this->w *= v.w; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>& tvec4<thalf>::operator/= |
|
|
|
|
( |
|
|
|
|
thalf const & s |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x /= s; |
|
|
|
|
this->y /= s; |
|
|
|
|
this->z /= s; |
|
|
|
|
this->w /= s; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>& tvec4<thalf>::operator/= |
|
|
|
|
( |
|
|
|
|
tvec4<thalf> const & v |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
this->x /= v.x; |
|
|
|
|
this->y /= v.y; |
|
|
|
|
this->z /= v.z; |
|
|
|
|
this->w /= v.w; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>& tvec4<thalf>::operator++() |
|
|
|
|
{ |
|
|
|
|
++this->x; |
|
|
|
|
++this->y; |
|
|
|
|
++this->z; |
|
|
|
|
++this->w; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf>& tvec4<thalf>::operator--() |
|
|
|
|
{ |
|
|
|
|
--this->x; |
|
|
|
|
--this->y; |
|
|
|
|
--this->z; |
|
|
|
|
--this->w; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
////////////////////////////////////// |
|
|
|
|
// Swizzle operators |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER thalf tvec4<thalf>::swizzle(comp x) const |
|
|
|
|
{ |
|
|
|
|
return (*this)[x]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec2<thalf> tvec4<thalf>::swizzle(comp x, comp y) const |
|
|
|
|
{ |
|
|
|
|
return tvec2<thalf>( |
|
|
|
|
(*this)[x], |
|
|
|
|
(*this)[y]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec3<thalf> tvec4<thalf>::swizzle(comp x, comp y, comp z) const |
|
|
|
|
{ |
|
|
|
|
return tvec3<thalf>( |
|
|
|
|
(*this)[x], |
|
|
|
|
(*this)[y], |
|
|
|
|
(*this)[z]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tvec4<thalf> tvec4<thalf>::swizzle(comp x, comp y, comp z, comp w) const |
|
|
|
|
{ |
|
|
|
|
return tvec4<thalf>( |
|
|
|
|
(*this)[x], |
|
|
|
|
(*this)[y], |
|
|
|
|
(*this)[z], |
|
|
|
|
(*this)[w]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER tref4<thalf> tvec4<thalf>::swizzle(comp x, comp y, comp z, comp w) |
|
|
|
|
{ |
|
|
|
|
return tref4<thalf>( |
|
|
|
|
(*this)[x], |
|
|
|
|
(*this)[y], |
|
|
|
|
(*this)[z], |
|
|
|
|
(*this)[w]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#endif//_MSC_EXTENSIONS |
|
|
|
|
|
|
|
|
|