diff --git a/ostd/vecmath.hh b/ostd/vecmath.hh index bc6c924..b68e51c 100644 --- a/ostd/vecmath.hh +++ b/ostd/vecmath.hh @@ -90,21 +90,41 @@ inline Vec2 operator+(const Vec2 &a, const Vec2 &b) { return Vec2(a).add(b); } +template +inline Vec2 operator+(const Vec2 &a, T b) { + return Vec2(a).add(b); +} + template inline Vec2 operator-(const Vec2 &a, const Vec2 &b) { return Vec2(a).sub(b); } +template +inline Vec2 operator-(const Vec2 &a, T b) { + return Vec2(a).sub(b); +} + template inline Vec2 operator*(const Vec2 &a, const Vec2 &b) { return Vec2(a).mul(b); } +template +inline Vec2 operator*(const Vec2 &a, T b) { + return Vec2(a).mul(b); +} + template inline Vec2 operator/(const Vec2 &a, const Vec2 &b) { return Vec2(a).div(b); } +template +inline Vec2 operator/(const Vec2 &a, T b) { + return Vec2(a).div(b); +} + template inline Vec2 operator-(const Vec2 &a) { return Vec2(a).neg(); @@ -196,21 +216,41 @@ inline Vec3 operator+(const Vec3 &a, const Vec3 &b) { return Vec3(a).add(b); } +template +inline Vec3 operator+(const Vec3 &a, T b) { + return Vec3(a).add(b); +} + template inline Vec3 operator-(const Vec3 &a, const Vec3 &b) { return Vec3(a).sub(b); } +template +inline Vec3 operator-(const Vec3 &a, T b) { + return Vec3(a).sub(b); +} + template inline Vec3 operator*(const Vec3 &a, const Vec3 &b) { return Vec3(a).mul(b); } +template +inline Vec3 operator*(const Vec3 &a, T b) { + return Vec3(a).mul(b); +} + template inline Vec3 operator/(const Vec3 &a, const Vec3 &b) { return Vec3(a).div(b); } +template +inline Vec3 operator/(const Vec3 &a, T b) { + return Vec3(a).div(b); +} + template inline Vec3 operator-(const Vec3 &a) { return Vec3(a).neg(); @@ -302,21 +342,41 @@ inline Vec4 operator+(const Vec4 &a, const Vec4 &b) { return Vec4(a).add(b); } +template +inline Vec4 operator+(const Vec4 &a, T b) { + return Vec4(a).add(b); +} + template inline Vec4 operator-(const Vec4 &a, const Vec4 &b) { return Vec4(a).sub(b); } +template +inline Vec4 operator-(const Vec4 &a, T b) { + return Vec4(a).sub(b); +} + template inline Vec4 operator*(const Vec4 &a, const Vec4 &b) { return Vec4(a).mul(b); } +template +inline Vec4 operator*(const Vec4 &a, T b) { + return Vec4(a).mul(b); +} + template inline Vec4 operator/(const Vec4 &a, const Vec4 &b) { return Vec4(a).div(b); } +template +inline Vec4 operator/(const Vec4 &a, T b) { + return Vec4(a).div(b); +} + template inline Vec4 operator-(const Vec4 &a) { return Vec4(a).neg();