Add some more coordinate utility functions.
This commit is contained in:
@@ -125,10 +125,25 @@ namespace OpenRA
|
|||||||
return GetEnumerator();
|
return GetEnumerator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool Contains(CPos cell)
|
||||||
|
{
|
||||||
|
return Contains(cell.ToMPos(Shape));
|
||||||
|
}
|
||||||
|
|
||||||
public bool Contains(MPos uv)
|
public bool Contains(MPos uv)
|
||||||
{
|
{
|
||||||
return bounds.Contains(uv.U, uv.V);
|
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
|
// Helper functions
|
||||||
|
|||||||
@@ -217,6 +217,9 @@ namespace OpenRA
|
|||||||
{
|
{
|
||||||
return GetEnumerator();
|
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);
|
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)
|
public CPos ChooseRandomCell(MersenneTwister rand)
|
||||||
{
|
{
|
||||||
var x = rand.Next(Bounds.Left, Bounds.Right);
|
var x = rand.Next(Bounds.Left, Bounds.Right);
|
||||||
|
|||||||
Reference in New Issue
Block a user