From b5b3aeb57699e531bdc0b8be156aa6476ea4f15d Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Sat, 23 Aug 2014 13:48:00 +0200 Subject: [PATCH] Math: Warning fixes. --- src/video_core/math.h | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/video_core/math.h b/src/video_core/math.h index ca1fb0df2..83ba81235 100644 --- a/src/video_core/math.h +++ b/src/video_core/math.h @@ -50,9 +50,8 @@ static inline Vec4 MakeVec(const T& x, const T& y, const T& z, const T& w); template class Vec2 { public: - struct { - T x,y; - }; + T x; + T y; T* AsArray() { return &x; } @@ -176,10 +175,9 @@ template class Vec3 { public: - struct - { - T x,y,z; - }; + T x; + T y; + T z; T* AsArray() { return &x; } @@ -315,7 +313,7 @@ public: _DEFINE_SWIZZLER2(b, a, b##a); \ _DEFINE_SWIZZLER2(b, a, b2##a2); \ _DEFINE_SWIZZLER2(b, a, b3##a3); \ - _DEFINE_SWIZZLER2(b, a, b4##a4); + _DEFINE_SWIZZLER2(b, a, b4##a4) DEFINE_SWIZZLER2(x, y, r, g, u, v, s, t); DEFINE_SWIZZLER2(x, z, r, b, u, w, s, q); @@ -330,16 +328,27 @@ Vec3 operator * (const V& f, const Vec3& vec) return Vec3(f*vec.x,f*vec.y,f*vec.z); } +template<> +inline float Vec3::Length() const { + return std::sqrt(x * x + y * y + z * z); +} + +template<> +inline Vec3 Vec3::Normalized() const { + return *this / Length(); +} + + typedef Vec3 Vec3f; template class Vec4 { public: - struct - { - T x,y,z,w; - }; + T x; + T y; + T z; + T w; T* AsArray() { return &x; } @@ -456,7 +465,7 @@ public: _DEFINE_SWIZZLER2(a, b, a##b); \ _DEFINE_SWIZZLER2(a, b, a2##b2); \ _DEFINE_SWIZZLER2(b, a, b##a); \ - _DEFINE_SWIZZLER2(b, a, b2##a2); + _DEFINE_SWIZZLER2(b, a, b2##a2) DEFINE_SWIZZLER2(x, y, r, g); DEFINE_SWIZZLER2(x, z, r, b); @@ -480,7 +489,7 @@ public: _DEFINE_SWIZZLER3(b, a, c, b2##a2##c2); \ _DEFINE_SWIZZLER3(b, c, a, b2##c2##a2); \ _DEFINE_SWIZZLER3(c, a, b, c2##a2##b2); \ - _DEFINE_SWIZZLER3(c, b, a, c2##b2##a2); + _DEFINE_SWIZZLER3(c, b, a, c2##b2##a2) DEFINE_SWIZZLER3(x, y, z, r, g, b); DEFINE_SWIZZLER3(x, y, w, r, g, a);