public void cmd_draw(UIMouseEventArgs e) { if (ObjectsList.Any(x => x.EditMode)) { MyPoint CurrPosition = new MyPoint(e.ClientX - LocalData.SVGPosition.x, e.ClientY - LocalData.SVGPosition.y); BPaintHandDraw Curr_Object = (BPaintHandDraw)ObjectsList.Single(x => x.EditMode); if (Curr_Object.data.Any()) { MyPoint LastPoint = Curr_Object.data.Last(); if (LastPoint.x != CurrPosition.x || LastPoint.y != CurrPosition.y) { Curr_Object.data.Add(CurrPosition); cmd_RefreshSVG(); } } else { Curr_Object.data.Add(CurrPosition); cmd_RefreshSVG(); } } }
public void cmd_prepareDraw(UIMouseEventArgs e) { MyPoint CurrPosition = new MyPoint(e.ClientX - LocalData.SVGPosition.x, e.ClientY - LocalData.SVGPosition.y); BPaintHandDraw new_BPaintHandDraw = new BPaintHandDraw(); if (ObjectsList.Any()) { new_BPaintHandDraw.ObjectID = ObjectsList.Max(x => x.ObjectID) + 1; cmd_Clear_Selection(); cmd_Clear_Editing(); } else { new_BPaintHandDraw.ObjectID = 1; } new_BPaintHandDraw.ObjectType = BPaintOpbjectType.HandDraw; new_BPaintHandDraw.Selected = true; new_BPaintHandDraw.EditMode = true; new_BPaintHandDraw.Color = Color1; new_BPaintHandDraw.width = LineWidth1; new_BPaintHandDraw.StartPosition = new MyPoint(CurrPosition.x, CurrPosition.y); new_BPaintHandDraw.data = new List <MyPoint>(); ObjectsList.Add(new_BPaintHandDraw); }
private path drawPath(BPaintHandDraw Par_Object) { StringBuilder sb = new StringBuilder(); bool IsFirst = true; sb.Append("M"); sb.Append(Par_Object.StartPosition.x + Par_Object.PositionChange.x); sb.Append(" "); sb.Append(Par_Object.StartPosition.y + Par_Object.PositionChange.y); sb.Append(" "); for (int i = 0; i < Par_Object.data.Count; i++) { sb.Append("L"); sb.Append(Par_Object.data[i].x + Par_Object.PositionChange.x); sb.Append(" "); sb.Append(Par_Object.data[i].y + Par_Object.PositionChange.y); sb.Append(" "); } path p = new path() { id = "path" + Par_Object.ObjectID, fill = "none", stroke = Par_Object.Color, d = sb.ToString(), // opacity = _opacity, stroke_width = Par_Object.width, }; if (Par_Object.Scale.x != 0 || Par_Object.Scale.y != 0) { p.transform = "scale(" + Par_Object.Scale.x + "," + Par_Object.Scale.y + ")"; } return(p); }
public static RectD Get_Border_Points(BPaintHandDraw Par_obj, bool padding = true) { RectD result = new RectD(); List <PointD> data = Par_obj.data.ToList(); data.Add(Par_obj.Position.PtD); 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); }
public static MyPointRect Get_Border_Points(BPaintHandDraw Par_obj) { MyPointRect result = new MyPointRect(); List <MyPoint> data = Par_obj.data.ToList(); data.Add(Par_obj.StartPosition); 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; result.x += Par_obj.PositionChange.x; result.y += Par_obj.PositionChange.y; Set_Padding(result); return(result); }