public GTrack Read(Stream MapStream) { var data = ReadBytes(MapStream, _recordLength); var number = data[0]; var childrenCount = data[1]; var childrenStartAddress = SubInt(data, 2, 3); if (childrenStartAddress == 0xffffff) { return(null); } var track = new GTrack(number); if (childrenCount > 0) { if (childrenStartAddress == 0) { throw new IndexOutOfRangeException(); } var previousPosition = MapStream.Position; MapStream.Seek(childrenStartAddress, SeekOrigin.Begin); for (var i = 0; i < childrenCount; i++) { var obj = _objectReader.Read(MapStream); track.Objects.Add(obj); } MapStream.Seek(previousPosition, SeekOrigin.Begin); } return(track); }
private string TrackName(GTrack Track) { if (Track.Number <= 15) return string.Format("{0}П", Track.Number); return string.Format("{0}Н", Track.Number - 15); }
protected double PrintTrack(DrawingContext dc, GTrack Track) { var postLabel = new FormattedText(string.Format("Путь {0}", Track.Number), CultureInfo.CurrentCulture, FlowDirection.LeftToRight, new Typeface("Verdana"), 10, mainBrush); dc.DrawText(postLabel, new Point()); return postLabel.Height; }