Exemplo n.º 1
0
        private void CropDelta(Vector2 canvasStartingPoint, Vector2 canvasPoint)
        {
            ILayer layer = this.Layerage.Self;

            if (this.IsMove == false)// Transformer
            {
                // Transformer
                Transformer transformer = Transformer.Controller(this.TransformerMode, canvasStartingPoint, canvasPoint, layer.Transform.StartingCropTransformer, this.IsRatio, this.IsCenter, this.IsSnapToTick);

                // Refactoring
                layer.IsRefactoringRender = true;
                this.Layerage.RefactoringParentsRender();
                layer.Transform.CropTransformer = transformer;

                this.SelectionViewModel.Transformer = transformer; // Selection
            }
            else// Move
            {
                Vector2 canvasMove = canvasPoint - canvasStartingPoint;

                // Refactoring
                layer.IsRefactoringRender = true;
                this.Layerage.RefactoringParentsRender();
                layer.Transform.CropTransformAdd(canvasMove);

                this.SelectionViewModel.Transformer = layer.Transform.CropTransformer; // Selection
            }
        }
Exemplo n.º 2
0
        private void CanvasOperator_Single_Delta(Vector2 point)
        {
            bool isRatio  = this.RatioButton.IsOn;
            bool isCenter = this.CenterButton.IsOn;

            //Single layer.
            if (true)
            {
                Transformer transformer = Transformer.Controller(this.TransformerMode, this._startingPoint, point, this._oldTransformer, isRatio, isCenter);
                this.Layer.TransformerMatrix.Destination = transformer;
            }
            //Multiple layer.
            else
            {
                Transformer transformer = Transformer.Controller(this.TransformerMode, this._startingPoint, point, this._oldTransformer, isRatio, isCenter);
                Matrix3x2   matrix      = Transformer.FindHomography(this._oldTransformer, transformer);

                this.Layer.TransformerMatrix.TransformMultiplies(matrix);
                //this.Layer2...
                //this.Layer3...
            }

            this.CanvasControl.Invalidate();
        }