From 0e40bc7ce8c3b3be083002f88c3317d65f6570ad Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 6 Mar 2022 13:16:05 +0100 Subject: refactor: make vector2 & bounds data classes --- src/interfaces/bounds.hpp | 41 ----------------------------------------- src/interfaces/matrix.hpp | 10 +++++----- src/interfaces/vector2.hpp | 44 -------------------------------------------- 3 files changed, 5 insertions(+), 90 deletions(-) delete mode 100644 src/interfaces/bounds.hpp delete mode 100644 src/interfaces/vector2.hpp (limited to 'src/interfaces') diff --git a/src/interfaces/bounds.hpp b/src/interfaces/bounds.hpp deleted file mode 100644 index b431874..0000000 --- a/src/interfaces/bounds.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#pragma once - -#include "interfaces/vector2.hpp" - -#include - -enum CoordsValidation -{ - VALID, - X_HIGH, - Y_HIGH -}; - -class IBounds -{ -public: - virtual ~IBounds() = default; - - [[nodiscard]] virtual unsigned int width() const = 0; - - virtual void width(unsigned int width) = 0; - - [[nodiscard]] virtual unsigned int height() const = 0; - - virtual void height(unsigned int height) = 0; - - [[nodiscard]] virtual CoordsValidation - validate_coords(const IVector2 &coords) const = 0; - - virtual const IBounds &operator*=(const IBounds &bounds) = 0; - virtual const IBounds &operator+=(const IBounds &bounds) = 0; - virtual const IBounds &operator-=(const IBounds &bounds) = 0; -}; - -struct IBoundsOptions -{ - unsigned int width; - unsigned int height; -}; - -using IBoundsFactory = std::shared_ptr (*)(const IBoundsOptions &options); diff --git a/src/interfaces/matrix.hpp b/src/interfaces/matrix.hpp index 72d18d9..8242b18 100644 --- a/src/interfaces/matrix.hpp +++ b/src/interfaces/matrix.hpp @@ -1,7 +1,7 @@ #pragma once -#include "interfaces/bounds.hpp" -#include "interfaces/vector2.hpp" +#include "engine/data/bounds.hpp" +#include "engine/data/vector2.hpp" #include @@ -23,7 +23,7 @@ public: * * @param pos The position of a element */ - [[nodiscard]] virtual Element get(const IVector2 &pos) const = 0; + [[nodiscard]] virtual Element get(const Vector2 &pos) const = 0; /** * Sets a element of the matrix. @@ -31,7 +31,7 @@ public: * @param pos The position of a element * @param element A new element */ - virtual void set(const IVector2 &pos, Element element) = 0; + virtual void set(const Vector2 &pos, Element element) = 0; /** * Returns the number of rows the matrix has. @@ -45,4 +45,4 @@ public: }; template -using IMatrixFactory = std::shared_ptr> (*)(const IBounds &bounds); +using IMatrixFactory = std::shared_ptr> (*)(const Bounds &bounds); diff --git a/src/interfaces/vector2.hpp b/src/interfaces/vector2.hpp deleted file mode 100644 index dfd369f..0000000 --- a/src/interfaces/vector2.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#pragma once - -#include - -class IVector2 -{ -public: - virtual ~IVector2() = default; - - /** - * Returns the X coordinate. - */ - [[nodiscard]] virtual unsigned int x() const = 0; - - /** - * Sets the X coordinate. - * - * @param x A new X coordinate - */ - virtual void x(unsigned int x) = 0; - - /** - * Returns the Y coordinate. - */ - [[nodiscard]] virtual unsigned int y() const = 0; - - /** - * Sets the Y coordinate. - * - * @param Y A new Y coordinate - */ - virtual void y(unsigned int y) = 0; - - virtual const IVector2 &operator+=(const IVector2 &vector2) = 0; - virtual const IVector2 &operator-=(const IVector2 &vector2) = 0; -}; - -struct IVector2Options -{ - unsigned int x; - unsigned int y; -}; - -using IVector2Factory = std::shared_ptr (*)(const IVector2Options &options); -- cgit v1.2.3-18-g5258