39 lines
917 B
C++
39 lines
917 B
C++
#pragma once
|
|
|
|
namespace cs
|
|
{
|
|
class MFVector2D;
|
|
class MFWeapon;
|
|
}
|
|
|
|
struct Vector2D
|
|
{
|
|
float x = 0.0f;
|
|
float y = 0.0f;
|
|
|
|
Vector2D(float _x = 0.0f, float _y = 0.0f):x(_x), y(_y) {};
|
|
|
|
void ToPB(cs::MFVector2D* pb_obj);
|
|
void FromPB(const cs::MFVector2D* pb_obj);
|
|
void Normalize();
|
|
void Rotate(float angle);
|
|
float CalcAngle(const Vector2D& b);
|
|
static Vector2D FromAngle(float angle);
|
|
float Distance(const Vector2D& b);
|
|
|
|
bool operator == (const Vector2D& b) const;
|
|
Vector2D operator + (const Vector2D& b) const;
|
|
Vector2D operator - (const Vector2D& b) const;
|
|
Vector2D operator * (float scale) const;
|
|
Vector2D operator / (float scale) const;
|
|
Vector2D Perp();
|
|
float Dot(const Vector2D& v) const;
|
|
float Norm() const;
|
|
|
|
static const Vector2D UP;
|
|
static const Vector2D DOWN;
|
|
static const Vector2D LEFT;
|
|
static const Vector2D RIGHT;
|
|
};
|
|
|