private static PcbGraphics PolylineHelper(PcbUnits coordinateUnits,Piece item)
        {
            PcbGraphicsLayer l = PcbGraphicsLayer.TopSilk;
            PcbLineType      t = PcbLineType.Solid;

            if (Piece.GraphicsLayerMapping.ContainsKey(item.CurrentLayer))
            {
                l = Piece.GraphicsLayerMapping[item.CurrentLayer];
            }
            else
            {
                WarningListener.AddFormat(new NotImplementedException(),
                                          "Default graphics layer used instead of #{0}",item.CurrentLayer);
            }
            if (Piece.LineTypeMapping.ContainsKey(item.CurrentLineType))
            {
                t = Piece.LineTypeMapping[item.CurrentLineType];
            }
            else
            {
                WarningListener.AddFormat(new NotImplementedException(),
                                          "Default line type used instead of {0}",Enum.GetName(typeof(Piece.LineType),item.CurrentLineType));
            }
            PcbGraphics g = new PcbGraphics(coordinateUnits,coordinateUnits,l,item.XY.Count - 1);

            for (int i = 1; i < item.XY.Count; i++)
            {
                g.Lines.Add(new PcbSilkLine(item.XY[i - 1],item.XY[i],coordinateUnits,coordinateUnits,item.Width,t));
            }
            return(g);
        }
 public PcbGraphics(PcbUnits units, PcbUnits coordinateUnits, PcbGraphicsLayer layer, int capacity = 4)
 {
     Lines           = new List <PcbSilkLine>(capacity);
     Units           = units;
     CoordinateUnits = coordinateUnits;
     Layer           = layer;
 }
        public string this[PcbGraphicsLayer layer]
        {
            get
            {
                switch (layer)
                {
                case PcbGraphicsLayer.BottomSilk:
                    return("BS");

                case PcbGraphicsLayer.TopSilk:
                    return("TS");

                default:
                    throw new NotImplementedException(string.Format(
                                                          "Graphics layer {0} is not supported", Enum.GetName(typeof(PcbGraphicsLayer), layer)));
                }
            }
        }