/// <summary>
        /// Called when the mouse exits hovering an editable object.
        /// </summary>
        /// <param name="target">Previously hovered object</param>
        internal virtual void OnBrushExit(EditableObject target)
        {
            if (target.renderer != null)
            {
                PolyEditorUtility.SetSelectionRenderState(target.renderer, PolyEditorUtility.GetSelectionRenderState());
            }

            DestroyTempComponent();
        }
        /// <summary>
        /// Called when the mouse begins hovering an editable object.
        /// </summary>
        /// <param name="target">Object being hovered</param>
        /// <param name="settings">Current brush settings</param>
        internal virtual void OnBrushEnter(EditableObject target, BrushSettings settings)
        {
            if (s_HideWireframe.value && target.renderer != null)
            {
                // disable wirefame
                PolyEditorUtility.SetSelectionRenderState(target.renderer, PolyEditorUtility.GetSelectionRenderState() & SelectionRenderState.Outline);
            }

            CreateTempComponent(target);
        }