Exemple #1
0
        public void WritePointSet(PointSet pointSet, int sliceId, string comment = null)
        {
            var groupMeta = new GpdGroupMeta
            {
                Points  = pointSet.Count,
                Slice   = sliceId,
                Id      = _groupId++,
                Comment = comment
            };

            WriteGroupMeta(groupMeta);
            foreach (var point in pointSet)
            {
                WritePoint(point);
            }
        }
Exemple #2
0
        public PointSet ReadPointSet(out GpdGroupMeta metaData)
        {
            if (_pointGroupId >= Header.Groups)
            {
                metaData = null;
                return(null);
            }

            metaData = ReadMetaData();
            var pointSet = new PointSet((int)metaData.Points);

            while (_pointId < metaData.Points)
            {
                pointSet.Points.Add(ReadPoint());
            }

            _pointGroupId++;

            return(pointSet);
        }
Exemple #3
0
        private GpdGroupMeta ReadMetaData()
        {
            var stringBuilder = new StringBuilder();
            // Meta is ASCII encoded string, so we can read it as chars
            byte metaDataTagRead = 0;

            do
            {
                var readChar = _binaryReader.ReadChar();
                if (readChar == MetaDataChar)
                {
                    metaDataTagRead++;
                }
                stringBuilder.Append(readChar);
            } while (metaDataTagRead != 2);
            var metadataLine = stringBuilder.ToString();
            var metaData     = GpdGroupMeta.Parse(metadataLine);

            _sliceId              = metaData.Slice;
            _pointId              = 0;
            _pointGroupId         = metaData.Id;
            _pointsInCurrentGroup = metaData.Points;
            return(metaData);
        }
Exemple #4
0
 public void WriteGroupMeta(GpdGroupMeta metadata)
 {
     WriteLine(metadata.ToString());
 }