aozhiwei 1656f6000c 1
2019-05-17 12:00:31 +08:00

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;
};