示例#1
0
文件: Ghost.cs 项目: code-mtnit/WPFSM
 public override void MouseUp(IDocument document, MouseEventArgs e)
 {
     base.MouseUp(document, e);
     this.Visible           = false;
     this._mirrorPoint      = Point.Empty;
     this._horizontalVersor = HorizontalVersors.LeftRight;
     this._verticalVersor   = VerticalVersors.TopBottom;
 }
示例#2
0
文件: Ghost.cs 项目: code-mtnit/WPFSM
        public void InitializeVersors(HitPositions hitPosition)
        {
            this._horizontalMirror = true;
            this._verticalMirror   = true;
            switch (hitPosition)
            {
            case HitPositions.TopLeft:
                this._horizontalVersor = HorizontalVersors.RightLeft;
                this._verticalVersor   = VerticalVersors.BottomTop;
                break;

            case HitPositions.Top:
                this._horizontalVersor = HorizontalVersors.LeftRight;
                this._verticalVersor   = VerticalVersors.BottomTop;
                this._horizontalMirror = false;
                break;

            case HitPositions.TopRight:
                this._horizontalVersor = HorizontalVersors.LeftRight;
                this._verticalVersor   = VerticalVersors.BottomTop;
                break;

            case HitPositions.Right:
                this._horizontalVersor = HorizontalVersors.LeftRight;
                this._verticalVersor   = VerticalVersors.TopBottom;
                this._verticalMirror   = false;
                break;

            case HitPositions.BottomRight:
                this._horizontalVersor = HorizontalVersors.LeftRight;
                this._verticalVersor   = VerticalVersors.TopBottom;
                break;

            case HitPositions.Bottom:
                this._horizontalVersor = HorizontalVersors.LeftRight;
                this._verticalVersor   = VerticalVersors.TopBottom;
                this._horizontalMirror = false;
                break;

            case HitPositions.BottomLeft:
                this._horizontalVersor = HorizontalVersors.RightLeft;
                this._verticalVersor   = VerticalVersors.TopBottom;
                break;

            case HitPositions.Left:
                this._horizontalVersor = HorizontalVersors.RightLeft;
                this._verticalVersor   = VerticalVersors.TopBottom;
                this._verticalMirror   = false;
                break;
            }
        }
示例#3
0
文件: Ghost.cs 项目: code-mtnit/WPFSM
 public virtual void UpdateVersors(PointF mirrorPoint, Point currentPoint)
 {
     if (!(this._mirrorPoint == PointF.Empty))
     {
         HorizontalVersors horizontalVersor = this.GetHorizontalVersor(currentPoint);
         VerticalVersors   verticalVersor   = this.GetVerticalVersor(currentPoint);
         if (this._horizontalVersor != horizontalVersor && horizontalVersor != HorizontalVersors.Undefined && this._horizontalMirror)
         {
             base.Transformer.MirrorHorizontal(mirrorPoint.X);
             this._horizontalVersor = horizontalVersor;
         }
         if (this._verticalVersor != verticalVersor && verticalVersor != VerticalVersors.Undefined && this._verticalMirror)
         {
             base.Transformer.MirrorVertical(mirrorPoint.Y);
             this._verticalVersor = verticalVersor;
         }
     }
 }
示例#4
0
文件: Ghost.cs 项目: nistck/Jx
        /// <summary>
        /// Updates versors.
        /// </summary>
        /// <param name="mirrorPoint">Mirror point.</param>
        /// <param name="currentPoint">Mouse location.</param>
        virtual protected void UpdateVersors(PointF mirrorPoint, Point currentPoint)
        {
            if (_mirrorPoint == PointF.Empty)
            {
                return;
            }

            HorizontalVersors horizontalVersor = GetHorizontalVersor(currentPoint);
            VerticalVersors   verticalVersor   = GetVerticalVersor(currentPoint);

            if (_horizontalVersor != horizontalVersor && horizontalVersor != HorizontalVersors.Undefined && _horizontalMirror)
            {
                Transformer.MirrorHorizontal(mirrorPoint.X);
                _horizontalVersor = horizontalVersor;
            }

            if (_verticalVersor != verticalVersor && verticalVersor != VerticalVersors.Undefined && _verticalMirror)
            {
                Transformer.MirrorVertical(mirrorPoint.Y);
                _verticalVersor = verticalVersor;
            }
        }
示例#5
0
文件: Ghost.cs 项目: nistck/Jx
        /// <summary>
        /// Initializes versors relative to ghosted shape
        /// </summary>
        /// <param name="hitPosition">Ghosted shape hit position</param>
        protected void InitializeVersors(HitPositions hitPosition)
        {
            _horizontalMirror = true;
            _verticalMirror   = true;

            switch (hitPosition)
            {
            case HitPositions.TopLeft:
            {
                _horizontalVersor = HorizontalVersors.RightLeft;
                _verticalVersor   = VerticalVersors.BottomTop;

                break;
            }

            case HitPositions.Top:
            {
                _horizontalVersor = HorizontalVersors.LeftRight;
                _verticalVersor   = VerticalVersors.BottomTop;

                _horizontalMirror = false;

                break;
            }

            case HitPositions.TopRight:
            {
                _horizontalVersor = HorizontalVersors.LeftRight;
                _verticalVersor   = VerticalVersors.BottomTop;

                break;
            }

            case HitPositions.Right:
            {
                _horizontalVersor = HorizontalVersors.LeftRight;
                _verticalVersor   = VerticalVersors.TopBottom;

                _verticalMirror = false;

                break;
            }

            case HitPositions.BottomRight:
            {
                _horizontalVersor = HorizontalVersors.LeftRight;
                _verticalVersor   = VerticalVersors.TopBottom;

                break;
            }

            case HitPositions.Bottom:
            {
                _horizontalVersor = HorizontalVersors.LeftRight;
                _verticalVersor   = VerticalVersors.TopBottom;

                _horizontalMirror = false;

                break;
            }

            case HitPositions.BottomLeft:
            {
                _horizontalVersor = HorizontalVersors.RightLeft;
                _verticalVersor   = VerticalVersors.TopBottom;

                break;
            }

            case HitPositions.Left:
            {
                _horizontalVersor = HorizontalVersors.RightLeft;
                _verticalVersor   = VerticalVersors.TopBottom;

                _verticalMirror = false;

                break;
            }
            }
        }