public void UpdateBitmask(Body body)
{
BoundingSquare box = body.aabb;
int minX = (int)Math.Floor((box.min.X - aabb.min.X) / cell.X);
int maxX = (int)Math.Floor((box.max.X - aabb.min.X) / cell.X);
if (minX < 0) { minX = 0; } else if (minX > 32) { minX = 32; }
if (maxX < 0) { maxX = 0; } else if (maxX > 32) { maxX = 32; }
int minY = (int)Math.Floor((box.min.Y - aabb.min.Y) / cell.Y);
int maxY = (int)Math.Floor((box.max.Y - aabb.min.Y) / cell.Y);
if (minY < 0) { minY = 0; } else if (minY > 32) { minY = 32; }
if (maxY < 0) { maxY = 0; } else if (maxY > 32) { maxY = 32; }
body.bitmaskx.clear();
for (int i = minX; i <= maxX; i++)
body.bitmaskx.setOn(i);
body.bitmasky.clear();
for (int i = minY; i <= maxY; i++)
body.bitmasky.setOn(i);
}