prime/include/Kyoto/Math/CVector2f.hpp

42 lines
1.1 KiB
C++
Raw Normal View History

#ifndef _CVECTOR2F
#define _CVECTOR2F
2022-04-16 07:50:32 +00:00
#include "types.h"
2022-04-16 07:50:32 +00:00
class CVector2f {
2022-10-04 21:00:16 +00:00
static const CVector2f skZeroVector;
2022-04-16 07:50:32 +00:00
public:
CVector2f(float x, float y);
2022-11-02 03:52:49 +00:00
float GetX() const { return mX; }
float GetY() const { return mY; }
2022-10-04 21:00:16 +00:00
CVector2f& operator+=(const CVector2f& rhs);
CVector2f& operator-=(const CVector2f& rhs);
CVector2f& operator*=(float rhs);
CVector2f& operator/=(float rhs);
CVector2f& Normalize();
float Magnitude() const;
float MagSquared() const;
2022-10-04 21:00:16 +00:00
CVector2f AsNormalized() const;
2022-10-01 20:39:52 +00:00
2022-10-04 21:00:16 +00:00
static float GetAngleDiff(const CVector2f& a, const CVector2f& b);
static float Dot(const CVector2f& a, const CVector2f& b);
2022-10-04 21:00:16 +00:00
private:
float mX;
float mY;
2022-04-16 07:50:32 +00:00
};
2022-10-04 21:00:16 +00:00
CVector2f operator+(const CVector2f& lhs, const CVector2f& rhs);
CVector2f operator-(const CVector2f& lhs, const CVector2f& rhs);
bool operator==(const CVector2f& lhs, const CVector2f& rhs);
CVector2f operator*(const CVector2f& lhs, const float& rhs);
CVector2f operator*(const float& lhs, const CVector2f& rhs);
CVector2f operator/(const CVector2f& lhs, const float& rhs);
2022-10-01 20:39:52 +00:00
#endif // _CVECTOR2F