Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaShared/SharedSource/Utils/CoordinateSpace2D.cs
Markus Isberg 25fa5a9552 Build 0.21.6.0
2023-01-31 18:01:29 +02:00

27 lines
764 B
C#

using Microsoft.Xna.Framework;
namespace Barotrauma.Utils;
public struct CoordinateSpace2D
{
public static readonly CoordinateSpace2D CanonicalSpace = new CoordinateSpace2D
{
Origin = Vector2.Zero,
I = Vector2.UnitX,
J = Vector2.UnitY
};
public Vector2 Origin;
public Vector2 I;
public Vector2 J;
public Matrix LocalToCanonical
=> new Matrix(
m11: I.X, m12: I.Y, m13: 0f, m14: 0f,
m21: J.X, m22: J.Y, m23: 0f, m24: 0f,
m31: 0f, m32: 0f, m33: 1f, m34: 0f,
m41: 0f, m42: 0f, m43: 0f, m44: 1f)
* Matrix.CreateTranslation(Origin.X, Origin.Y, 0f);
public Matrix CanonicalToLocal => Matrix.Invert(LocalToCanonical);
}