From 7307815e99a79dac42f2a9c06b0fe6171ea11ba0 Mon Sep 17 00:00:00 2001 From: HampusM Date: Fri, 1 Jul 2022 16:01:04 +0200 Subject: refactor: use ranges --- src/engine/data/vector2.cpp | 20 ++++++++++++++++++++ src/engine/data/vector2.hpp | 5 +++++ 2 files changed, 25 insertions(+) (limited to 'src/engine') diff --git a/src/engine/data/vector2.cpp b/src/engine/data/vector2.cpp index 84986bd..80fc43c 100644 --- a/src/engine/data/vector2.cpp +++ b/src/engine/data/vector2.cpp @@ -82,11 +82,31 @@ auto Vector2::operator==(const Vector2 &rhs) const noexcept -> bool return _x == rhs._x && _y == rhs._y; } +auto Vector2::operator!=(const Vector2 &rhs) const noexcept -> bool +{ + return !(*this == rhs); +} + auto Vector2::operator<(const Vector2 &rhs) const noexcept -> bool { return std::tie(_x, _y) < std::tie(rhs._x, rhs._y); } +auto Vector2::operator>(const Vector2 &rhs) const noexcept -> bool +{ + return std::tie(_x, _y) > std::tie(rhs._x, rhs._y); +} + +auto Vector2::operator<=(const Vector2 &rhs) const noexcept -> bool +{ + return *this < rhs || *this == rhs; +} + +auto Vector2::operator>=(const Vector2 &rhs) const noexcept -> bool +{ + return *this > rhs || *this == rhs; +} + auto Vector2Hasher::operator()(const Vector2 &vector2) const noexcept -> std::size_t { std::size_t result_hash = 0; diff --git a/src/engine/data/vector2.hpp b/src/engine/data/vector2.hpp index 03c2562..da96e72 100644 --- a/src/engine/data/vector2.hpp +++ b/src/engine/data/vector2.hpp @@ -43,8 +43,13 @@ public: auto operator*(const Vector2 &rhs) const noexcept -> Vector2; auto operator==(const Vector2 &rhs) const noexcept -> bool; + auto operator!=(const Vector2 &rhs) const noexcept -> bool; auto operator<(const Vector2 &rhs) const noexcept -> bool; + auto operator>(const Vector2 &rhs) const noexcept -> bool; + + auto operator<=(const Vector2 &rhs) const noexcept -> bool; + auto operator>=(const Vector2 &rhs) const noexcept -> bool; /** * Returns Vector2({.x = 0, .y = 1}) -- cgit v1.2.3-18-g5258