public void UpdateMouse()
        {
            if (Scene.View != null)
            {
                //Mouse over handling
                var    mp        = Scene.View.LocalMousePosition;
                var    position  = new Vector2(mp.X, mp.Y);
                Entity mouseover = null;
                if (mouseOver)
                {
                    mouseover = (Entity)ClickablesProbe.Pick();
                }

                if (mouseover != MouseOverEntity)
                {
                    if (MouseOverEntity != null)
                    {
                        MouseOverEntity.ProcessMessage(MessageType.MouseLeave,
                                                       new System.Windows.Forms.MouseEventArgs(View.MouseButtons, 0, mp.X, mp.Y, 0));
                    }
                    MouseOverEntity = mouseover;
                    if (MouseOverEntity != null)
                    {
                        MouseOverEntity.ProcessMessage(MessageType.MouseEnter,
                                                       new System.Windows.Forms.MouseEventArgs(View.MouseButtons, 0, mp.X, mp.Y, 0));
                    }
                }
                prevMousePosition = position;
            }
        }
        protected virtual void OnEntityRemoved(Entity e)
        {
            var mp = Scene.View.LocalMousePosition;

            if (mouseDownEntity == e)
            {
                mouseDownEntity.ProcessMessage(MessageType.MouseUp,
                                               new System.Windows.Forms.MouseEventArgs(View.MouseButtons, 0, mp.X, mp.Y, 0));
                mouseDownEntity = null;
            }
            if (MouseOverEntity == e)
            {
                MouseOverEntity.ProcessMessage(MessageType.MouseLeave,
                                               new System.Windows.Forms.MouseEventArgs(View.MouseButtons, 0, mp.X, mp.Y, 0));
                MouseOverEntity = null;
            }
            if (IsClickable(e))
            {
                Clickables.Remove(e);
            }
            e.ClickableChanged            -= new EventHandler(UpdateEntityBounding);
            e.IsVisibleChanged            -= new EventHandler(UpdateEntityBounding);
            e.PickingLocalBoundingChanged -= new EventHandler(UpdateEntityBounding);
            e.Transformed -= new EventHandler(UpdateEntityBounding);
            if (e.Updateable)
            {
                updateables.Remove(e);
            }
        }
        protected override void OnMouseUp(System.Windows.Forms.MouseEventArgs e)
        {
            base.OnMouseUp(e);

            if (MouseOverEntity != null)
            {
                MouseOverEntity.ProcessMessage(MessageType.MouseUp, e);
            }
        }