public override void OnMouse3DUp(object sender, RoutedEventArgs e)
 {
     base.OnMouse3DUp(sender, e);
     if (this.isCaptured)
     {
         this.isCaptured = false;
         this.viewport   = null;
         this.camera     = null;
     }
 }
        // METHOD OVERRIDES
        public override void OnMouse3DDown(object sender, RoutedEventArgs e)
        {
            base.OnMouse3DDown(sender, e);

            var args = e as Mouse3DEventArgs;

            if (args == null)
            {
                return;
            }
            if (args.Viewport == null)
            {
                return;
            }

            this.isCaptured = true;
            this.viewport   = args.Viewport;
            this.camera     = args.Viewport.Camera;
            this.LastHitPos = args.HitTestResult.PointHit;
        }