Point[] GetHull(VectorShape shape, Matrix matrix, int delta) { var vector = shape.Data; //vector.Transform(matrix); //return vector.PolygonHull(delta, true); var oldHull = vector.Hull(delta, true); matrix.Transform(oldHull); return(GDIConverter.Convert(oldHull)); }
public override void OnPaint(IRenderEventArgs e) { var g = ((GdiSurface)e.Surface).Graphics; var save = g.Transform; g.Transform = new System.Drawing.Drawing2D.Matrix(); System.Drawing.Drawing2D.GraphicsPath hullPath = new System.Drawing.Drawing2D.GraphicsPath(); var layout = this.Layout(); foreach (var visual in Data.Elements) { Point[] datahull = null; var r = Camera.FromSource(visual.Shape.BoundsRect); g.DrawRectangle(pen, r.ToGdi()); if (Layout != null) { datahull = layout.GetDataHull(visual, Camera.Matrix, 0, true); } //Point[] hull = visual.Shape.Hull(Transformer.Matrice,15, true); Point[] hull = null; if (visual.Shape is VectorShape && Layout != null) { } if (datahull != null) { g.DrawPolygon(datahullpen, GDIConverter.Convert(datahull)); } if (hull != null) { g.DrawPolygon(hullpen, GDIConverter.Convert(hull)); } } g.Transform = save; }