/// <summary>
        /// Reconstructs the bounding geometry cue from the given region
        /// </summary>
        public void ConstructFrom(Rectangle region)
        {
            if (Items == null)
            {
                Items = new GeometryItem[4];
                // top
                GeometryPoint gp1 = new GeometryPoint(region.Location, GeometryPointType.ResizableNWSE);
                GeometryPoint gp2 = new GeometryPoint(new Point(region.Right, region.Top), GeometryPointType.ResizableNESW);
                Items[0] = new GeometryItem(gp1, gp2, GeometryItemType.Selection);

                // right
                GeometryPoint gp3 = new GeometryPoint(new Point(region.Right, region.Bottom), GeometryPointType.ResizableNWSE);
                Items[1] = new GeometryItem(gp2, gp3, GeometryItemType.Selection);

                // bottom
                GeometryPoint gp4 = new GeometryPoint(new Point(region.Left, region.Bottom), GeometryPointType.ResizableNESW);
                Items[2] = new GeometryItem(gp4, gp3, GeometryItemType.Selection);

                // left
                Items[3] = new GeometryItem(gp1, gp4, GeometryItemType.Selection);

                Visible = visible;
            }
            else
            {
                Items[0].Points[0].Move(region.Location);
                Items[1].Points[0].Move(new Point(region.Right, region.Top));
                Items[2].Points[1].Move(new Point(region.Right, region.Bottom));
                Items[3].Points[1].Move(new Point(region.Left, region.Bottom));
            }
        }
Beispiel #2
0
        public Line(Point begin, Point end, ShapeStyle style)
            : base(new Rectangle(
                Math.Min(begin.X, end.X),
                Math.Min(begin.Y, end.Y),
                Math.Abs(begin.X - end.X),
                Math.Abs(begin.Y - end.Y)),
                0,
                style,
                "Layer - Line")
        {
            Begin = new GeometryPoint(begin, GeometryPointType.Movable);
            End = new GeometryPoint(end, GeometryPointType.Movable);

            EditablegeometryCue.Add(Begin);
            EditablegeometryCue.Add(End);
        }
 public void AddRange(GeometryPoint[] points)
 {
     Points.AddRange(points);
     Visible = visible;
 }
 public void Add(GeometryPoint point)
 {
     Points.Add(point);
     Visible = visible;
 }
 public GeometryItem(GeometryPoint first, GeometryPoint second, GeometryItemType type)
 {
     Points = new[] { first, second };
     Type = type;
 }