private void MarkSolidRecursive(Solid3D solid) { markedDeleteSet.Add(solid); solid.ToggleMarkForDelete(true, false); foreach (Solid3D child in solid.Children) { MarkSolidRecursive(child); } }
private void MarkSolidForDeletion(Solid3D solid) { UnmarkSolidForDeletion(); solid.ToggleMarkForDelete(true, true); markedDeleteSolid = solid; foreach (Solid3D child in solid.Children) { MarkSolidRecursive(child); } }
private void UnmarkSolidForDeletion() { if (markedDeleteSolid != null) { markedDeleteSolid.ToggleMarkForDelete(false, false); foreach (Solid3D child in markedDeleteSet) { child.ToggleMarkForDelete(false, false); } markedDeleteSet = new HashSet <Solid3D>(); markedDeleteSolid = null; } }