p2p/stingray_sdk/plugin_foundation/vector2.h
Lucas Schwiderski 2c9ce46dd2
chore: Rework project structure
There likely won't be much need for multiple separate crates.
2023-05-26 23:42:01 +02:00

53 lines
2.3 KiB
C++

#pragma once
#include "platform.h"
#include "types.h"
namespace stingray_plugin_foundation {
// Operators
__forceinline Vector2 operator / (const Vector2 &lhs, const Vector2 &rhs);
__forceinline Vector2 operator * (const Vector2 &lhs, const Vector2 &rhs);
__forceinline Vector2 operator + (const Vector2 &lhs, const Vector2 &rhs);
__forceinline Vector2 operator - (const Vector2 &lhs, const Vector2 &rhs);
__forceinline void operator /= (Vector2 &lhs, const Vector2 &rhs);
__forceinline void operator *= (Vector2 &lhs, const Vector2 &rhs);
__forceinline void operator += (Vector2 &lhs, const Vector2 &rhs);
__forceinline void operator -= (Vector2 &lhs, const Vector2 &rhs);
__forceinline Vector2 operator - (const Vector2 &v);
__forceinline Vector2 operator + (const Vector2 &v);
__forceinline Vector2 operator / (const Vector2 &lhs, float rhs);
__forceinline Vector2 operator * (const Vector2 &lhs, float rhs);
__forceinline Vector2 operator * (float lhs, const Vector2 &rhs);
__forceinline Vector2 operator + (const Vector2 &lhs, float rhs);
__forceinline Vector2 operator - (const Vector2 &lhs, float rhs);
__forceinline void operator /= (Vector2 &lhs, float rhs);
__forceinline void operator *= (Vector2 &lhs, float rhs);
__forceinline void operator += (Vector2 &lhs, float rhs);
__forceinline void operator -= (Vector2 &lhs, float rhs);
__forceinline bool operator==(const Vector2 &lhs, const Vector2 &rhs);
__forceinline bool operator!=(const Vector2 &lhs, const Vector2 &rhs);
// Methods
__forceinline Vector2 vector2(float x, float y);
__forceinline float & element(Vector2 &m, int i);
__forceinline const float & element(const Vector2 &m, int i);
__forceinline bool is_zero(const Vector2 &v);
__forceinline bool is_zero(const Vector2 &v, float eps);
__forceinline void zero(Vector2 &v);
__forceinline float length(const Vector2 &v);
__forceinline float length_squared(const Vector2 &v);
__forceinline Vector2 normalize(const Vector2 &v);
__forceinline float dot(const Vector2 &v0, const Vector2 &v1);
__forceinline float distance(const Vector2 &v0, const Vector2 &v1);
__forceinline float distance_squared(const Vector2 &v0, const Vector2 &v1);
__forceinline Vector2 lerp(const Vector2 &a, const Vector2 &b, float t);
__forceinline Vector2 min(const Vector2 &v0, const Vector2 &v1);
__forceinline Vector2 max(const Vector2 &v0, const Vector2 &v1);
}
#include "vector2.inl"