using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; namespace DeepNestLib { public class RawDetail { public List Outers = new List(); public List Holes = new List(); public RectangleF BoundingBox() { GraphicsPath gp = new GraphicsPath(); foreach (var item in Outers) { gp.AddPolygon(item.Points.ToArray()); } return gp.GetBounds(); } public string Name { get; set; } public NFP ToNfp() { NFP po = null; List nfps = new List(); foreach (var item in Outers) { var nn = new NFP(); nfps.Add(nn); foreach (var pitem in item.Points) { nn.AddPoint(new SvgPoint(pitem.X, pitem.Y)); } } if (nfps.Any()) { var tt = nfps.OrderByDescending(z => z.Area).First(); po = tt; po.Name = Name; foreach (var r in nfps) { if (r == tt) continue; if (po.children == null) { po.children = new List(); } po.children.Add(r); } } return po; } public void Offset(double v1, double v2) { for(int i=0;i