le2d v0.4.3
2D game engine framework
 
Loading...
Searching...
No Matches
nvec2.hpp
Go to the documentation of this file.
1#pragma once
2#include <glm/vec2.hpp>
3
4namespace le {
5inline constexpr auto right_v = glm::vec2{1.0f, 0.0f};
6inline constexpr auto up_v = glm::vec2{0.0f, 1.0f};
7
9class nvec2 : public glm::vec2 {
10 public:
11 explicit(false) nvec2(glm::vec2 xy = right_v);
12 explicit(false) nvec2(float x, float y) : nvec2(glm::vec2{x, y}) {}
13
14 [[nodiscard]] auto operator-() const -> nvec2 { return {InPlace{}, {-x, -y}}; }
15
16 [[nodiscard]] static auto from_radians(float r) -> nvec2;
17 [[nodiscard]] auto to_radians() const -> float;
18
19 [[nodiscard]] auto rotated(float radians) const -> nvec2;
20 void rotate(float radians);
21
22 private:
23 struct InPlace {};
24 nvec2(InPlace /*d*/, glm::vec2 const xy) : glm::vec2(xy) {}
25};
26} // namespace le
Normalized 2D vector.
Definition nvec2.hpp:9
explicit(false) nvec2(glm float y
Definition nvec2.hpp:12
auto to_radians() const -> float
auto rotated(float radians) const -> nvec2
void rotate(float radians)
Definition animation.hpp:8
constexpr auto up_v
Definition nvec2.hpp:6
constexpr auto right_v
Definition nvec2.hpp:5