Merge pull request #11206 from evgeniysergeev/spatial
SpatiallyPartitioned fixup for d2
This commit is contained in:
@@ -33,7 +33,7 @@ namespace OpenRA.Primitives
|
|||||||
|
|
||||||
void ValidateBounds(Rectangle bounds)
|
void ValidateBounds(Rectangle bounds)
|
||||||
{
|
{
|
||||||
if (bounds.Width <= 0 || bounds.Height <= 0)
|
if (bounds.Width == 0 || bounds.Height == 0)
|
||||||
throw new ArgumentException("bounds must be non-empty.", "bounds");
|
throw new ArgumentException("bounds must be non-empty.", "bounds");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,10 +69,15 @@ namespace OpenRA.Primitives
|
|||||||
|
|
||||||
void BoundsToBinRowsAndCols(Rectangle bounds, out int minRow, out int maxRow, out int minCol, out int maxCol)
|
void BoundsToBinRowsAndCols(Rectangle bounds, out int minRow, out int maxRow, out int minCol, out int maxCol)
|
||||||
{
|
{
|
||||||
minRow = Math.Max(0, bounds.Top / binSize);
|
var top = Math.Min(bounds.Top, bounds.Bottom);
|
||||||
minCol = Math.Max(0, bounds.Left / binSize);
|
var bottom = Math.Max(bounds.Top, bounds.Bottom);
|
||||||
maxRow = Math.Min(rows, Exts.IntegerDivisionRoundingAwayFromZero(bounds.Bottom, binSize));
|
var left = Math.Min(bounds.Left, bounds.Right);
|
||||||
maxCol = Math.Min(cols, Exts.IntegerDivisionRoundingAwayFromZero(bounds.Right, binSize));
|
var right = Math.Max(bounds.Left, bounds.Right);
|
||||||
|
|
||||||
|
minRow = Math.Max(0, top / binSize);
|
||||||
|
minCol = Math.Max(0, left / binSize);
|
||||||
|
maxRow = Math.Min(rows, Exts.IntegerDivisionRoundingAwayFromZero(bottom, binSize));
|
||||||
|
maxCol = Math.Min(cols, Exts.IntegerDivisionRoundingAwayFromZero(right, binSize));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MutateBins(T actor, Rectangle bounds, Action<Dictionary<T, Rectangle>, T, Rectangle> action)
|
void MutateBins(T actor, Rectangle bounds, Action<Dictionary<T, Rectangle>, T, Rectangle> action)
|
||||||
|
|||||||
Reference in New Issue
Block a user