From 221f632d6600ce03e09c2a44074ae100a507dd92 Mon Sep 17 00:00:00 2001 From: Mel Date: Sat, 1 Jul 2023 22:03:51 +0200 Subject: Replace bespoke Generator maps with tensors and matrices --- src/Math/Matrix.hpp | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'src/Math/Matrix.hpp') diff --git a/src/Math/Matrix.hpp b/src/Math/Matrix.hpp index 276dc4a..69241d3 100644 --- a/src/Math/Matrix.hpp +++ b/src/Math/Matrix.hpp @@ -2,23 +2,21 @@ #include #include -#include #include "Rotation.hpp" #include "Trig.hpp" template struct Matrix { -public: - Matrix() : elements{} {}; + Matrix() : elements{} {}; - Matrix(T scalar) { + explicit Matrix(T scalar) { std::fill(elements, elements + R * C, scalar); }; - template::type = 0> - Matrix(Args... args): elements{ args... } {}; + template = 0> + Matrix(Args... args): elements{ args... } {}; - Matrix(T values[R * C]) { + explicit Matrix(T values[R * C]) { std::copy(values, values + R * C, elements); }; @@ -81,8 +79,8 @@ public: return result; } - Matrix transpose() { - Matrix result{}; + Matrix transpose() { + Matrix result{}; for (int y = 0; y < R; y++) { for (int x = 0; x < C; x++) { result(x, y) = this->operator()(y, x); @@ -91,16 +89,16 @@ public: return result; } - Matrix operator+(Matrix other) { - Matrix result{}; + Matrix operator+(Matrix other) { + Matrix result{}; for (int i = 0; i < R * C; i++) { result.elements[i] = elements[i] + other.elements[i]; } return result; } - Matrix operator*(float scalar) { - Matrix result{}; + Matrix operator*(float scalar) { + Matrix result{}; for (int i = 0; i < R * C; i++) { result.elements[i] = elements[i] * scalar; } -- cgit 1.4.1