aboutsummaryrefslogtreecommitdiff
path: root/src/engine/data/vector2.hpp
blob: a7896ef132c2ee8e10f82f7672ba473f0d730c4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#pragma once

#include <cstdint>

struct Vector2Options
{
	uint32_t x;
	uint32_t y;
};

/**
 * A 2D Vector.
 */
class Vector2
{
public:
	explicit Vector2(const Vector2Options &options);

	[[nodiscard]] uint32_t get_x() const noexcept;

	void set_x(uint32_t x) noexcept;

	[[nodiscard]] uint32_t get_y() const noexcept;

	void set_y(uint32_t y) noexcept;

	const Vector2 &operator+=(const Vector2 &vector2) noexcept;
	const Vector2 &operator-=(const Vector2 &vector2) noexcept;

private:
	uint32_t _x;
	uint32_t _y;
};