summaryrefslogtreecommitdiffhomepage
path: root/src/tile-iterator.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2022-11-01 14:54:30 +0100
committerStanislaw Halik <sthalik@misaki.pl>2022-11-01 14:54:30 +0100
commit7ff1f0911e0b0c314d6e639887b705d6fc0d78aa (patch)
treecf3f11ce4e60a4a98a9bcff6510d39a692859441 /src/tile-iterator.cpp
parent60eea789335743855f380249b8bbaf544fea3887 (diff)
wip
Diffstat (limited to 'src/tile-iterator.cpp')
-rw-r--r--src/tile-iterator.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/tile-iterator.cpp b/src/tile-iterator.cpp
index b454576a..943bbaf8 100644
--- a/src/tile-iterator.cpp
+++ b/src/tile-iterator.cpp
@@ -3,15 +3,17 @@
namespace floormat {
-basic_tile_iterator::basic_tile_iterator(chunk& c, std::size_t pos) noexcept :
- c{&c}, pos{pos}
-{
-}
+tile_iterator::tile_iterator(chunk& c, std::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;
-basic_tile_iterator::basic_tile_iterator(const basic_tile_iterator&) noexcept = default;
-basic_tile_iterator& basic_tile_iterator::operator=(const basic_tile_iterator&) noexcept = default;
-std::strong_ordering basic_tile_iterator::operator<=>(const basic_tile_iterator&) const noexcept = default;
-void basic_tile_iterator::swap(basic_tile_iterator& other) { std::swap(c, other.c); std::swap(pos, other.pos); }
+tile_iterator& tile_iterator::operator++() noexcept { pos++; return *this; }
+tile_iterator tile_iterator::operator++() 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); }
+std::strong_ordering tile_iterator::operator<=>(const tile_iterator&) const noexcept = default;
+
+tile_iterator_tuple tile_iterator::operator->() { return { tile_ref{*c, i}, i, local_coords{i} }; }
+tile_iterator_tuple tile_iterator::operator*() { return { tile_ref{*c, i}, i, local_coords{i} }; }
} // namespace floormat