namespace SideScrollerGame.Sim.Math;

public readonly struct IntVector2
{
    public IntVector2(int x, int y)
    {
        X = x;
        Y = y;
    }

    public int X { get; }

    public int Y { get; }
}

public readonly struct SInt32Vector2
{
    public SInt32Vector2(int x, int y)
    {
        X = x;
        Y = y;
    }

    public int X { get; }

    public int Y { get; }
}

public readonly struct SFixPointQuaternion
{
    public SFixPointQuaternion(FixPoint16 x, FixPoint16 y, FixPoint16 z, FixPoint16 w)
    {
        m_X = x;
        m_Y = y;
        m_Z = z;
        m_W = w;
    }

    public FixPoint16 m_X { get; }

    public FixPoint16 m_Y { get; }

    public FixPoint16 m_Z { get; }

    public FixPoint16 m_W { get; }
}

public readonly struct SFixPointQuaternionTransform
{
    public SFixPointQuaternionTransform(SFixPointVector3 position, SFixPointQuaternion orientation, SFixPointVector3 size)
    {
        m_Position = position;
        m_Orientation = orientation;
        m_Size = size;
    }

    public SFixPointVector3 m_Position { get; }

    public SFixPointQuaternion m_Orientation { get; }

    public SFixPointVector3 m_Size { get; }
}
