Exemplo n.º 1
0
 private PcbTrack ReadFootprintTrack(BinaryReader reader)
 {
     return(ReadBlock(reader, recordSize =>
     {
         CheckValue(nameof(recordSize), recordSize, 36, 41, 45);
         var track = new PcbTrack();
         ReadFootprintCommon(reader, track);
         var startX = reader.ReadInt32();
         var startY = reader.ReadInt32();
         track.Start = new CoordPoint(startX, startY);
         var endX = reader.ReadInt32();
         var endY = reader.ReadInt32();
         track.End = new CoordPoint(endX, endY);
         track.Width = reader.ReadInt32();
         reader.ReadByte(); // TODO: Unknown
         reader.ReadByte(); // TODO: Unknown
         reader.ReadByte(); // TODO: Unknown
         if (recordSize >= 41)
         {
             reader.ReadByte();   // TODO: Unknown
             reader.ReadUInt32(); // TODO: Unknown
         }
         if (recordSize >= 45)
         {
             reader.ReadUInt32(); // TODO: Unknown
         }
         return track;
     }));
 }
Exemplo n.º 2
0
        private void RenderTrackPrimitive(Graphics g, PcbTrack track)
        {
            var penColor = LayerMetadata.GetColor(track.Layer);
            var penWidth = ScaleCoord(track.Width);

            using (var pen = CreatePen(penColor, penWidth))
            {
                g.DrawLine(pen,
                           ScreenFromWorld(track.Start.X, track.Start.Y),
                           ScreenFromWorld(track.End.X, track.End.Y));
            }
        }
Exemplo n.º 3
0
 private void WriteFootprintTrack(BinaryWriter writer, PcbTrack track)
 {
     WriteBlock(writer, w =>
     {
         WriteFootprintCommon(w, track, track.Start);
         WriteCoordPoint(w, track.End);
         w.Write(track.Width.ToInt32());
         w.Write((byte)0); // TODO: Unknown
         w.Write((byte)0); // TODO: Unknown
         w.Write((byte)0); // TODO: Unknown
     });
 }