aboutsummaryrefslogtreecommitdiff
path: root/src/engine/graphics/string_matrix.cpp
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-03-27 19:21:22 +0200
committerHampusM <hampus@hampusmat.com>2022-06-13 17:56:57 +0200
commit5c1c672e018e41e5c87a0263a851684a52d9c1fb (patch)
tree815a067fb558fe3c55b19842402d68e0dc0953f2 /src/engine/graphics/string_matrix.cpp
parent15c7a8fda742cc393310d75e0e1be89c3042eac0 (diff)
refactor: replace string matrix with template matrix
Diffstat (limited to 'src/engine/graphics/string_matrix.cpp')
-rw-r--r--src/engine/graphics/string_matrix.cpp140
1 files changed, 0 insertions, 140 deletions
diff --git a/src/engine/graphics/string_matrix.cpp b/src/engine/graphics/string_matrix.cpp
deleted file mode 100644
index 3920b8e..0000000
--- a/src/engine/graphics/string_matrix.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-#include "string_matrix.hpp"
-
-#include <iostream>
-#include <ranges>
-
-StringMatrix::StringMatrix(const Bounds &bounds) noexcept
- : _matrix(new std::string_view *[bounds.get_height()]),
- _row_cnt(bounds.get_height()),
- _column_cnt(bounds.get_width())
-{
- for (gsl::owner<std::string_view **> row = _matrix; row != _matrix + _row_cnt; row++)
- {
- *row = static_cast<gsl::owner<std::string_view *>>(
- new std::string_view[bounds.get_width()]);
- }
-};
-
-StringMatrix::StringMatrix(const StringMatrix &string_matrix) noexcept
- : _matrix(new std::string_view *[string_matrix._row_cnt]),
- _row_cnt(string_matrix._row_cnt),
- _column_cnt(string_matrix._column_cnt)
-{
- _copy_matrix_from(string_matrix);
-}
-
-StringMatrix::StringMatrix(StringMatrix &&string_matrix) noexcept
- : _matrix(string_matrix._matrix),
- _row_cnt(string_matrix._row_cnt),
- _column_cnt(string_matrix._column_cnt)
-{
- string_matrix._matrix = nullptr;
-}
-
-StringMatrix::~StringMatrix() noexcept
-{
- _delete_matrix();
-}
-
-void StringMatrix::fill(std::string_view element) noexcept
-{
- for (auto row : *this)
- {
- for (auto &col : row)
- {
- col = element;
- }
- }
-}
-
-std::string_view StringMatrix::get(const Vector2 &pos) const noexcept
-{
-
- auto x = static_cast<std::size_t>(pos.get_x());
- auto y = static_cast<std::size_t>(pos.get_y());
-
- // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic)
- return _matrix[y][x];
-}
-
-void StringMatrix::set(const Vector2 &pos, std::string_view element) noexcept
-{
- auto x = static_cast<std::size_t>(pos.get_x());
- auto y = static_cast<std::size_t>(pos.get_y());
-
- // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic)
- _matrix[y][x] = element;
-}
-
-uint32_t StringMatrix::get_row_cnt() const noexcept
-{
- return _row_cnt;
-}
-
-uint32_t StringMatrix::get_column_cnt() const noexcept
-{
- return _column_cnt;
-}
-
-MatrixIterator<std::string_view> StringMatrix::begin() const noexcept
-{
- return MatrixIterator(_matrix, _column_cnt);
-}
-
-MatrixIterator<std::string_view> StringMatrix::end() const noexcept
-{
- return MatrixIterator(_matrix + _row_cnt, _column_cnt);
-}
-
-StringMatrix &StringMatrix::operator=(const StringMatrix &rhs) noexcept
-{
- if (&rhs != this)
- {
- _delete_matrix();
- _matrix = nullptr;
-
- _matrix = new std::string_view *[rhs._row_cnt];
- _copy_matrix_from(rhs);
- }
-
- return *this;
-}
-
-StringMatrix &StringMatrix::operator=(StringMatrix &&rhs) noexcept
-{
- if (&rhs != this)
- {
- _delete_matrix();
- _matrix = rhs._matrix;
- rhs._matrix = nullptr;
- }
-
- return *this;
-}
-
-void StringMatrix::_delete_matrix() noexcept
-{
- for (gsl::owner<std::string_view **> row = _matrix; row != _matrix + _row_cnt; row++)
- {
- delete[](*row);
- }
-
- delete[] _matrix;
-}
-
-void StringMatrix::_copy_matrix_from(const StringMatrix &source) noexcept
-{
- gsl::owner<std::string_view **> source_row = source._matrix;
-
- for (gsl::owner<std::string_view **> row = _matrix; row != _matrix + _row_cnt;
- row++, source_row++)
- {
- *row = static_cast<gsl::owner<std::string_view *>>(
- new std::string_view[_column_cnt]);
-
- // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic)
- auto *end = *source_row + _column_cnt;
-
- std::copy(*source_row, end, *row);
- }
-}