private void PerformRemove() { // OnRemove virtual callback. OnRemove(); // Remove all windows that hasn't been closed. Manager.SceneViewGUIWindowHandler.CloseAllWindows(this); // Clear any highlighted objects. HighlightObject = null; // Remove all key handlers that hasn't been removed. var keyHandlerNames = m_keyHandlers.Keys.ToArray(); foreach (var keyHandlerName in keyHandlerNames) { RemoveKeyHandler(keyHandlerName); } // Remove all visual primitives that hasn't been removed. var visualPrimitiveNames = m_visualPrimitives.Keys.ToArray(); foreach (var visualPrimitiveName in visualPrimitiveNames) { RemoveVisualPrimitive(visualPrimitiveName); } // Remove all editors that hasn't been removed. var editorTargets = m_editors.Keys.ToArray(); foreach (var editorTarget in editorTargets) { RemoveEditor(editorTarget); } // Remove us from our parent. if (m_parent != null) { m_parent.m_children.Remove(this); } m_parent = null; // Remove children. var children = m_children.ToArray(); foreach (var child in children) { child.PerformRemove(); } if (m_hideDefaultState != null) { m_hideDefaultState.OnRemove(); } }
private void PerformRemove() { // OnRemove virtual callback. OnRemove(); // Remove all windows that hasn't been closed. SceneViewWindow.CloseAllWindows(this); // Clear visualized selections for this tool. ClearVisualizedSelection(); // Remove all key handlers that hasn't been removed. string[] keyHandlerNames = m_keyHandlers.Keys.ToArray(); foreach (string keyHandlerName in keyHandlerNames) { RemoveKeyHandler(keyHandlerName); } // Remove all visual primitives that hasn't been removed. string[] visualPrimitiveNames = m_visualPrimitives.Keys.ToArray(); foreach (string visualPrimitiveName in visualPrimitiveNames) { RemoveVisualPrimitive(visualPrimitiveName); } // Remove us from our parent. if (m_parent != null) { m_parent.m_children.Remove(this); } m_parent = null; // Remove children. Tool[] children = m_children.ToArray(); foreach (Tool child in children) { child.PerformRemove(); } if (m_hideDefaultState != null) { m_hideDefaultState.OnRemove(); } }