Vector2#

File: samarium/math/Vector2.hpp

namespace sm

Typedefs

using Vector2 = Vector2_t<f64>#
using Vector2f = Vector2_t<f32>#
using Indices = Vector2_t<u64>#
using Dimensions = Vector2_t<u64>#

Functions

template<typename T>
constexpr auto operator+(Vector2_t<T> lhs, const Vector2_t<T> &rhs) noexcept#
template<typename T>
constexpr auto operator-(Vector2_t<T> lhs, const Vector2_t<T> &rhs) noexcept#
template<typename T>
constexpr auto operator*(Vector2_t<T> lhs, const Vector2_t<T> &rhs) noexcept#
template<typename T>
constexpr auto operator*(Vector2_t<T> lhs, T rhs) noexcept#
template<typename T>
constexpr auto operator*(T lhs, Vector2_t<T> rhs) noexcept#
template<typename T>
constexpr auto operator/(Vector2_t<T> lhs, const Vector2_t<T> &rhs) noexcept#
template<typename T>
constexpr auto operator/(Vector2_t<T> lhs, T rhs) noexcept#
template<typename T>
struct Vector2_t#

Represents a canonical Euclidean vector, ie an arrow in space

auto vec = Vector2{.x = 42, .y = -3.1415};

Template Parameters:

T – type of x and y, required to be integral or floating point

Public Types

using value_type = T#

Public Functions

inline constexpr auto length() const noexcept#
inline constexpr auto length_sq() const noexcept#
inline constexpr auto angle() const noexcept#
inline constexpr auto slope() const noexcept#

Public Members

T x = {}#
T y = {}#

Public Static Functions

static inline constexpr auto combine(T value)#
static inline constexpr auto make(auto x_coord, auto y_coord)#
struct Polar#

Public Members

T length = {}#
T angle = {}#
namespace literals#

Functions

consteval auto operator""_x(long double x_coord) noexcept#
consteval auto operator""_y(long double y_coord) noexcept#