internal void UpdateTouchPan(Point currentPosition)
        {
            if (currentPosition == _previousPosition2D)
            {
                return;
            }

            ViewPortTools.TrackballDecorator.AirMovedEventArgs.EventTypeList type = AirMovedEventArgs.EventTypeList.Unkown;

            Translate(currentPosition);

            _previousPosition2D = currentPosition;
        }
        internal void UpdateAirMove(Point currentPosition, MovementTypeList movementType)
        {
            if (currentPosition == _previousPosition2D)
            {
                return;
            }

            ViewPortTools.TrackballDecorator.AirMovedEventArgs.EventTypeList type = AirMovedEventArgs.EventTypeList.Unkown;


            if (movementType == MovementTypeList.Pan)
            {
                Translate(currentPosition);
                type = AirMovedEventArgs.EventTypeList.Pan;
            }
            else if (movementType == MovementTypeList.Rotate && _disabletrack != true)
            {
                Track(currentPosition);
                type = AirMovedEventArgs.EventTypeList.Rotate;
            }
            else if (movementType == MovementTypeList.Zoom)
            {
                Zoom(currentPosition);
                type = AirMovedEventArgs.EventTypeList.Zoom;
            }

            _previousPosition2D = currentPosition;

            Viewport3D viewport3D = this.Viewport3D;

            if (viewport3D != null)
            {
                if (viewport3D.Camera != null)
                {
                    if (viewport3D.Camera.IsFrozen)
                    {
                        viewport3D.Camera = viewport3D.Camera.Clone();
                    }

                    if (viewport3D.Camera.Transform != _transform)
                    {
                        viewport3D.Camera.Transform = _transform;
                    }
                }
            }

            if (GestureMouseMoved != null && type != AirMovedEventArgs.EventTypeList.Unkown)
            {
                GestureMouseMoved.Invoke(new AirMovedEventArgs(type));
            }
        }