StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
Vector4.hpp
1#pragma once
2#include "utilities/Vector3.hpp"
3#include <string>
4
5namespace StevEngine::Utilities {
6 class Quaternion;
7
14 class Vector4 {
15 public:
16 //Values
17 double W, X, Y, Z;
18
19 //Constructors
27 Vector4(double w, double x, double y, double z);
28
33 Vector4(const Vector4& from);
34
40 Vector4(double w, const Vector3& vec3);
41
46 Vector4(double v);
47
49 Vector4();
50
51 //Functions
52 Vector4 Get() const;
53 double Magnitude() const;
55 Vector4 Normalized() const;
56
63 static double Dot(const Vector4& a, const Vector4& b);
64
65 //Operators
66 Vector4 operator+ (const Vector4& other) const;
67 Vector4 operator- (const Vector4& other) const;
68 Vector4 operator- () const;
69 Vector4& operator+= (const Vector4& other);
70 Vector4& operator-= (const Vector4& other);
71 Vector4 operator* (const double& other) const;
72 Vector4 operator/ (const double& other) const;
73 bool operator== (const Vector4& other) const;
74
75 //Conversions
76 explicit operator std::string() const;
77 explicit operator Quaternion() const;
78 const float* data() const;
79 };
80}
Quaternion for 3D rotations.
Definition Quaternion.hpp:19
3D vector class
Definition Vector3.hpp:19
Vector4(double w, double x, double y, double z)
Create vector from components.
Definition Vector4.cpp:12
Vector4 & Normalize()
Normalize this vector.
Definition Vector4.cpp:24
Vector4 & operator-=(const Vector4 &other)
Subtract-assign.
Definition Vector4.cpp:57
Vector4 & operator+=(const Vector4 &other)
Add-assign.
Definition Vector4.cpp:50
static double Dot(const Vector4 &a, const Vector4 &b)
Calculate dot product.
Definition Vector4.cpp:37
Vector4 operator-() const
Negation.
Definition Vector4.cpp:47
Vector4 operator/(const double &other) const
Scalar division.
Definition Vector4.cpp:67
bool operator==(const Vector4 &other) const
Equality comparison.
Definition Vector4.cpp:70
Vector4 Get() const
Get copy of this vector.
Definition Vector4.cpp:18
double Magnitude() const
Get vector length.
Definition Vector4.cpp:21
Vector4 operator+(const Vector4 &other) const
Addition.
Definition Vector4.cpp:41
const float * data() const
Get raw float array.
Definition Vector4.cpp:80
Vector4()
Create zero vector.
Definition Vector4.cpp:16
Vector4 Normalized() const
Get normalized copy.
Definition Vector4.cpp:34
Vector4 operator*(const double &other) const
Scalar multiplication.
Definition Vector4.cpp:64
double Z
Vector components.
Definition Vector4.hpp:17