void InsertIntoChunkMaybe(StabilityChunk[,] ary, int x, int y, IceStabilityTriangle tri, Rectangle box) { if (x >= 0 && y >= 0 && x < ary.GetLength(0) && y < ary.GetLength(1)) { var chunk = ary[x, y]; if (box.IntersectsWith(chunk.BoundingBox)) { chunk.Triangles.Add(tri); } } }
void InsertIntoChunks(StabilityChunk[,] ary, int x, int y, IceStabilityTriangle tri, Rectangle box) { InsertIntoChunkMaybe(ary, x, y, tri, box); InsertIntoChunkMaybe(ary, x - 1, y, tri, box); InsertIntoChunkMaybe(ary, x + 1, y, tri, box); InsertIntoChunkMaybe(ary, x, y - 1, tri, box); InsertIntoChunkMaybe(ary, x - 1, y - 1, tri, box); InsertIntoChunkMaybe(ary, x + 1, y - 1, tri, box); InsertIntoChunkMaybe(ary, x, y + 1, tri, box); InsertIntoChunkMaybe(ary, x - 1, y + 1, tri, box); InsertIntoChunkMaybe(ary, x + 1, y + 1, tri, box); }