public LASFile(string path) : base(path) { if (Exists) { try { using (var stream = StreamManager.OpenReadStream(FilePath)) { using (var reader = new FlexibleBinaryReader(stream)) { m_header = reader.ReadLASHeader(); } m_vlrs = m_header.ReadVLRs(stream); m_evlrs = m_header.ReadEVLRs(stream); } m_extent = m_header.Extent; } catch { } } }
public LASVLR[] ReadVLRs(Stream stream) { var vlrs = new List<LASVLR>((int)m_numberOfVariableLengthRecords); if (m_numberOfVariableLengthRecords > 0) { stream.Seek(m_headerSize, SeekOrigin.Begin); using (var reader = new FlexibleBinaryReader(stream)) { for (int i = 0; i < m_numberOfVariableLengthRecords; i++) { var vlr = reader.ReadObject<LASVLR>(); //if (vlr.IsInteresting) vlrs.Add(vlr); } } } return vlrs.ToArray(); }
public LASEVLR[] ReadEVLRs(Stream stream) { var vlrs = new List<LASEVLR>((int)m_numberOfExtendedVariableLengthRecords); if (m_numberOfExtendedVariableLengthRecords > 0) { stream.Seek((long)m_startOfFirstExtendedVariableLengthRecord, SeekOrigin.Begin); using (var reader = new FlexibleBinaryReader(stream)) { for (int i = 0; i < m_numberOfExtendedVariableLengthRecords; i++) { var vlr = reader.ReadObject<LASEVLR>(); if (vlr != null)// && vlr.IsInteresting) vlrs.Add(vlr); } } } return vlrs.ToArray(); }