MusicBoxConverter/MusicBoxConverter/Utilities/Vector2.cs

76 lines
1.2 KiB
C#
Raw Normal View History

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