Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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();
            }
        }