public void startCircle(MouseEventArgs e)
        {
            PointD CurrPosition = new PointD(e.ClientX - LocalData.SVGPosition.X, e.ClientY - LocalData.SVGPosition.Y);

            BPaintCircle new_BPaintCircle = new BPaintCircle();


            if (ObjectsList.Any())
            {
                new_BPaintCircle.ObjectID = ObjectsList.Max(x => x.ObjectID) + 1;
                cmd_Clear_Selection();
                cmd_Clear_Editing();
            }
            else
            {
                new_BPaintCircle.ObjectID = 1;
            }

            BPaintVertex startVertex = new BPaintVertex(CurrPosition, Color1);

            VerticesList.Add(startVertex);

            new_BPaintCircle.Selected  = true;
            new_BPaintCircle.EditMode  = true;
            new_BPaintCircle.Color     = Color1;
            new_BPaintCircle.LineWidth = LineWidth1;
            new_BPaintCircle.Position  = startVertex;
            BPaintVertex endVertex = new BPaintVertex(CurrPosition, Color1);

            new_BPaintCircle.end = endVertex;
            VerticesList.Add(endVertex);
            CurrPaintMode             = BPaintMode.movingAnElement;
            bpVertexUnderMousePointer = endVertex;
            ObjectsList.Add(new_BPaintCircle);
        }
예제 #2
0
        public static RectD Get_Border_Points(BPaintCircle Par_obj, bool padding = true)
        {
            RectD         result = new RectD();
            List <PointD> data   = new List <PointD>();

            PointD cPoint = Par_obj.Position.PtD;
            double r      = Par_obj.Position.PtD.DistanceTo(Par_obj.end.PtD);

            data.Add(cPoint + new SizeD(0, r));
            data.Add(cPoint + new SizeD(0, -r));
            data.Add(cPoint + new SizeD(r, 0));
            data.Add(cPoint + new SizeD(-r, 0));

            result.x      = data.Min(j => j.X);
            result.y      = data.Min(j => j.Y);
            result.width  = data.Max(j => j.X) - result.x;
            result.height = data.Max(j => j.Y) - result.y;

            if (padding)
            {
                Set_Padding(result);
            }

            return(result);
        }