diff options
author | jaroWMR <jarorutjes07@gmail.com> | 2024-11-07 18:39:56 +0100 |
---|---|---|
committer | jaroWMR <jarorutjes07@gmail.com> | 2024-11-07 18:39:56 +0100 |
commit | e2f3ace383b43cc3f140629e577b97c6f69c9856 (patch) | |
tree | 690eb146e11a4bc134840ec82bfbea4805daba61 /src/crepe/api/Vector2.cpp | |
parent | 156906dca0b84d3fd3c889e1bcda12308b8fe793 (diff) |
added physics system
Diffstat (limited to 'src/crepe/api/Vector2.cpp')
-rw-r--r-- | src/crepe/api/Vector2.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/crepe/api/Vector2.cpp b/src/crepe/api/Vector2.cpp new file mode 100644 index 0000000..8cbd9ad --- /dev/null +++ b/src/crepe/api/Vector2.cpp @@ -0,0 +1,59 @@ +#include "Vector2.h" + +namespace crepe { + + // Constructor with initial values + Vector2::Vector2(float x, float y) : x(x), y(y) {} + + // Subtracts another vector from this vector and returns the result. + Vector2 Vector2::operator-(const Vector2& other) const { + return {x - other.x, y - other.y}; + } + + // Adds another vector to this vector and returns the result. + Vector2 Vector2::operator+(const Vector2& other) const { + return {x + other.x, y + other.y}; + } + + // Multiplies this vector by a scalar and returns the result. + Vector2 Vector2::operator*(float scalar) const { + return {x * scalar, y * scalar}; + } + + // Multiplies this vector by another vector element-wise and updates this vector. + Vector2& Vector2::operator*=(const Vector2& other) { + x *= other.x; + y *= other.y; + return *this; + } + + // Adds another vector to this vector and updates this vector. + Vector2& Vector2::operator+=(const Vector2& other) { + x += other.x; + y += other.y; + return *this; + } + + // Adds a scalar value to both components of this vector and updates this vector. + Vector2& Vector2::operator+=(float other) { + x += other; + y += other; + return *this; + } + + // Returns the negation of this vector. + Vector2 Vector2::operator-() const { + return {-x, -y}; + } + + // Checks if this vector is equal to another vector. + bool Vector2::operator==(const Vector2& other) const { + return x == other.x && y == other.y; + } + + // Checks if this vector is not equal to another vector. + bool Vector2::operator!=(const Vector2& other) const { + return !(*this == other); + } + +} // namespace crepe |