81 constexpr const T &
operator[](
const int index)
const {
return index ?
y :
x; }
89 float c = std::cos(
angle);
102 return a.
x * b.
x + a.
y * b.
y;
105template<std::
floating_po
int T>
108 return std::sqrt(
dot(a, a));
111template<std::
integral T>
114 return std::sqrt(
static_cast<float>(
dot(a, a)));
124 if(a.
x == 0 && a.
y == 0)
127 return a.
y < 0 ? -
pi / 2 :
pi / 2;
128 float result = std::atan(a.
y / a.
x);
270 return a.
x * b.
x + a.
y * b.
y + a.z * b.z;
277 a.
y * b.z - a.z * b.
y,
278 a.z * b.
x - a.
x * b.z,
279 a.
x * b.
y - a.
y * b.
x);
285 return std::sqrt(
dot(a, a));
constexpr bool operator!=(const vector2_base &vec) const
Definition vmath.h:78
constexpr vector2_base operator*(const T rhs) const
Definition vmath.h:35
constexpr vector2_base operator*(const vector2_base &vec) const
Definition vmath.h:36
constexpr vector2_base operator+(const vector2_base &vec) const
Definition vmath.h:34
constexpr vector2_base(T nx, T ny)
Definition vmath.h:27
constexpr vector2_base operator/(const vector2_base &vec) const
Definition vmath.h:38
constexpr vector2_base operator-() const
Definition vmath.h:32
constexpr const T & operator[](const int index) const
Definition vmath.h:81
constexpr vector2_base & operator/=(const T rhs)
Definition vmath.h:64
constexpr vector2_base & operator*=(const vector2_base &vec)
Definition vmath.h:58
constexpr vector2_base & operator-=(const vector2_base &vec)
Definition vmath.h:46
constexpr bool operator==(const vector2_base &vec) const
Definition vmath.h:77
constexpr vector2_base()=default
constexpr vector2_base & operator*=(const T rhs)
Definition vmath.h:52
constexpr vector2_base operator-(const vector2_base &vec) const
Definition vmath.h:33
constexpr vector2_base operator/(const T rhs) const
Definition vmath.h:37
constexpr vector2_base & operator/=(const vector2_base &vec)
Definition vmath.h:70
constexpr T & operator[](const int index)
Definition vmath.h:80
constexpr vector2_base & operator+=(const vector2_base &vec)
Definition vmath.h:40
T z
Definition vmath.h:197
constexpr vector3_base()=default
constexpr vector3_base & operator+=(const vector3_base &vec)
Definition vmath.h:214
constexpr vector3_base operator*(const T rhs) const
Definition vmath.h:209
constexpr vector3_base operator-(const vector3_base &vec) const
Definition vmath.h:206
T x
Definition vmath.h:189
constexpr vector3_base & operator/=(const T rhs)
Definition vmath.h:242
constexpr bool operator==(const vector3_base &vec) const
Definition vmath.h:257
constexpr vector3_base & operator-=(const vector3_base &vec)
Definition vmath.h:221
T y
Definition vmath.h:193
constexpr vector3_base & operator/=(const vector3_base &vec)
Definition vmath.h:249
T s
Definition vmath.h:193
T v
Definition vmath.h:193
T r
Definition vmath.h:189
constexpr vector3_base operator/(const T rhs) const
Definition vmath.h:211
T g
Definition vmath.h:193
constexpr vector3_base operator/(const vector3_base &vec) const
Definition vmath.h:212
constexpr vector3_base & operator*=(const T rhs)
Definition vmath.h:228
T u
Definition vmath.h:189
constexpr bool operator!=(const vector3_base &vec) const
Definition vmath.h:258
constexpr vector3_base operator+(const vector3_base &vec) const
Definition vmath.h:208
constexpr vector3_base operator*(const vector3_base &vec) const
Definition vmath.h:210
T w
Definition vmath.h:197
T b
Definition vmath.h:197
constexpr vector3_base & operator*=(const vector3_base &vec)
Definition vmath.h:235
T h
Definition vmath.h:189
constexpr vector3_base operator-() const
Definition vmath.h:207
T l
Definition vmath.h:197
constexpr vector3_base(T nx, T ny, T nz)
Definition vmath.h:201
T g
Definition vmath.h:313
constexpr vector4_base & operator/=(const vector4_base &vec)
Definition vmath.h:378
T w
Definition vmath.h:321
constexpr bool operator!=(const vector4_base &vec) const
Definition vmath.h:388
T b
Definition vmath.h:317
T s
Definition vmath.h:313
T r
Definition vmath.h:309
T h
Definition vmath.h:309
constexpr vector4_base operator+(const vector4_base &vec) const
Definition vmath.h:330
T z
Definition vmath.h:317
constexpr vector4_base operator/(const vector4_base &vec) const
Definition vmath.h:335
constexpr vector4_base & operator/=(const T rhs)
Definition vmath.h:370
constexpr vector4_base operator-(const vector4_base &vec) const
Definition vmath.h:331
constexpr vector4_base(T nx, T ny, T nz, T nw)
Definition vmath.h:325
constexpr vector4_base & operator*=(const vector4_base &vec)
Definition vmath.h:362
T y
Definition vmath.h:313
T l
Definition vmath.h:317
constexpr vector4_base & operator*=(const T rhs)
Definition vmath.h:354
constexpr vector4_base()=default
constexpr vector4_base operator*(const T rhs) const
Definition vmath.h:334
T a
Definition vmath.h:321
constexpr vector4_base operator/(const T vec) const
Definition vmath.h:336
constexpr vector4_base & operator+=(const vector4_base &vec)
Definition vmath.h:338
constexpr vector4_base & operator-=(const vector4_base &vec)
Definition vmath.h:346
constexpr vector4_base operator*(const vector4_base &vec) const
Definition vmath.h:333
T x
Definition vmath.h:309
constexpr vector4_base operator-() const
Definition vmath.h:332
constexpr bool operator==(const vector4_base &vec) const
Definition vmath.h:387
static SHA256_DIGEST s(const char *pSha256)
Definition mapbugs.cpp:37
constexpr float pi
Definition math.h:14
float random_angle()
Definition math.h:76
vector4_base< int > ivec4
Definition vmath.h:393
constexpr float angle(const vector2_base< float > &a)
Definition vmath.h:122
vector2_base< float > normalize(const vector2_base< float > &v)
Definition vmath.h:142
vector4_base< uint8_t > ubvec4
Definition vmath.h:394
constexpr float length_squared(const vector2_base< float > &a)
Definition vmath.h:117
constexpr vector3_base< T > cross(const vector3_base< T > &a, const vector3_base< T > &b)
Definition vmath.h:274
vector2_base< float > direction(float angle)
Definition vmath.h:151
float length(const vector2_base< T > &a)
Definition vmath.h:106
vector4_base< bool > bvec4
Definition vmath.h:392
vector3_base< float > vec3
Definition vmath.h:297
vector4_base< float > vec4
Definition vmath.h:391
vector2_base< int > ivec2
Definition vmath.h:163
vector3_base< int > ivec3
Definition vmath.h:299
vector2_base< bool > bvec2
Definition vmath.h:162
vector2_base< float > random_direction()
Definition vmath.h:156
vector3_base< bool > bvec3
Definition vmath.h:298
constexpr vector2_base< T > rotate(const vector2_base< T > &a, float angle)
Definition vmath.h:85
vector2_base< float > vec2
Definition vmath.h:161
constexpr vector2_base< T > normalize_pre_length(const vector2_base< T > &v, T len)
Definition vmath.h:135
constexpr bool closest_point_on_line(vector2_base< T > line_pointA, vector2_base< T > line_pointB, vector2_base< T > target_point, vector2_base< T > &out_pos)
Definition vmath.h:166
constexpr T dot(const vector2_base< T > a, const vector2_base< T > &b)
Definition vmath.h:100
T distance(const vector2_base< T > a, const vector2_base< T > &b)
Definition vmath.h:94