From bb85af197c4d07ae5da0b7212372c1a77f0a6b4a Mon Sep 17 00:00:00 2001 From: Jorijn van der Graaf Date: Wed, 11 Feb 2026 03:01:42 +0100 Subject: [PATCH] scalar vector math --- interfaces/Crafter.Math-Vector.cppm | 57 +++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/interfaces/Crafter.Math-Vector.cppm b/interfaces/Crafter.Math-Vector.cppm index 75232d9..0ab07ba 100755 --- a/interfaces/Crafter.Math-Vector.cppm +++ b/interfaces/Crafter.Math-Vector.cppm @@ -209,6 +209,63 @@ namespace Crafter { } } + template + constexpr Vector operator+(BT b) const { + Vector resultVector; + for(std::uint32_t i = 0; i < Len; i++) { + resultVector.v[i] = this->v[i] + b; + } + return resultVector; + } + template + constexpr Vector operator-(BT b) const { + Vector resultVector; + for(std::uint32_t i = 0; i < Len; i++) { + resultVector.v[i] = this->v[i] - b; + } + return resultVector; + } + template + constexpr Vector operator*(BT b) const { + Vector resultVector; + for(std::uint32_t i = 0; i < Len; i++) { + resultVector.v[i] = this->v[i] * b; + } + return resultVector; + } + template + constexpr Vector operator/(BT b) const { + Vector resultVector; + for(std::uint32_t i = 0; i < Len; i++) { + resultVector.v[i] = this->v[i] / b; + } + return resultVector; + } + template + constexpr void operator+=(BT b){ + for(std::uint32_t i = 0; i < Len; i++) { + this->v[i] += b; + } + } + template + constexpr void operator-=(BT b){ + for(std::uint32_t i = 0; i < Len; i++) { + this->v[i] -= b; + } + } + template + constexpr void operator*=(BT b){ + for(std::uint32_t i = 0; i < Len; i++) { + this->v[i] *= b; + } + } + template + constexpr void operator/=(BT b){ + for(std::uint32_t i = 0; i < Len; i++) { + this->v[i] /= b; + } + } + constexpr void Normalize() { float fLength = Length();