using System;
namespace SBRL.Utilities
{
///
/// Represents a single point in 2D space.
/// May also be used to represent a direction with a magnitude.
///
/// v0.1
///
/// v0.1 - 1st April 2017
/// - Added this changelog
///
public struct Vector2
{
///
/// A Vector 2 with all it's proeprties initialised to zero.
///
public static Vector2 Zero = new Vector2() { X = 0, Y = 0 };
///
/// The X coordinate.
///
public float X { get; set; }
///
/// The Y coordinate.
///
public float Y { get; set; }
public Vector2(float x, float y)
{
X = x;
Y = y;
}
public Vector2 Add(Vector2 b)
{
return new Vector2(
X + b.X,
Y + b.Y
);
}
public Vector2 Subtract(Vector2 b)
{
return new Vector2(
X - b.X,
Y - b.Y
);
}
public Vector2 Divide(int b)
{
return new Vector2(
X / b,
Y / b
);
}
public Vector2 Divide(Vector2 b)
{
return new Vector2(
X / b.X,
Y / b.Y
);
}
public Vector2 Multiply(int b)
{
return new Vector2(
X * b,
Y * b
);
}
public Vector2 Multiply(Vector2 b)
{
return new Vector2(
X * b.X,
Y * b.Y
);
}
}
}