コード例 #1
0
ファイル: ImageActionTools.cs プロジェクト: devenv2/IMA
        /*
         * Resize a sinistra in alto
         */

        private void LeftTopResizeCase(SKPoint coordinatePixelDetected, MovimentInfo resizeMovimentDetected, RectangleArea rectangleArea)
        {
            switch (resizeMovimentDetected)
            {
            case MovimentInfo.OutSideLeft:
                rectangleArea.Left = bitMapArea.Left;
                rectangleArea.Top  = coordinatePixelDetected.Y;
                break;

            case MovimentInfo.OverTop:
                rectangleArea.Top  = bitMapArea.Top;
                rectangleArea.Left = coordinatePixelDetected.X;
                break;

            case MovimentInfo.OutSideLeftOverTop:
                rectangleArea.Top  = bitMapArea.Top;
                rectangleArea.Left = bitMapArea.Left;
                break;

            case MovimentInfo.InsideArea:
                rectangleArea.Left = coordinatePixelDetected.X;
                rectangleArea.Top  = coordinatePixelDetected.Y;
                break;
            }
        }
コード例 #2
0
ファイル: ImageActionTools.cs プロジェクト: devenv2/IMA
        /*
         * Resize a destra in basso
         */

        private void RightBottomResizeCase(SKPoint coordinatePixelDetected, MovimentInfo resizeMovimentDetected, RectangleArea rectangleArea)
        {
            switch (resizeMovimentDetected)
            {
            case MovimentInfo.OutSideRight:
                rectangleArea.Right  = bitMapArea.Right;
                rectangleArea.Bottom = coordinatePixelDetected.Y;
                break;

            case MovimentInfo.UnderBottom:
                rectangleArea.Bottom = bitMapArea.Bottom;
                rectangleArea.Right  = coordinatePixelDetected.X;
                break;

            case MovimentInfo.OutSideRightOverTop:
                rectangleArea.Right  = bitMapArea.Right;
                rectangleArea.Bottom = bitMapArea.Bottom;
                break;

            case MovimentInfo.InsideArea:
                rectangleArea.Right  = coordinatePixelDetected.X;
                rectangleArea.Bottom = coordinatePixelDetected.Y;
                break;
            }
        }
コード例 #3
0
ファイル: ImageActionTools.cs プロジェクト: devenv2/IMA
        /*
         * Metodo resize bounding box con chiamata al vertice in questione
         */

        private void ResizeRect(SKPoint coordinatePixelDetected, ResizeInfo resizeDetected, RectangleArea rectangleArea)
        {
            MovimentInfo resizeMovimentDetected = MovimentMethods.GetResizeInfo(coordinatePixelDetected.X, coordinatePixelDetected.Y,
                                                                                bitMapArea.Left, bitMapArea.Top, bitMapArea.Right, bitMapArea.Bottom);

            switch (resizeDetected)
            {
            case ResizeInfo.LeftTopAround:
                LeftTopResizeCase(coordinatePixelDetected, resizeMovimentDetected, rectangleArea);
                break;

            case ResizeInfo.LeftBottomAround:
                LeftBottomResizeCase(coordinatePixelDetected, resizeMovimentDetected, rectangleArea);
                break;

            case ResizeInfo.RightTopAround:
                RightTopResizeCase(coordinatePixelDetected, resizeMovimentDetected, rectangleArea);
                break;

            case ResizeInfo.RightBottomAround:
                RightBottomResizeCase(coordinatePixelDetected, resizeMovimentDetected, rectangleArea);
                break;
            }
            rectangleArea.OffSetRectHeight = rectangleArea.Bottom - rectangleArea.Top;
            rectangleArea.OffSetRectWidth  = rectangleArea.Right - rectangleArea.Left;
            rectangleArea.ResizeMove       = true;
            canvasBitMap.InvalidateSurface();
        }
コード例 #4
0
ファイル: ImageActionTools.cs プロジェクト: devenv2/IMA
        /*
         * Metodo per la gestione del movimento del rettangolo mediante la gesture "pan" con contemplazione dei
         * vari casi presenti e conseguente ricalcolo delle varie coordinate
         */

        private void RectangleMoveArea(Point pointMove, RectangleArea rectangleArea)
        {
            SKPoint      pixelMove      = UtilityFunctions.ConvertToPixel(pointMove, canvasBitMap);
            MovimentInfo actualMoviment = MovimentMethods.GetMovimentInfo(pixelMove.X, pixelMove.Y,
                                                                          bitMapArea.Left, bitMapArea.Top, bitMapArea.Right,
                                                                          bitMapArea.Bottom, rectangleArea.OffSetRectWidth, rectangleArea.OffSetRectHeight);

            switch (actualMoviment)
            {
            case MovimentInfo.InsideArea:

                rectangleArea.Bottom = pixelMove.Y + rectangleArea.OffSetRectHeight / 2;
                rectangleArea.Top    = rectangleArea.Bottom - rectangleArea.OffSetRectHeight;
                rectangleArea.Right  = pixelMove.X + rectangleArea.OffSetRectWidth / 2;
                rectangleArea.Left   = rectangleArea.Right - rectangleArea.OffSetRectWidth;
                break;

            case MovimentInfo.OutSideRightOverTop:

                rectangleArea.Bottom = bitMapArea.Top + rectangleArea.OffSetRectHeight;
                rectangleArea.Top    = bitMapArea.Top;
                rectangleArea.Right  = bitMapArea.Right;
                rectangleArea.Left   = rectangleArea.Right - rectangleArea.OffSetRectWidth;
                break;

            case MovimentInfo.OutSideRight:
                rectangleArea.Bottom = pixelMove.Y + rectangleArea.OffSetRectHeight / 2;
                rectangleArea.Top    = rectangleArea.Bottom - rectangleArea.OffSetRectHeight;
                rectangleArea.Right  = bitMapArea.Right;
                rectangleArea.Left   = rectangleArea.Right - rectangleArea.OffSetRectWidth;
                break;

            case MovimentInfo.OutSideLeftOverTop:

                rectangleArea.Bottom = bitMapArea.Top + rectangleArea.OffSetRectHeight;
                rectangleArea.Top    = bitMapArea.Top;
                rectangleArea.Left   = bitMapArea.Left;
                rectangleArea.Right  = bitMapArea.Left + rectangleArea.OffSetRectWidth;
                break;

            case MovimentInfo.OverTop:

                rectangleArea.Bottom = bitMapArea.Top + rectangleArea.OffSetRectHeight;
                rectangleArea.Top    = bitMapArea.Top;
                rectangleArea.Right  = pixelMove.X + rectangleArea.OffSetRectWidth / 2;
                rectangleArea.Left   = rectangleArea.Right - rectangleArea.OffSetRectWidth;
                break;

            case MovimentInfo.OutSideLeftUnderBottom:

                rectangleArea.Bottom = bitMapArea.Bottom;
                rectangleArea.Top    = rectangleArea.Bottom - rectangleArea.OffSetRectHeight;
                rectangleArea.Left   = bitMapArea.Left;
                rectangleArea.Right  = bitMapArea.Left + rectangleArea.OffSetRectWidth;
                break;

            case MovimentInfo.UnderBottom:

                rectangleArea.Bottom = bitMapArea.Bottom;
                rectangleArea.Top    = rectangleArea.Bottom - rectangleArea.OffSetRectHeight;
                rectangleArea.Right  = pixelMove.X + rectangleArea.OffSetRectWidth / 2;
                rectangleArea.Left   = rectangleArea.Right - rectangleArea.OffSetRectWidth;
                break;

            case MovimentInfo.OutSideLeft:

                rectangleArea.Bottom = pixelMove.Y + rectangleArea.OffSetRectHeight / 2;
                rectangleArea.Top    = rectangleArea.Bottom - rectangleArea.OffSetRectHeight;
                rectangleArea.Left   = bitMapArea.Left;
                rectangleArea.Right  = bitMapArea.Left + rectangleArea.OffSetRectWidth;
                break;

            case MovimentInfo.OutSideRightUnderBottom:

                rectangleArea.Bottom = bitMapArea.Bottom;
                rectangleArea.Top    = bitMapArea.Bottom - rectangleArea.OffSetRectHeight;
                rectangleArea.Right  = bitMapArea.Right;
                rectangleArea.Left   = bitMapArea.Right - rectangleArea.OffSetRectWidth;
                break;
            }
            canvasBitMap.InvalidateSurface();
        }