1 #ifndef LXGUI_GUI_VECTOR2_HPP
2 #define LXGUI_GUI_VECTOR2_HPP
4 #include "lxgui/lxgui.hpp"
5 #include "lxgui/utils.hpp"
15 using float_type = std::conditional_t<std::is_floating_point_v<T>, T,
double>;
19 constexpr
vector2(T nx, T ny) noexcept :
x(nx),
y(ny) {}
23 x(
static_cast<T
>(v.x)),
y(
static_cast<T
>(v.y)) {}
25 void set(T nx, T ny) noexcept {
61 vec.
x =
static_cast<T
>(orig.
x * ca - orig.
y * sa);
62 vec.
y =
static_cast<T
>(orig.
x * sa + orig.
y * ca);
98 return (
x == v.x) && (
y == v.y);
102 return (
x != v.x) || (
y != v.y);
110 return vector2(
x * value.x,
y * value.y);
130 return vector2(
x / value.x,
y / value.y);
146 return x * v.x +
y * v.y;
183 template<
typename O,
typename T>
185 return stream << v.
x <<
", " << v.
y;
std::ostream & operator<<(std::ostream &stream, const color &c)
color operator*(const color &c1, const color &c2) noexcept
T get_norm_squared() const noexcept
vector2 & operator-=(const vector2 &v) noexcept
vector2 operator*(T value) const noexcept
void set(T nx, T ny) noexcept
vector2 & operator/=(const vector2 &value) noexcept
vector2 operator*(const vector2 &value) const noexcept
float_type get_norm() const noexcept
static const vector2 unit_y
vector2 operator/(const vector2 &value) const noexcept
static const vector2 unit_x
constexpr vector2(T nx, T ny) noexcept
static const vector2 zero
static const vector2 unit
T dot(const vector2 &v) const noexcept
vector2< float_type > get_unit() const noexcept
vector2 & operator/=(T value) noexcept
vector2 get_rotated(float_type angle) const noexcept
vector2 & operator*=(const vector2 &value) noexcept
constexpr vector2()=default
vector2 operator-(const vector2 &v) const noexcept
vector2< float_type > get_normal() const noexcept
std::conditional_t< std::is_floating_point_v< T >, T, double > float_type
vector2 operator/(T value) const noexcept
vector2 operator-() const noexcept
constexpr vector2(const vector2< U > &v) noexcept
vector2 operator+(const vector2 &v) const noexcept
bool operator!=(const vector2 &v) const noexcept
vector2 & operator*=(T value) noexcept
vector2 get_scaled(const vector2 &v) const noexcept
bool operator==(const vector2 &v) const noexcept
vector2 & operator+=(const vector2 &v) noexcept