From 3860fbaa9ae38560ed12de253c47819eba03389c Mon Sep 17 00:00:00 2001 From: Sami Kankaristo Date: Sat, 12 Mar 2016 18:34:40 +0200 Subject: [PATCH] Add missing vec4 operator definitions Also rename the parameters to match similar functions in other vector classes. --- glm/detail/type_vec4.hpp | 12 ++++---- glm/detail/type_vec4.inl | 60 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 6 deletions(-) diff --git a/glm/detail/type_vec4.hpp b/glm/detail/type_vec4.hpp index d290631b..86156e5f 100644 --- a/glm/detail/type_vec4.hpp +++ b/glm/detail/type_vec4.hpp @@ -382,13 +382,13 @@ namespace detail GLM_FUNC_DECL tvec4 operator+(tvec4 const & v, const T& scalar); template - GLM_FUNC_DECL tvec4 operator+(tvec4 const & v, tvec1 const & scalar); + GLM_FUNC_DECL tvec4 operator+(tvec4 const & v1, tvec1 const & v2); template GLM_FUNC_DECL tvec4 operator+(T scalar, tvec4 const & v); template - GLM_FUNC_DECL tvec4 operator+(tvec1 const & scalar, tvec4 const & v); + GLM_FUNC_DECL tvec4 operator+(tvec1 const & v1, tvec4 const & v2); template GLM_FUNC_DECL tvec4 operator+(tvec4 const & v1, tvec4 const & v2); @@ -397,13 +397,13 @@ namespace detail GLM_FUNC_DECL tvec4 operator-(tvec4 const & v, const T& scalar); template - GLM_FUNC_DECL tvec4 operator-(tvec4 const & v, tvec1 const & scalar); + GLM_FUNC_DECL tvec4 operator-(tvec4 const & v1, tvec1 const & v2); template GLM_FUNC_DECL tvec4 operator-(T scalar, tvec4 const & v); template - GLM_FUNC_DECL tvec4 operator-(tvec1 const & scalar, tvec4 const & v); + GLM_FUNC_DECL tvec4 operator-(tvec1 const & v1, tvec4 const & v2); template GLM_FUNC_DECL tvec4 operator-(tvec4 const & v1, tvec4 const & v2); @@ -412,13 +412,13 @@ namespace detail GLM_FUNC_DECL tvec4 operator*(tvec4 const & v, const T& scalar); template - GLM_FUNC_DECL tvec4 operator*(tvec4 const & v, tvec1 const & scalar); + GLM_FUNC_DECL tvec4 operator*(tvec4 const & v1, tvec1 const & v2); template GLM_FUNC_DECL tvec4 operator*(T scalar, tvec4 const & v); template - GLM_FUNC_DECL tvec4 operator*(tvec1 const & scalar, tvec4 const & v); + GLM_FUNC_DECL tvec4 operator*(tvec1 const & v1, tvec4 const & v2); template GLM_FUNC_DECL tvec4 operator*(tvec4 const & v1, tvec4 const & v2); diff --git a/glm/detail/type_vec4.inl b/glm/detail/type_vec4.inl index 6712ce33..f8d30b57 100644 --- a/glm/detail/type_vec4.inl +++ b/glm/detail/type_vec4.inl @@ -739,6 +739,16 @@ namespace glm v.w + scalar); } + template + GLM_FUNC_QUALIFIER tvec4 operator+(tvec4 const & v1, tvec1 const & v2) + { + return tvec4( + v1.x + v2.x, + v1.y + v2.x, + v1.z + v2.x, + v1.w + v2.x); + } + template GLM_FUNC_QUALIFIER tvec4 operator+(T scalar, tvec4 const & v) { @@ -749,6 +759,16 @@ namespace glm scalar + v.w); } + template + GLM_FUNC_QUALIFIER tvec4 operator+(tvec1 const & v1, tvec4 const & v2) + { + return tvec4( + v1.x + v2.x, + v1.x + v2.y, + v1.x + v2.z, + v1.x + v2.w); + } + template GLM_FUNC_QUALIFIER tvec4 operator+(tvec4 const & v1, tvec4 const & v2) { @@ -769,6 +789,16 @@ namespace glm v.w - scalar); } + template + GLM_FUNC_QUALIFIER tvec4 operator-(tvec4 const & v1, tvec1 const & v2) + { + return tvec4( + v1.x - v2.x, + v1.y - v2.x, + v1.z - v2.x, + v1.w - v2.x); + } + template GLM_FUNC_QUALIFIER tvec4 operator-(T scalar, tvec4 const & v) { @@ -779,6 +809,16 @@ namespace glm scalar - v.w); } + template + GLM_FUNC_DECL tvec4 operator-(tvec1 const & v1, tvec4 const & v2) + { + return tvec4( + v1.x - v2.x, + v1.x - v2.y, + v1.x - v2.z, + v1.x - v2.w); + } + template GLM_FUNC_QUALIFIER tvec4 operator-(tvec4 const & v1, tvec4 const & v2) { @@ -799,6 +839,16 @@ namespace glm v.w * scalar); } + template + GLM_FUNC_QUALIFIER tvec4 operator*(tvec4 const & v1, tvec1 const & v2) + { + return tvec4( + v1.x * v2.x, + v1.y * v2.x, + v1.z * v2.x, + v1.w * v2.x); + } + template GLM_FUNC_QUALIFIER tvec4 operator*(T scalar, tvec4 const & v) { @@ -809,6 +859,16 @@ namespace glm scalar * v.w); } + template + GLM_FUNC_DECL tvec4 operator*(tvec1 const & v1, tvec4 const & v2) + { + return tvec4( + v1.x * v2.x, + v1.x * v2.y, + v1.x * v2.z, + v1.x * v2.w); + } + template GLM_FUNC_QUALIFIER tvec4 operator*(tvec4 const & v1, tvec4 const & v2) {