Make separate ExtensionMethods file.
Add Point-deconstruction as an extension method. GitOrigin-RevId: a804ba797a9b939b65652df67987628b1742dad6
This commit is contained in:
parent
ab2a57d632
commit
6802b3f162
20
Shared/ExtensionMethods.cs
Normal file
20
Shared/ExtensionMethods.cs
Normal file
@ -0,0 +1,20 @@
|
||||
using Microsoft.Xna.Framework;
|
||||
|
||||
// All extension methods on built-in types (of C# or MonoGame) go in this file.
|
||||
|
||||
namespace SemiColinGames {
|
||||
static class ExtensionMethods {
|
||||
// Vector2
|
||||
public static Vector2 Rotate(this Vector2 point, float angle) {
|
||||
float cos = FMath.Cos(angle);
|
||||
float sin = FMath.Sin(angle);
|
||||
return new Vector2(
|
||||
point.X * cos - point.Y * sin,
|
||||
point.Y * cos + point.X * sin);
|
||||
}
|
||||
|
||||
// Point
|
||||
public static void Deconstruct(this Point point, out int x, out int y) =>
|
||||
(x, y) = (point.X, point.Y);
|
||||
}
|
||||
}
|
@ -5,16 +5,6 @@ using System;
|
||||
|
||||
namespace SemiColinGames {
|
||||
|
||||
public static class Geometry {
|
||||
public static Vector2 Rotate(this Vector2 point, float angle) {
|
||||
float cos = FMath.Cos(angle);
|
||||
float sin = FMath.Sin(angle);
|
||||
return new Vector2(
|
||||
point.X * cos - point.Y * sin,
|
||||
point.Y * cos + point.X * sin);
|
||||
}
|
||||
}
|
||||
|
||||
// Math functions that return floats rather than doubles, for convenience.
|
||||
public static class FMath {
|
||||
public const float PI = (float) Math.PI;
|
||||
|
@ -10,6 +10,7 @@
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Camera.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ExtensionMethods.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Textures.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Clock.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Geometry.cs" />
|
||||
|
Loading…
Reference in New Issue
Block a user