/// <summary> /// release and remove element from the scene /// </summary> /// <param name="scene"></param> /// <param name="element"></param> public static void ReleaseElement(this ScientificVisual3DControl scene, SceneElement element) { scene.OpenGL.MakeCurrent(); ReleaseElement(element); if (element.Parent != null) { SceneElement parent = element.Parent; if (parent != null) { parent.RemoveChild(element); } } }
private static void ReleaseElement(SceneElement element) { List <SceneElement> children = new List <SceneElement>(); children.AddRange(element.Children); foreach (SceneElement child in children) { ReleaseElement(child); element.RemoveChild(child); } children.Clear(); if (element is IDisposable) { ((IDisposable)element).Dispose(); } }