diff options
author | Stephan Unverwerth <s.unverwerth@serenityos.org> | 2022-01-01 17:33:48 +0100 |
---|---|---|
committer | Ali Mohammad Pur <Ali.mpfard@gmail.com> | 2022-01-09 16:21:13 +0330 |
commit | b07bb85700eadd702bd0aa4c21dcd7a80e42cb4b (patch) | |
tree | 703d3de22e11690dc7b910e1a824011ec53dfcfc /Userland/Libraries/LibGfx | |
parent | 486d2d099c560c9f2dc3a2ffb06481e603bac4d0 (diff) | |
download | serenity-b07bb85700eadd702bd0aa4c21dcd7a80e42cb4b.zip |
LibGfx: Allow Vector{2,3,4} operators to accept different argument types
This is needed to e.g. multiply a Vector4<f32x4> by a float.
Diffstat (limited to 'Userland/Libraries/LibGfx')
-rw-r--r-- | Userland/Libraries/LibGfx/Vector2.h | 6 | ||||
-rw-r--r-- | Userland/Libraries/LibGfx/Vector3.h | 6 | ||||
-rw-r--r-- | Userland/Libraries/LibGfx/Vector4.h | 6 |
3 files changed, 12 insertions, 6 deletions
diff --git a/Userland/Libraries/LibGfx/Vector2.h b/Userland/Libraries/LibGfx/Vector2.h index 1868e8f8aa..2aa13136b2 100644 --- a/Userland/Libraries/LibGfx/Vector2.h +++ b/Userland/Libraries/LibGfx/Vector2.h @@ -60,12 +60,14 @@ public: return Vector2(m_x / other.m_x, m_y / other.m_y); } - constexpr Vector2 operator*(T f) const + template<typename U> + constexpr Vector2 operator*(U f) const { return Vector2(m_x * f, m_y * f); } - constexpr Vector2 operator/(T f) const + template<typename U> + constexpr Vector2 operator/(U f) const { return Vector2(m_x / f, m_y / f); } diff --git a/Userland/Libraries/LibGfx/Vector3.h b/Userland/Libraries/LibGfx/Vector3.h index c6485eecb5..d6888c241e 100644 --- a/Userland/Libraries/LibGfx/Vector3.h +++ b/Userland/Libraries/LibGfx/Vector3.h @@ -65,12 +65,14 @@ public: return Vector3(m_x / other.m_x, m_y / other.m_y, m_z / other.m_z); } - constexpr Vector3 operator*(T f) const + template<typename U> + constexpr Vector3 operator*(U f) const { return Vector3(m_x * f, m_y * f, m_z * f); } - constexpr Vector3 operator/(T f) const + template<typename U> + constexpr Vector3 operator/(U f) const { return Vector3(m_x / f, m_y / f, m_z / f); } diff --git a/Userland/Libraries/LibGfx/Vector4.h b/Userland/Libraries/LibGfx/Vector4.h index 53e9c7bc14..06accb44a1 100644 --- a/Userland/Libraries/LibGfx/Vector4.h +++ b/Userland/Libraries/LibGfx/Vector4.h @@ -70,12 +70,14 @@ public: return Vector4(m_x / other.m_x, m_y / other.m_y, m_z / other.m_z, m_w / other.m_w); } - constexpr Vector4 operator*(T f) const + template<typename U> + constexpr Vector4 operator*(U f) const { return Vector4(m_x * f, m_y * f, m_z * f, m_w * f); } - constexpr Vector4 operator/(T f) const + template<typename U> + constexpr Vector4 operator/(U f) const { return Vector4(m_x / f, m_y / f, m_z / f, m_w / f); } |