protected override void MouseMove(MapDocument document, MapViewport viewport, PerspectiveCamera camera, ViewportEvent e)
        {
            if (viewport != ActiveViewport)
            {
                return;
            }

            if (document.Selection.IsEmpty || !viewport.IsUnlocked(this))
            {
                return;
            }

            if (_mouseDown != CircleType.None)
            {
                _mouseMovePoint = new Vector3(e.X, e.Y, 0);
                e.Handled       = true;
                var tform = GetTransformationMatrix(viewport);
                OnTransforming(tform);
            }
            else
            {
                UpdateCache(viewport.Viewport, camera);

                if (MouseOver(CircleType.Z, e, viewport))
                {
                    _mouseOver = CircleType.Z;
                }
                else if (MouseOver(CircleType.Y, e, viewport))
                {
                    _mouseOver = CircleType.Y;
                }
                else if (MouseOver(CircleType.X, e, viewport))
                {
                    _mouseOver = CircleType.X;
                }
                else if (MouseOver(CircleType.Outer, e, viewport))
                {
                    _mouseOver = CircleType.Outer;
                }
                else
                {
                    _mouseOver = CircleType.None;
                }
            }
        }