Golias Engine
A C++ 20 'game engine' built with SDL3 with wide platform support.
vector4.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <glm/glm.hpp>
4 
5 class Vector4 : public glm::vec4 {
6 public:
7  using glm::vec4::vec4;
8 
9  Vector4();
10  Vector4(float x, float y, float z, float w);
11  Vector4(float v);
12  Vector4(const glm::vec4& v);
13 
14  float& operator[](int index);
15  const float& operator[](int index) const;
16 
17  float length() const;
18 
19  Vector4 normalized() const;
20  void normalize();
21 
22  float dot(const Vector4& other) const;
23 
24  float distance_to(const Vector4& other) const;
25 
26  Vector4 lerp(const Vector4& other, float t) const;
27 
28  Vector4 abs() const;
29  Vector4 floor() const;
30  Vector4 ceil() const;
31  Vector4 round() const;
32 
33  bool is_zero_approx() const;
34 
35  static const Vector4 ZERO;
36  static const Vector4 ONE;
37 };
38 
39 class Vector4i : public glm::ivec4 {
40 public:
41  using glm::ivec4::ivec4;
42 
43  Vector4i();
44  Vector4i(int x, int y, int z, int w);
45  Vector4i(int v);
46  Vector4i(const glm::ivec4& v);
47 
48  int& operator[](int index);
49  const int& operator[](int index) const;
50 
51  float length() const;
52 
53  Vector4i abs() const;
54 
55  static const Vector4i ZERO;
56  static const Vector4i ONE;
57 };
58 
59 
Definition: vector4.h:5
bool is_zero_approx() const
Definition: vector4.cpp:59
Vector4 normalized() const
Definition: vector4.cpp:20
float dot(const Vector4 &other) const
Definition: vector4.cpp:28
Vector4()
Definition: vector4.cpp:8
Vector4 lerp(const Vector4 &other, float t) const
Definition: vector4.cpp:36
void normalize()
Definition: vector4.cpp:24
Vector4 ceil() const
Definition: vector4.cpp:51
Vector4 round() const
Definition: vector4.cpp:55
float length() const
Definition: vector4.cpp:16
Vector4 floor() const
Definition: vector4.cpp:47
float distance_to(const Vector4 &other) const
Definition: vector4.cpp:32
Vector4 abs() const
Definition: vector4.cpp:43
static const Vector4 ZERO
Definition: vector4.h:35
float & operator[](int index)
Definition: vector4.cpp:13
static const Vector4 ONE
Definition: vector4.h:36
Definition: vector4.h:39
float length() const
Definition: vector4.cpp:80
static const Vector4i ONE
Definition: vector4.h:56
static const Vector4i ZERO
Definition: vector4.h:55
Vector4i()
Definition: vector4.cpp:71
int & operator[](int index)
Definition: vector4.cpp:76
Vector4i abs() const
Definition: vector4.cpp:84