diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2024-05-04 21:14:53 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2024-05-05 03:24:48 +0200 |
commit | fbc36568af5d9142a45bee57323b8a5457a114f8 (patch) | |
tree | 8d838f0ad42823e4816a5ad4cdd66d03434ba6ad /src | |
parent | 78ca913d82a0c30e978b69a8ed2685d92ae9eb36 (diff) |
src: remove the tile_iterator class
This is too crufty to bother with.
Diffstat (limited to 'src')
-rw-r--r-- | src/chunk.cpp | 8 | ||||
-rw-r--r-- | src/chunk.hpp | 7 | ||||
-rw-r--r-- | src/tile-iterator.cpp | 26 | ||||
-rw-r--r-- | src/tile-iterator.hpp | 78 |
4 files changed, 0 insertions, 119 deletions
diff --git a/src/chunk.cpp b/src/chunk.cpp index 9f6fe993..c6967740 100644 --- a/src/chunk.cpp +++ b/src/chunk.cpp @@ -1,7 +1,6 @@ #include "chunk.hpp" #include "object.hpp" #include "world.hpp" -#include "tile-iterator.hpp" #include "log.hpp" #include "RTree.h" #include <algorithm> @@ -69,13 +68,6 @@ Optional<tile_ref> chunk::at_offset_(local_coords pos, Vector2i off) tile_ref chunk::at_offset(tile_ref r, Vector2i off) { return at_offset(local_coords{r.index()}, off); } Optional<tile_ref> chunk::at_offset_(tile_ref r, Vector2i off) { return at_offset_(local_coords{r.index()}, off); } -auto chunk::begin() noexcept -> iterator { return iterator { *this, 0 }; } -auto chunk::end() noexcept -> iterator { return iterator { *this, TILE_COUNT }; } -auto chunk::cbegin() const noexcept -> const_iterator { return const_iterator { *this, 0 }; } -auto chunk::cend() const noexcept -> const_iterator { return const_iterator { *this, TILE_COUNT }; } -auto chunk::begin() const noexcept -> const_iterator { return cbegin(); } -auto chunk::end() const noexcept -> const_iterator { return cend(); } - void chunk::mark_ground_modified() noexcept { if (!_ground_modified && is_log_verbose()) [[unlikely]] diff --git a/src/chunk.hpp b/src/chunk.hpp index dea7e00b..e5f3cc85 100644 --- a/src/chunk.hpp +++ b/src/chunk.hpp @@ -42,13 +42,6 @@ public: using iterator = tile_iterator; using const_iterator = tile_const_iterator; - iterator begin() noexcept; - iterator end() noexcept; - const_iterator cbegin() const noexcept; - const_iterator cend() const noexcept; - const_iterator begin() const noexcept; - const_iterator end() const noexcept; - bool empty(bool force = false) const noexcept; explicit chunk(class world& w, chunk_coords_ ch) noexcept; diff --git a/src/tile-iterator.cpp b/src/tile-iterator.cpp deleted file mode 100644 index ac0fff67..00000000 --- a/src/tile-iterator.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "tile-iterator.hpp" -#include "tile.hpp" - -namespace floormat { - -tile_iterator::tile_iterator(chunk& c, size_t pos) noexcept : c{&c}, pos{pos} {} -tile_iterator::tile_iterator(const tile_iterator&) noexcept = default; -tile_iterator& tile_iterator::operator=(const tile_iterator&) noexcept = default; -tile_iterator& tile_iterator::operator++() noexcept { pos++; return *this; } -tile_iterator tile_iterator::operator++(int) noexcept { auto it = *this; pos++; return it; } -void tile_iterator::swap(tile_iterator& other) noexcept { std::swap(c, other.c); std::swap(pos, other.pos); } -bool operator==(const tile_iterator& a, const tile_iterator& b) noexcept { return a.c == b.c && a.pos == b.pos; } -tile_iterator_tuple tile_iterator::operator->() noexcept { return { tile_ref{*c, uint8_t(pos)}, pos, local_coords{pos} }; } -tile_iterator_tuple tile_iterator::operator*() noexcept { return operator->(); } - -tile_const_iterator::tile_const_iterator(const chunk& c, size_t pos) noexcept : c{&c}, pos{pos} {} -tile_const_iterator::tile_const_iterator(const tile_const_iterator& x) noexcept = default; -tile_const_iterator& tile_const_iterator::operator=(const tile_const_iterator& x) noexcept { if (this != &x) { c = x.c; pos = x.pos; } return *this; } -tile_const_iterator& tile_const_iterator::operator++() noexcept { pos++; return *this; } -tile_const_iterator tile_const_iterator::operator++(int) noexcept { auto it = *this; pos++; return it; } -void tile_const_iterator::swap(tile_const_iterator& other) noexcept { std::swap(c, other.c); std::swap(pos, other.pos); } -bool operator==(const tile_const_iterator& a, const tile_const_iterator& b) noexcept { return a.c == b.c && a.pos == b.pos; } -tile_const_iterator_tuple tile_const_iterator::operator->() noexcept { return { tile_proto(tile_ref{*const_cast<chunk*>(c), uint8_t(pos)}), pos, local_coords{pos}, }; } -tile_const_iterator_tuple tile_const_iterator::operator*() noexcept { return operator->(); } - -} // namespace floormat diff --git a/src/tile-iterator.hpp b/src/tile-iterator.hpp deleted file mode 100644 index f3b19dfc..00000000 --- a/src/tile-iterator.hpp +++ /dev/null @@ -1,78 +0,0 @@ -#pragma once - -#include "local-coords.hpp" -#include "tile.hpp" - -#include <iterator> - -namespace floormat { - -struct tile_iterator_tuple final { // NOLINT(cppcoreguidelines-pro-type-member-init) - const tile_iterator_tuple* operator->() const noexcept { return this; } - tile_iterator_tuple* operator->() noexcept { return this; } - - tile_ref x; - size_t k; - local_coords pt; -}; - -struct tile_const_iterator_tuple final { // NOLINT(cppcoreguidelines-pro-type-member-init) - const tile_const_iterator_tuple* operator->() const noexcept { return this; } - tile_const_iterator_tuple* operator->() noexcept { return this; } - - tile_proto x; - size_t k; - local_coords pt; -}; - -class tile_iterator final { - chunk* c; - size_t pos; - - friend bool operator==(const tile_iterator&, const tile_iterator&) noexcept; - -public: - explicit tile_iterator(chunk& c, size_t pos) noexcept; - tile_iterator(const tile_iterator&) noexcept; - tile_iterator& operator=(const tile_iterator&) noexcept; - - void swap(tile_iterator& other) noexcept; - - tile_iterator& operator++() noexcept; - tile_iterator operator++(int) noexcept; - tile_iterator_tuple operator->() noexcept; - tile_iterator_tuple operator*() noexcept; - - using difference_type = ptrdiff_t; - using value_type = tile_iterator_tuple; - using pointer = value_type; - using reference = value_type; - using iterator_category = std::input_iterator_tag; -}; - -class tile_const_iterator final { - const chunk* c; - size_t pos; - - friend bool operator==(const tile_const_iterator&, const tile_const_iterator&) noexcept; - -public: - explicit tile_const_iterator(const chunk& c, size_t pos) noexcept; - tile_const_iterator(const tile_const_iterator&) noexcept; - tile_const_iterator& operator=(const tile_const_iterator&) noexcept; - - void swap(tile_const_iterator& other) noexcept; - - tile_const_iterator& operator++() noexcept; - tile_const_iterator operator++(int) noexcept; - tile_const_iterator_tuple operator->() noexcept; - tile_const_iterator_tuple operator*() noexcept; - - using difference_type = ptrdiff_t; - using value_type = tile_const_iterator_tuple; - using pointer = value_type; - using reference = value_type; - using iterator_category = std::input_iterator_tag; -}; - -} // namespace floormat |