private void HideModifiers()
        {
            if (_arrowX1 != null)
            {
                _viewport.Children.Remove(_arrowX1.Model);
                _arrowX1 = null;
            }

            if (_arrowX2 != null)
            {
                _viewport.Children.Remove(_arrowX2.Model);
                _arrowX2 = null;
            }

            if (_arrowY1 != null)
            {
                _viewport.Children.Remove(_arrowY1.Model);
                _arrowY1 = null;
            }

            if (_arrowY2 != null)
            {
                _viewport.Children.Remove(_arrowY2.Model);
                _arrowY2 = null;
            }

            if (_arrowZ1 != null)
            {
                _viewport.Children.Remove(_arrowZ1.Model);
                _arrowZ1 = null;
            }

            if (_arrowZ2 != null)
            {
                _viewport.Children.Remove(_arrowZ2.Model);
                _arrowZ2 = null;
            }

            if (_ringX != null)
            {
                _viewport.Children.Remove(_ringX.Model);
                _ringX = null;
            }

            if (_ringY != null)
            {
                _viewport.Children.Remove(_ringY.Model);
                _ringY = null;
            }

            if (_ringZ != null)
            {
                _viewport.Children.Remove(_ringZ.Model);
                _ringZ = null;
            }

            if (_ballX1 != null)
            {
                _viewport.Children.Remove(_ballX1.Model);
                _ballX1 = null;
            }

            if (_ballX2 != null)
            {
                _viewport.Children.Remove(_ballX2.Model);
                _ballX2 = null;
            }

            if (_ballY1 != null)
            {
                _viewport.Children.Remove(_ballY1.Model);
                _ballY1 = null;
            }

            if (_ballY2 != null)
            {
                _viewport.Children.Remove(_ballY2.Model);
                _ballY2 = null;
            }

            if (_ballZ1 != null)
            {
                _viewport.Children.Remove(_ballZ1.Model);
                _ballZ1 = null;
            }

            if (_ballZ2 != null)
            {
                _viewport.Children.Remove(_ballZ2.Model);
                _ballZ2 = null;
            }
        }
        private void GetNewBalls(out DraggableModifierSphere ball1, out DraggableModifierSphere ball2, DraggingModifier whichBall)
        {
            double radius = GetRadius_Ball(this.Scale, whichBall);

            switch (whichBall)
            {
                case DraggingModifier.BallX1:
                case DraggingModifier.BallX2:
                    ball1 = new DraggableModifierSphere(new Vector3D(radius, 0, 0), _options.EditorColors);
                    ball2 = new DraggableModifierSphere(new Vector3D(-radius, 0, 0), _options.EditorColors);
                    break;

                case DraggingModifier.BallY1:
                case DraggingModifier.BallY2:
                    ball1 = new DraggableModifierSphere(new Vector3D(0, radius, 0), _options.EditorColors);
                    ball2 = new DraggableModifierSphere(new Vector3D(0, -radius, 0), _options.EditorColors);
                    break;

                case DraggingModifier.BallZ1:
                case DraggingModifier.BallZ2:
                    ball1 = new DraggableModifierSphere(new Vector3D(0, 0, radius), _options.EditorColors);
                    ball2 = new DraggableModifierSphere(new Vector3D(0, 0, -radius), _options.EditorColors);
                    break;

                default:
                    throw new ApplicationException("Unexpected DraggingModifier: " + whichBall.ToString());
            }

            _viewport.Children.Add(ball1.Model);
            _viewport.Children.Add(ball2.Model);
        }