public static void PartitionObject(LSBody Body, bool gridBoundsCalculated = false)
        {
            if (gridBoundsCalculated == false)
            {
                GetGridBounds(Body);
            }

            Body.PastGridXMin = GridXMin;
            Body.PastGridXMax = GridXMax;
            Body.PastGridYMin = GridYMin;
            Body.PastGridYMax = GridYMax;

            for (int i = GridXMin; i <= GridXMax; i++)
            {
                for (int j = GridYMin; j <= GridYMax; j++)
                {
                    PartitionNode node = GetNode(i, j);
                    Body.PartitionChanged = true;
                    if (Body.Immovable)
                    {
                        node.AddImmovable(Body.ID);
                    }
                    else
                    {
                        node.Add(Body.ID);
                    }
                }
            }
        }