public void PaintFiguresAtWriteableBitmap(ViewPort camera)
        {
            children.Clear();

            foreach (var element in GraphicRedactor.figures)
            {
                DrawingVisual drawingVisual  = new DrawingVisual();
                var           drawingContext = drawingVisual.RenderOpen();

                var globalFigure = element.Clone() as Figure;
                globalFigure.ToWorldCoordinates(camera);
                globalFigure.Draw(drawingContext, camera);

                drawingContext.Close();
                children.Add(drawingVisual);
            }
        }
Example #2
0
        public override void MouseLeftButtonDown(int xCoord, int yCoord, ViewPort camera)
        {
            Figure zoomLayout = new Rectangle(xCoord, yCoord, xCoord,
                                              yCoord, new SolidColorBrush(Colors.Aqua), Colors.Black,
                                              5, DashStyles.Solid, new SolidColorBrush());

            zoomLayout.ToLocalCoordinates(camera);

            GraphicRedactor.figures.AddLast(zoomLayout);

            x1 = zoomLayout.X1;
            y1 = zoomLayout.Y1;
            x2 = zoomLayout.X2;
            y2 = zoomLayout.Y2;

            GraphicRedactor.ToolState = DrawingStates.DrawingState;
        }
Example #3
0
        public override void ToWorldCoordinates(ViewPort camera)
        {
            if (WorldPointsList == null)
            {
                WorldPointsList = new List <Point>();
            }
            else
            {
                WorldPointsList.Clear();
            }

            for (int i = 0; i < PointsList.Count; i++)
            {
                var point = new Point((PointsList[i].X - camera.Start.X) * camera.Scale,
                                      (PointsList[i].Y - camera.Start.Y) * camera.Scale);
                WorldPointsList.Add(point);
            }
        }
Example #4
0
        public override void MouseLeftButtonUp(ViewPort camera)
        {
            GraphicRedactor.figures.RemoveLast();
            GraphicRedactor.ToolState = DrawingStates.NotDrawingState;
            if (camera.Scale > 50)
            {
                return;
            }

            if (Point.Subtract(new Point(x1, y1), new Point(x2, y2)).Length > 2)
            {
                double scaleX = (camera.End.X - camera.Start.X) / (x2 - x1);
                double scaleY = (camera.End.Y - camera.Start.Y) / (y2 - y1);
                double scale  = (scaleX + scaleY) / 2;

                camera.Scale *= scale;
                camera.Start  = new Point(x1, y1);
                camera.End    = new Point(x2, y2);
            }
            else
            {
                double NewWidth  = (camera.End.X - camera.Start.X) / 2;
                double NewHeight = (camera.End.Y - camera.Start.Y) / 2;

                camera.Start = new Point()
                {
                    X = x1 - NewWidth / 2,
                    Y = y1 - NewHeight / 2
                };

                camera.End = new Point()
                {
                    X = camera.Start.X + NewWidth,
                    Y = camera.Start.Y + NewHeight
                };
                camera.Scale *= 2;
            }
        }
Example #5
0
        public override void MouseRightButtonUp(ViewPort camera, int x, int y)
        {
            x1 = x;
            y1 = y;

            if (camera.Scale > 0.1)
            {
                double NewWidth  = (camera.End.X - camera.Start.X) * 2;
                double NewHeight = (camera.End.Y - camera.Start.Y) * 2;

                camera.Start = new Point()
                {
                    X = x1 / camera.Scale + camera.Start.X - NewWidth / 2,
                    Y = y1 / camera.Scale + camera.Start.Y - NewHeight / 2
                };
                camera.End = new Point()
                {
                    X = camera.Start.X + NewWidth,
                    Y = camera.Start.Y + NewHeight
                };
                camera.Scale /= 2;
            }
        }
Example #6
0
 public override void MouseLeftButtonDown(int xCoord, int yCoord, ViewPort camera)
 {
     x1 = xCoord;
     y1 = yCoord;
     GraphicRedactor.ToolState = DrawingStates.DrawingState;
 }
Example #7
0
 public abstract void MouseRightButtonUp(ViewPort camera, int x, int y);
Example #8
0
 public abstract void MouseLeftButtonUp(ViewPort camera);
Example #9
0
 public abstract void MouseMove(int xCoord, int yCoord, ViewPort camera);
Example #10
0
 public abstract void MouseLeftButtonDown(int xCoord, int yCoord, ViewPort camera);
Example #11
0
 public abstract void Resize(int xCoord, int yCoord, ViewPort camera);
Example #12
0
        public override void Resize(int xCoord, int yCoord, ViewPort camera)
        {
            Point point = ToLocalCoordinates(new Point(xCoord, yCoord), camera);

            PointsList.Add(point);
        }
Example #13
0
 public Point ToLocalCoordinates(Point point, ViewPort camera) => new Point(point.X / camera.Scale + camera.Start.X, point.Y / camera.Scale + camera.Start.Y);
Example #14
0
 public override void MouseLeftButtonUp(ViewPort camera)
 {
     GraphicRedactor.ToolState = DrawingStates.NotDrawingState;
 }
 public override void MouseRightButtonUp(ViewPort camera, int x, int y)
 {
 }
Example #16
0
 public override void MouseRightButtonUp(ViewPort camera, int x, int y)
 {
     //throw new System.NotImplementedException();
 }
Example #17
0
 public abstract void Draw(DrawingContext drawingContext, ViewPort camera);