Пример #1
0
        PCModelHeader ReadDataHeader(BinaryReader reader)
        {
            PCModelHeader header = new PCModelHeader();

            header.version         = reader.ReadUInt16();
            header.nbSubPointCloud = reader.ReadUInt32();

            header.map = new PCModelHeader_Offsets[header.nbSubPointCloud];

            for (uint i = 0; i < header.nbSubPointCloud; ++i)
            {
                PCModelHeader_Offsets offsets = new PCModelHeader_Offsets();
                offsets.offsetTree       = reader.ReadUInt64();
                offsets.offsetPointCloud = reader.ReadUInt64();

                header.map[i] = offsets;
            }

            return(header);
        }
Пример #2
0
        PointCloudSub[] ReadDataBody(PCModelHeader header, BinaryReader reader)
        {
            PointCloudSub[] pointDatasets = new PointCloudSub[header.nbSubPointCloud];

            for (uint i = 0; i < header.nbSubPointCloud; ++i)
            {
                //ReadKDTree(file, header.map[i].offsetTree, i);
                PointCloudSub dataset = ReadPointCloud(reader, header.map[i].offsetPointCloud);

                if (dataset.m_numberOfPoints > 0)
                {
                    pointDatasets[i] = dataset;
                }
                else
                {
                    pointDatasets[i] = null;
                }
            }

            return(pointDatasets);
        }