Sista v3.1.0
C++ lightweight OS-agnostic library for terminal animations and videogames
Loading...
Searching...
No Matches
coordinates.hpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022-2026 FLAK-ZOSO <mattia.marchese.2006@gmail.com>
3 * SPDX-License-Identifier: GPL-3.0-only
4 */
5
17#pragma once
18
19#include <utility>
20#include <functional>
21
22namespace sista {
36 struct Coordinates {
37 unsigned short y;
38 unsigned short x;
46 Coordinates(unsigned short, unsigned short);
57 static Coordinates fromPair(const std::pair<unsigned short, unsigned short>&);
67 std::pair<unsigned short, unsigned short> toPair() const;
68
73 bool operator==(const Coordinates&) const;
78 bool operator!=(const Coordinates&) const;
86 bool operator<(const Coordinates&) const;
92 Coordinates operator+(const Coordinates&) const;
98 Coordinates operator-(const Coordinates&) const;
104 Coordinates operator*(const unsigned short) const;
117 };
118};
119
120namespace std {
129 template<>
130 struct hash<sista::Coordinates> {
131 std::size_t operator()(const sista::Coordinates&) const noexcept;
132 };
133};
Sista library namespace.
Definition ansi.cpp:31
Definition coordinates.hpp:120
Represents 2D coordinates with x and y values.
Definition coordinates.hpp:36
Coordinates()
Default constructor initializing coordinates to (0,0).
Definition coordinates.cpp:23
static Coordinates fromPair(const std::pair< unsigned short, unsigned short > &)
Creates a Coordinates instance from a std::pair.
Definition coordinates.cpp:26
Coordinates operator*(const unsigned short) const
Scalar multiplication operator.
Definition coordinates.cpp:50
Coordinates operator+=(const Coordinates &)
Compound addition assignment operator.
Definition coordinates.cpp:53
Coordinates operator+(const Coordinates &) const
Addition operator.
Definition coordinates.cpp:44
bool operator<(const Coordinates &) const
Less-than operator for ordering.
Definition coordinates.cpp:39
bool operator!=(const Coordinates &) const
Inequality operator.
Definition coordinates.cpp:36
unsigned short y
Definition coordinates.hpp:37
unsigned short x
Definition coordinates.hpp:38
bool operator==(const Coordinates &) const
Equality operator.
Definition coordinates.cpp:33
std::pair< unsigned short, unsigned short > toPair() const
Converts the Coordinates instance to a std::pair.
Definition coordinates.cpp:29
Coordinates operator-=(const Coordinates &)
Compound subtraction assignment operator.
Definition coordinates.cpp:58
Coordinates operator-(const Coordinates &) const
Subtraction operator.
Definition coordinates.cpp:47