/// <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); } } }
/// <summary> /// 释放model Container中的对象 /// </summary> /// <param name="scene"></param> public static void ReleaseContainerElements(this ScientificVisual3DControl scene) { scene.Scene.OpenGL.MakeCurrent(); List <SceneElement> children = new List <SceneElement>(); children.AddRange(scene.ModelContainer.Children); foreach (SceneElement child in children) { ReleaseElement(child); scene.ModelContainer.RemoveChild(child); } children.Clear(); }