From 8eea3c76458f84c33e33c42f876f3afdc7aaa6e5 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 16 Sep 2013 00:39:19 +0200 Subject: [PATCH] Remove tref* --- glm/core/dummy.cpp | 18 +++- glm/core/type_mat2x2.hpp | 2 +- glm/core/type_mat2x3.hpp | 2 +- glm/core/type_mat2x4.hpp | 2 +- glm/core/type_mat3x2.hpp | 2 +- glm/core/type_mat3x3.hpp | 2 +- glm/core/type_mat3x4.hpp | 2 +- glm/core/type_mat4x2.hpp | 2 +- glm/core/type_mat4x3.hpp | 2 +- glm/core/type_mat4x4.hpp | 2 +- glm/core/type_vec1.hpp | 16 +-- glm/core/type_vec1.inl | 78 +------------- glm/core/type_vec2.hpp | 18 +--- glm/core/type_vec2.inl | 90 +---------------- glm/core/type_vec3.hpp | 25 +---- glm/core/type_vec3.inl | 117 +-------------------- glm/core/type_vec4.hpp | 45 +-------- glm/core/type_vec4.inl | 212 +-------------------------------------- 18 files changed, 44 insertions(+), 593 deletions(-) diff --git a/glm/core/dummy.cpp b/glm/core/dummy.cpp index 29731c57..7116729a 100644 --- a/glm/core/dummy.cpp +++ b/glm/core/dummy.cpp @@ -55,16 +55,26 @@ int test_simd() #endif//GLM_ARCH */ + +template +class C; + +template +class C +{ +public: + T value; +}; + int main() { - glm::mat4 A(1.0f); - glm::vec4 B(1.0f); - glm::vec4 C = A * B; - /* # if(GLM_ARCH & GLM_ARCH_SSE2) test_simd(); # endif */ + + C<> c; + return 0; } diff --git a/glm/core/type_mat2x2.hpp b/glm/core/type_mat2x2.hpp index d0a8a961..ac6ea704 100644 --- a/glm/core/type_mat2x2.hpp +++ b/glm/core/type_mat2x2.hpp @@ -35,7 +35,7 @@ namespace glm{ namespace detail { - template + template struct tmat2x2 { // Implementation detail diff --git a/glm/core/type_mat2x3.hpp b/glm/core/type_mat2x3.hpp index 0a862cad..1198bbbc 100644 --- a/glm/core/type_mat2x3.hpp +++ b/glm/core/type_mat2x3.hpp @@ -35,7 +35,7 @@ namespace glm{ namespace detail { - template + template struct tmat2x3 { enum ctor{_null}; diff --git a/glm/core/type_mat2x4.hpp b/glm/core/type_mat2x4.hpp index 70c10f10..be830776 100644 --- a/glm/core/type_mat2x4.hpp +++ b/glm/core/type_mat2x4.hpp @@ -35,7 +35,7 @@ namespace glm{ namespace detail { - template + template struct tmat2x4 { enum ctor{_null}; diff --git a/glm/core/type_mat3x2.hpp b/glm/core/type_mat3x2.hpp index 1d6b1056..6e305299 100644 --- a/glm/core/type_mat3x2.hpp +++ b/glm/core/type_mat3x2.hpp @@ -35,7 +35,7 @@ namespace glm{ namespace detail { - template + template struct tmat3x2 { enum ctor{_null}; diff --git a/glm/core/type_mat3x3.hpp b/glm/core/type_mat3x3.hpp index f217e35c..26f44aec 100644 --- a/glm/core/type_mat3x3.hpp +++ b/glm/core/type_mat3x3.hpp @@ -35,7 +35,7 @@ namespace glm{ namespace detail { - template + template struct tmat3x3 { enum ctor{_null}; diff --git a/glm/core/type_mat3x4.hpp b/glm/core/type_mat3x4.hpp index 00719b9a..eab4cd44 100644 --- a/glm/core/type_mat3x4.hpp +++ b/glm/core/type_mat3x4.hpp @@ -35,7 +35,7 @@ namespace glm{ namespace detail { - template + template struct tmat3x4 { enum ctor{_null}; diff --git a/glm/core/type_mat4x2.hpp b/glm/core/type_mat4x2.hpp index ad1a1084..62e30517 100644 --- a/glm/core/type_mat4x2.hpp +++ b/glm/core/type_mat4x2.hpp @@ -35,7 +35,7 @@ namespace glm{ namespace detail { - template + template struct tmat4x2 { enum ctor{_null}; diff --git a/glm/core/type_mat4x3.hpp b/glm/core/type_mat4x3.hpp index 4f12a089..0b83a596 100644 --- a/glm/core/type_mat4x3.hpp +++ b/glm/core/type_mat4x3.hpp @@ -35,7 +35,7 @@ namespace glm{ namespace detail { - template + template struct tmat4x3 { enum ctor{_null}; diff --git a/glm/core/type_mat4x4.hpp b/glm/core/type_mat4x4.hpp index 4a13aba2..809ee5de 100644 --- a/glm/core/type_mat4x4.hpp +++ b/glm/core/type_mat4x4.hpp @@ -35,7 +35,7 @@ namespace glm{ namespace detail { - template + template struct tmat4x4 { enum ctor{_null}; diff --git a/glm/core/type_vec1.hpp b/glm/core/type_vec1.hpp index c27f3468..7ab9b88a 100644 --- a/glm/core/type_vec1.hpp +++ b/glm/core/type_vec1.hpp @@ -36,7 +36,7 @@ namespace glm{ namespace detail { - template + template struct tvec1 { ////////////////////////////////////// @@ -83,7 +83,7 @@ namespace detail ////////////////////////////////////// // Swizzle constructors - GLM_FUNC_DECL tvec1(tref1 const & r); + ////////////////////////////////////// // Conversion scalar constructors @@ -169,18 +169,6 @@ namespace detail GLM_FUNC_DECL tvec1 & operator>>=(tvec1 const & v); }; - template - struct tref1 - { - GLM_FUNC_DECL tref1(T & x); - GLM_FUNC_DECL tref1(tref1 const & r); - GLM_FUNC_DECL tref1(tvec1 const & v); - GLM_FUNC_DECL tref1 & operator= (tref1 const & r); - GLM_FUNC_DECL tref1 & operator= (tvec1 const & v); - - T& x; - }; - GLM_DETAIL_IS_VECTOR(tvec1); }//namespace detail diff --git a/glm/core/type_vec1.inl b/glm/core/type_vec1.inl index 838ee2ef..d193a062 100644 --- a/glm/core/type_vec1.inl +++ b/glm/core/type_vec1.inl @@ -61,19 +61,13 @@ namespace detail {} template - GLM_FUNC_QUALIFIER tvec1::tvec1 - ( - tvec1 const & v - ) : + GLM_FUNC_QUALIFIER tvec1::tvec1(tvec1 const & v) : x(v.x) {} template template - GLM_FUNC_QUALIFIER tvec1::tvec1 - ( - tvec1 const & v - ) : + GLM_FUNC_QUALIFIER tvec1::tvec1(tvec1 const & v) : x(v.x) {} @@ -81,31 +75,14 @@ namespace detail // Explicit basic constructors template - GLM_FUNC_QUALIFIER tvec1::tvec1 - ( - ctor - ) + GLM_FUNC_QUALIFIER tvec1::tvec1(ctor) {} template - GLM_FUNC_QUALIFIER tvec1::tvec1 - ( - T const & s - ) : + GLM_FUNC_QUALIFIER tvec1::tvec1(T const & s) : x(s) {} - ////////////////////////////////////// - // Swizzle constructors - - template - GLM_FUNC_QUALIFIER tvec1::tvec1 - ( - tref1 const & r - ) : - x(r.x) - {} - ////////////////////////////////////// // Conversion scalar constructors @@ -842,52 +819,5 @@ namespace detail ~v.x); } - ////////////////////////////////////// - // tref definition - - template - GLM_FUNC_QUALIFIER tref1::tref1 - ( - T & x - ) : - x(x) - {} - - template - GLM_FUNC_QUALIFIER tref1::tref1 - ( - tref1 const & r - ) : - x(r.x) - {} - - template - GLM_FUNC_QUALIFIER tref1::tref1 - ( - tvec1 const & v - ) : - x(v.x) - {} - - template - GLM_FUNC_QUALIFIER tref1 & tref1::operator= - ( - tref1 const & r - ) - { - x = r.x; - return *this; - } - - template - GLM_FUNC_QUALIFIER tref1 & tref1::operator= - ( - tvec1 const & v - ) - { - x = v.x; - return *this; - } - }//namespace detail }//namespace glm diff --git a/glm/core/type_vec2.hpp b/glm/core/type_vec2.hpp index 74b849ef..6e8e0d3b 100644 --- a/glm/core/type_vec2.hpp +++ b/glm/core/type_vec2.hpp @@ -36,7 +36,7 @@ namespace glm{ namespace detail { - template + template struct tvec2 { ////////////////////////////////////// @@ -110,8 +110,6 @@ namespace detail ////////////////////////////////////// // Swizzle constructors - GLM_FUNC_DECL tvec2(tref2 const & r); - # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)) template GLM_FUNC_DECL tvec2(_swizzle<2,T, P, tvec2, E0, E1,-1,-2> const & that) @@ -207,20 +205,6 @@ namespace detail GLM_FUNC_DECL tvec2 & operator>>=(tvec2 const & v); }; - template - struct tref2 - { - GLM_FUNC_DECL tref2(T & x, T & y); - GLM_FUNC_DECL tref2(tref2 const & r); - GLM_FUNC_DECL explicit tref2(tvec2 const & v); - GLM_FUNC_DECL tref2 & operator= (tref2 const & r); - GLM_FUNC_DECL tref2 & operator= (tvec2 const & v); - GLM_FUNC_DECL tvec2 operator() (); - - T & x; - T & y; - }; - GLM_DETAIL_IS_VECTOR(tvec2); template diff --git a/glm/core/type_vec2.inl b/glm/core/type_vec2.inl index 453ed2db..88e06d9a 100644 --- a/glm/core/type_vec2.inl +++ b/glm/core/type_vec2.inl @@ -62,20 +62,14 @@ namespace detail {} template - GLM_FUNC_QUALIFIER tvec2::tvec2 - ( - tvec2 const & v - ) : + GLM_FUNC_QUALIFIER tvec2::tvec2(tvec2 const & v) : x(v.x), y(v.y) {} template template - GLM_FUNC_QUALIFIER tvec2::tvec2 - ( - tvec2 const & v - ) : + GLM_FUNC_QUALIFIER tvec2::tvec2(tvec2 const & v) : x(v.x), y(v.y) {} @@ -84,17 +78,11 @@ namespace detail // Explicit basic constructors template - GLM_FUNC_QUALIFIER tvec2::tvec2 - ( - ctor - ) + GLM_FUNC_QUALIFIER tvec2::tvec2(ctor) {} template - GLM_FUNC_QUALIFIER tvec2::tvec2 - ( - T const & s - ) : + GLM_FUNC_QUALIFIER tvec2::tvec2(T const & s) : x(s), y(s) {} @@ -109,18 +97,6 @@ namespace detail y(s2) {} - ////////////////////////////////////// - // Swizzle constructors - - template - GLM_FUNC_QUALIFIER tvec2::tvec2 - ( - tref2 const & r - ) : - x(r.x), - y(r.y) - {} - ////////////////////////////////////// // Conversion scalar constructors @@ -897,63 +873,5 @@ namespace detail ~v.y); } - ////////////////////////////////////// - // tref definition - - template - GLM_FUNC_QUALIFIER tref2::tref2 - ( - T & x, - T & y - ) : - x(x), - y(y) - {} - - template - GLM_FUNC_QUALIFIER tref2::tref2 - ( - tref2 const & r - ) : - x(r.x), - y(r.y) - {} - - template - GLM_FUNC_QUALIFIER tref2::tref2 - ( - tvec2 const & v - ) : - x(v.x), - y(v.y) - {} - - template - GLM_FUNC_QUALIFIER tref2& tref2::operator= - ( - tref2 const & r - ) - { - x = r.x; - y = r.y; - return *this; - } - - template - GLM_FUNC_QUALIFIER tref2& tref2::operator= - ( - tvec2 const & v - ) - { - x = v.x; - y = v.y; - return *this; - } - - template - GLM_FUNC_QUALIFIER tvec2 tref2::operator() () - { - return tvec2(this->x, this->y); - } }//namespace detail }//namespace glm diff --git a/glm/core/type_vec3.hpp b/glm/core/type_vec3.hpp index fad1b546..68603ae6 100644 --- a/glm/core/type_vec3.hpp +++ b/glm/core/type_vec3.hpp @@ -36,7 +36,7 @@ namespace glm{ namespace detail { - template + template struct tvec3 { ////////////////////////////////////// @@ -142,14 +142,6 @@ namespace detail ////////////////////////////////////// // Swizzle constructors - GLM_FUNC_DECL tvec3(tref3 const & r); - - template - GLM_FUNC_DECL explicit tvec3(tref2 const & v, B const & s); - - template - GLM_FUNC_DECL explicit tvec3(A const & s, tref2 const & v); - # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)) template GLM_FUNC_DECL tvec3(_swizzle<3, T, P, tvec3, E0, E1, E2, -1> const & that) @@ -231,21 +223,6 @@ namespace detail GLM_FUNC_DECL tvec3 & operator>>=(tvec3 const & v); }; - template - struct tref3 - { - GLM_FUNC_DECL tref3(T & x, T & y, T & z); - GLM_FUNC_DECL tref3(tref3 const & r); - GLM_FUNC_DECL explicit tref3(tvec3 const & v); - GLM_FUNC_DECL tref3 & operator= (tref3 const & r); - GLM_FUNC_DECL tref3 & operator= (tvec3 const & v); - GLM_FUNC_DECL tvec3 operator() (); - - T & x; - T & y; - T & z; - }; - GLM_DETAIL_IS_VECTOR(tvec3); template diff --git a/glm/core/type_vec3.inl b/glm/core/type_vec3.inl index b656a91a..36cc1e2b 100644 --- a/glm/core/type_vec3.inl +++ b/glm/core/type_vec3.inl @@ -63,10 +63,7 @@ namespace detail {} template - GLM_FUNC_QUALIFIER tvec3::tvec3 - ( - tvec3 const & v - ) : + GLM_FUNC_QUALIFIER tvec3::tvec3(tvec3 const & v) : x(v.x), y(v.y), z(v.z) @@ -74,10 +71,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec3::tvec3 - ( - tvec3 const & v - ) : + GLM_FUNC_QUALIFIER tvec3::tvec3(tvec3 const & v) : x(v.x), y(v.y), z(v.z) @@ -87,17 +81,11 @@ namespace detail // Explicit basic constructors template - GLM_FUNC_QUALIFIER tvec3::tvec3 - ( - ctor - ) + GLM_FUNC_QUALIFIER tvec3::tvec3(ctor) {} template - GLM_FUNC_QUALIFIER tvec3::tvec3 - ( - T const & s - ) : + GLM_FUNC_QUALIFIER tvec3::tvec3(T const & s) : x(s), y(s), z(s) @@ -115,43 +103,6 @@ namespace detail z(s2) {} - ////////////////////////////////////// - // Swizzle constructors - - template - GLM_FUNC_QUALIFIER tvec3::tvec3 - ( - tref3 const & r - ) : - x(r.x), - y(r.y), - z(r.z) - {} - - template - template - GLM_FUNC_QUALIFIER tvec3::tvec3 - ( - tref2 const & v, - B const & s - ) : - x(static_cast(v.x)), - y(static_cast(v.y)), - z(static_cast(s)) - {} - - template - template - GLM_FUNC_QUALIFIER tvec3::tvec3 - ( - A const & s, - tref2 const & v - ) : - x(static_cast(s)), - y(static_cast(v.x)), - z(static_cast(v.y)) - {} - ////////////////////////////////////// // Conversion scalar constructors @@ -1003,65 +954,5 @@ namespace detail ~v.z); } - ////////////////////////////////////// - // tref definition - - template - GLM_FUNC_QUALIFIER tref3::tref3(T & x, T & y, T & z) : - x(x), - y(y), - z(z) - {} - - template - GLM_FUNC_QUALIFIER tref3::tref3 - ( - tref3 const & r - ) : - x(r.x), - y(r.y), - z(r.z) - {} - - template - GLM_FUNC_QUALIFIER tref3::tref3 - ( - tvec3 const & v - ) : - x(v.x), - y(v.y), - z(v.z) - {} - - template - GLM_FUNC_QUALIFIER tref3 & tref3::operator= - ( - tref3 const & r - ) - { - x = r.x; - y = r.y; - z = r.z; - return *this; - } - - template - GLM_FUNC_QUALIFIER tref3 & tref3::operator= - ( - tvec3 const & v - ) - { - x = v.x; - y = v.y; - z = v.z; - return *this; - } - - template - GLM_FUNC_QUALIFIER tvec3 tref3::operator() () - { - return tvec3(this->x, this->y, this->z); - } - }//namespace detail }//namespace glm diff --git a/glm/core/type_vec4.hpp b/glm/core/type_vec4.hpp index 9ac74382..3325c967 100644 --- a/glm/core/type_vec4.hpp +++ b/glm/core/type_vec4.hpp @@ -36,7 +36,7 @@ namespace glm{ namespace detail { - template + template struct tvec4 { ////////////////////////////////////// @@ -154,33 +154,6 @@ namespace detail ////////////////////////////////////// // Swizzle constructors - GLM_FUNC_DECL tvec4(tref4 const & r); - - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - GLM_FUNC_DECL explicit tvec4(tref2 const & v, B const & s1, C const & s2); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - GLM_FUNC_DECL explicit tvec4(A const & s1, tref2 const & v, C const & s2); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - GLM_FUNC_DECL explicit tvec4(A const & s1, B const & s2, tref2 const & v); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - GLM_FUNC_DECL explicit tvec4(tref3 const & v, B const & s); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - GLM_FUNC_DECL explicit tvec4(A const & s, tref3 const & v); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - GLM_FUNC_DECL explicit tvec4(tref2 const & v1, tref2 const & v2); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - GLM_FUNC_DECL explicit tvec4(tvec2 const & v1, tref2 const & v2); - //! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) - template - GLM_FUNC_DECL explicit tvec4(tref2 const & v1, tvec2 const & v2); - # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)) template GLM_FUNC_DECL tvec4(_swizzle<4, T, P, tvec4, E0, E1, E2, E3> const & that) @@ -286,22 +259,6 @@ namespace detail GLM_FUNC_DECL tvec4 & operator>>=(tvec4 const & v); }; - template - struct tref4 - { - GLM_FUNC_DECL tref4(T & x, T & y, T & z, T & w); - GLM_FUNC_DECL tref4(tref4 const & r); - GLM_FUNC_DECL explicit tref4(tvec4 const & v); - GLM_FUNC_DECL tref4 & operator= (tref4 const & r); - GLM_FUNC_DECL tref4 & operator= (tvec4 const & v); - GLM_FUNC_DECL tvec4 operator() (); - - T & x; - T & y; - T & z; - T & w; - }; - GLM_DETAIL_IS_VECTOR(tvec4); template diff --git a/glm/core/type_vec4.inl b/glm/core/type_vec4.inl index 01635b93..c485c2f8 100644 --- a/glm/core/type_vec4.inl +++ b/glm/core/type_vec4.inl @@ -64,10 +64,7 @@ namespace detail {} template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - type const & v - ) : + GLM_FUNC_QUALIFIER tvec4::tvec4(tvec4 const & v) : x(v.x), y(v.y), z(v.z), @@ -76,10 +73,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - tvec4 const & v - ) : + GLM_FUNC_QUALIFIER tvec4::tvec4(tvec4 const & v) : x(v.x), y(v.y), z(v.z), @@ -90,17 +84,11 @@ namespace detail // Explicit basic constructors template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - ctor - ) + GLM_FUNC_QUALIFIER tvec4::tvec4(ctor) {} template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - T const & s - ) : + GLM_FUNC_QUALIFIER tvec4::tvec4(T const & s) : x(s), y(s), z(s), @@ -121,127 +109,6 @@ namespace detail w(s4) {} - ////////////////////////////////////// - // Swizzle constructors - - template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - tref4 const & r - ) : - x(r.x), - y(r.y), - z(r.z), - w(r.w) - {} - - template - template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - tref2 const & v, - B const & s1, - C const & s2 - ) : - x(static_cast(v.x)), - y(static_cast(v.y)), - z(static_cast(s1)), - w(static_cast(s2)) - {} - - template - template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - A const & s1, - tref2 const & v, - C const & s2 - ) : - x(static_cast(s1)), - y(static_cast(v.x)), - z(static_cast(v.y)), - w(static_cast(s2)) - {} - - template - template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - A const & s1, - B const & s2, - tref2 const & v - ) : - x(static_cast(s1)), - y(static_cast(s2)), - z(static_cast(v.x)), - w(static_cast(v.y)) - {} - - template - template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - tref3 const & v, - B const & s - ) : - x(static_cast(v.x)), - y(static_cast(v.y)), - z(static_cast(v.z)), - w(static_cast(s)) - {} - - template - template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - A const & s, - tref3 const & v - ) : - x(static_cast(s)), - y(static_cast(v.x)), - z(static_cast(v.y)), - w(static_cast(v.z)) - {} - - template - template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - tref2 const & v1, - tref2 const & v2 - ) : - x(static_cast(v1.x)), - y(static_cast(v1.y)), - z(static_cast(v2.x)), - w(static_cast(v2.y)) - {} - - template - template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - tvec2 const & v1, - tref2 const & v2 - ) : - x(static_cast(v1.x)), - y(static_cast(v1.y)), - z(static_cast(v2.x)), - w(static_cast(v2.y)) - {} - - template - template - GLM_FUNC_QUALIFIER tvec4::tvec4 - ( - tref2 const & v1, - tvec2 const & v2 - ) : - x(static_cast(v1.x)), - y(static_cast(v1.y)), - z(static_cast(v2.x)), - w(static_cast(v2.y)) - {} - ////////////////////////////////////// // Conversion scalar constructors @@ -1199,76 +1066,5 @@ namespace detail ~v.w); } - ////////////////////////////////////// - // tref definition - - template - GLM_FUNC_QUALIFIER tref4::tref4 - ( - T & x, - T & y, - T & z, - T & w - ) : - x(x), - y(y), - z(z), - w(w) - {} - - template - GLM_FUNC_QUALIFIER tref4::tref4 - ( - tref4 const & r - ) : - x(r.x), - y(r.y), - z(r.z), - w(r.w) - {} - - template - GLM_FUNC_QUALIFIER tref4::tref4 - ( - tvec4 const & v - ) : - x(v.x), - y(v.y), - z(v.z), - w(v.w) - {} - - template - GLM_FUNC_QUALIFIER tref4& tref4::operator= - ( - tref4 const & r - ) - { - x = r.x; - y = r.y; - z = r.z; - w = r.w; - return *this; - } - - template - GLM_FUNC_QUALIFIER tref4& tref4::operator= - ( - tvec4 const & v - ) - { - x = v.x; - y = v.y; - z = v.z; - w = v.w; - return *this; - } - - template - GLM_FUNC_QUALIFIER tvec4 tref4::operator() () - { - return tvec4(this->x, this->y, this->z, this->w); - } - }//namespace detail }//namespace glm