JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
Vector2.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
10
11namespace core {
12
21struct Vector2 {
22 float x = 0.0f;
23 float y = 0.0f;
24
25 Vector2() = default;
26
32 Vector2(float xComponent, float yComponent);
33
34 Vector2& operator+=(const Vector2& other);
35 Vector2& operator-=(const Vector2& other);
36 Vector2& operator*=(float scalar);
37 Vector2& operator/=(float scalar);
38
44 [[nodiscard]] float dot(const Vector2& other) const;
45
50 [[nodiscard]] float lengthSquared() const;
51
56 [[nodiscard]] float length() const;
57
63 [[nodiscard]] Vector2 normalized() const;
64};
65
66[[nodiscard]] Vector2 operator+(const Vector2& lhs, const Vector2& rhs);
67[[nodiscard]] Vector2 operator-(const Vector2& lhs, const Vector2& rhs);
68[[nodiscard]] Vector2 operator*(const Vector2& vector, float scalar);
69[[nodiscard]] Vector2 operator*(float scalar, const Vector2& vector);
70[[nodiscard]] Vector2 operator/(const Vector2& vector, float scalar);
71[[nodiscard]] Vector2 operator-(const Vector2& vector);
72
79[[nodiscard]] bool operator==(const Vector2& lhs, const Vector2& rhs);
80[[nodiscard]] bool operator!=(const Vector2& lhs, const Vector2& rhs);
81
82} // namespace core
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
constexpr bool operator==(GridPosition left, GridPosition right) noexcept
Definition GridPosition.h:26
Vector2 operator+(const Vector2 &lhs, const Vector2 &rhs)
Definition Vector2.cpp:79
Vector2 operator-(const Vector2 &lhs, const Vector2 &rhs)
Definition Vector2.cpp:85
constexpr bool operator!=(GridPosition left, GridPosition right) noexcept
Definition GridPosition.h:31
Vector2 operator*(const Vector2 &vector, float scalar)
Definition Vector2.cpp:91
Vector2 operator/(const Vector2 &vector, float scalar)
Definition Vector2.cpp:103
Vecteur bidimensionnel en coordonnées monde (composantes float).
Definition Vector2.h:21
Vector2 & operator*=(float scalar)
Definition Vector2.cpp:33
Vector2 & operator+=(const Vector2 &other)
Definition Vector2.cpp:17
Vector2 & operator/=(float scalar)
Definition Vector2.cpp:41
float y
Definition Vector2.h:23
float lengthSquared() const
Carré de la longueur euclidienne (évite une racine carrée).
Definition Vector2.cpp:55
Vector2()=default
float length() const
Longueur euclidienne du vecteur.
Definition Vector2.cpp:61
Vector2 & operator-=(const Vector2 &other)
Definition Vector2.cpp:25
float x
Definition Vector2.h:22
float dot(const Vector2 &other) const
Produit scalaire avec un autre vecteur.
Definition Vector2.cpp:49
Vector2 normalized() const
Renvoie le vecteur normalisé (longueur 1).
Definition Vector2.cpp:68