Add some more coordinate utility functions.
This commit is contained in:
@@ -125,10 +125,25 @@ namespace OpenRA
|
||||
return GetEnumerator();
|
||||
}
|
||||
|
||||
public bool Contains(CPos cell)
|
||||
{
|
||||
return Contains(cell.ToMPos(Shape));
|
||||
}
|
||||
|
||||
public bool Contains(MPos uv)
|
||||
{
|
||||
return bounds.Contains(uv.U, uv.V);
|
||||
}
|
||||
|
||||
public CPos Clamp(CPos uv)
|
||||
{
|
||||
return Clamp(uv.ToMPos(Shape)).ToCPos(Shape);
|
||||
}
|
||||
|
||||
public MPos Clamp(MPos uv)
|
||||
{
|
||||
return uv.Clamp(new Rectangle(0, 0, Size.Width - 1, Size.Height - 1));
|
||||
}
|
||||
}
|
||||
|
||||
// Helper functions
|
||||
|
||||
@@ -217,6 +217,9 @@ namespace OpenRA
|
||||
{
|
||||
return GetEnumerator();
|
||||
}
|
||||
|
||||
public MPos TopLeft { get { return r.mapTopLeft; } }
|
||||
public MPos BottomRight { get { return r.mapBottomRight; } }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -772,6 +772,12 @@ namespace OpenRA
|
||||
return cell.ToMPos(this).Clamp(bounds).ToCPos(this);
|
||||
}
|
||||
|
||||
public MPos Clamp(MPos uv)
|
||||
{
|
||||
var bounds = new Rectangle(Bounds.X, Bounds.Y, Bounds.Width - 1, Bounds.Height - 1);
|
||||
return uv.Clamp(bounds);
|
||||
}
|
||||
|
||||
public CPos ChooseRandomCell(MersenneTwister rand)
|
||||
{
|
||||
var x = rand.Next(Bounds.Left, Bounds.Right);
|
||||
|
||||
Reference in New Issue
Block a user