예제 #1
0
파일: LASFile.cs 프로젝트: jdauie/cloudae
        public LASFile(string path, LASHeader header, LASVLR[] vlrs, LASEVLR[] evlrs)
            : base(path)
        {
            m_header = header;
            m_vlrs = vlrs;
            m_evlrs = evlrs;

            using (var stream = File.Create(FilePath))
            {
                using (var writer = new FlexibleBinaryWriter(stream))
                {
                    header.Serialize(writer);
                }

                //header.WriteVLRs(stream, vlrs);
            }

            m_extent = m_header.Extent;
        }
예제 #2
0
파일: LASHeader.cs 프로젝트: jdauie/cloudae
        public void WriteVLRs(Stream stream, LASVLR[] vlrs)
        {
            //m_numberOfVariableLengthRecords = vlrs.Length;

            // my stream doesn't seek for now
            stream.Seek(m_headerSize, SeekOrigin.Begin);

            using (var writer = new FlexibleBinaryWriter(stream))
            {
                foreach (var vlr in vlrs)
                {
                    writer.Write(vlr);
                }
            }
        }
예제 #3
0
파일: LASHeader.cs 프로젝트: jdauie/cloudae
        public void WriteEVLRs(Stream stream, LASEVLR[] vlrs)
        {
            stream.Seek((long)m_startOfFirstExtendedVariableLengthRecord, SeekOrigin.Begin);

            using (var writer = new FlexibleBinaryWriter(stream))
            {
                foreach (var vlr in vlrs)
                {
                    writer.Write(vlr);
                }
            }
        }
예제 #4
0
        public void WriteHeader()
        {
            Close();

            // todo: mark as dirty somehow
            using (var stream = File.OpenWrite(FilePath))
            {
                using (var writer = new FlexibleBinaryWriter(stream))
                {
                    writer.Write(m_file.Header);
                }
                m_file.Header.WriteVLRs(stream, m_file.VLRs);
                m_file.Header.WriteEVLRs(stream, m_file.EVLRs);
            }
        }