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; })); }
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)); } }
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 }); }