summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibGfx
diff options
context:
space:
mode:
authorStephan Unverwerth <s.unverwerth@serenityos.org>2022-01-01 17:33:48 +0100
committerAli Mohammad Pur <Ali.mpfard@gmail.com>2022-01-09 16:21:13 +0330
commitb07bb85700eadd702bd0aa4c21dcd7a80e42cb4b (patch)
tree703d3de22e11690dc7b910e1a824011ec53dfcfc /Userland/Libraries/LibGfx
parent486d2d099c560c9f2dc3a2ffb06481e603bac4d0 (diff)
downloadserenity-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.h6
-rw-r--r--Userland/Libraries/LibGfx/Vector3.h6
-rw-r--r--Userland/Libraries/LibGfx/Vector4.h6
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);
}