StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
Vector2.hpp
1#pragma once
2#include <string>
3
4namespace StevEngine::Utilities {
5 class Vector3;
6
13 class Vector2 {
14 public:
15 //Values
16 double X, Y;
17
18 //Constructors
24 Vector2(double x, double y);
25
30 Vector2(const Vector2& from);
31
36 Vector2(std::string str);
37
39 Vector2();
40
41 //Functions
42 Vector2 Get() const;
43 double Magnitude() const;
45 Vector2 Normalized() const;
46
47 //Operators
48 Vector2 operator+ (const Vector2& other) const;
49 Vector2 operator- (const Vector2& other) const;
50 Vector2& operator+= (const Vector2& other);
51 Vector2& operator-= (const Vector2& other);
52 Vector2 operator* (const double& other) const;
53 Vector2 operator/ (const double& other) const;
54 bool operator== (const Vector2& other) const;
55
56 //Conversions
57 explicit operator Vector3() const;
58 explicit operator std::string() const;
59 const float* data() const;
60
61 //Static vectors
62 static Vector2 up;
63 static Vector2 right;
64
71 static double Distance(const Vector2& a, const Vector2& b);
72
79 static double Dot(const Vector2& a, const Vector2& b);
80 };
81}
bool operator==(const Vector2 &other) const
Equality comparison.
Definition Vector2.cpp:55
Vector2 Get() const
Get copy of this vector.
Definition Vector2.cpp:15
const float * data() const
Get raw float array.
Definition Vector2.cpp:65
Vector2 operator/(const double &other) const
Scalar division.
Definition Vector2.cpp:52
Vector2 Normalized() const
Get normalized copy.
Definition Vector2.cpp:29
Vector2 & operator-=(const Vector2 &other)
Subtract-assign.
Definition Vector2.cpp:44
Vector2 operator*(const double &other) const
Scalar multiplication.
Definition Vector2.cpp:49
double Y
Vector components.
Definition Vector2.hpp:16
static Vector2 up
Up vector (0,1)
Definition Vector2.hpp:62
static double Distance(const Vector2 &a, const Vector2 &b)
Calculate distance between vectors.
Definition Vector2.cpp:74
Vector2 & operator+=(const Vector2 &other)
Add-assign.
Definition Vector2.cpp:39
static Vector2 right
Right vector (1,0)
Definition Vector2.hpp:63
Vector2()
Create zero vector.
Definition Vector2.cpp:13
Vector2 operator+(const Vector2 &other) const
Addition.
Definition Vector2.cpp:33
static double Dot(const Vector2 &a, const Vector2 &b)
Calculate dot product.
Definition Vector2.cpp:77
Vector2 operator-(const Vector2 &other) const
Subtraction.
Definition Vector2.cpp:36
Vector2(std::string str)
Create vector from string.
Vector2 & Normalize()
Normalize this vector.
Definition Vector2.cpp:21
Vector2(double x, double y)
Create vector from components.
Definition Vector2.cpp:11
double Magnitude() const
Get vector length.
Definition Vector2.cpp:18
3D vector class
Definition Vector3.hpp:19