From e6124627e4b92ebccf904240284aae70e39813d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= Date: Fri, 3 Feb 2023 21:17:38 -0300 Subject: [PATCH] allow explicit casts between vectors of different underlying types --- src/common/utility/vectors.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/common/utility/vectors.h b/src/common/utility/vectors.h index 6b82cc5cbc..bfe6922869 100644 --- a/src/common/utility/vectors.h +++ b/src/common/utility/vectors.h @@ -98,6 +98,11 @@ struct TVector2 { } + template + explicit operator TVector2 () const noexcept { + return TVector2(static_cast(X), static_cast(Y)); + } + void Zero() { Y = X = 0; @@ -375,6 +380,11 @@ struct TVector3 } TVector3 (const TRotator &rot); + + template + explicit operator TVector3 () const noexcept { + return TVector3(static_cast(X), static_cast(Y), static_cast(Z)); + } void Zero() { @@ -738,6 +748,11 @@ struct TVector4 { } + template + explicit operator TVector4 () const noexcept { + return TVector4(static_cast(X), static_cast(Y), static_cast(Z), static_cast(W)); + } + void Zero() { Z = Y = X = W = 0;