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); }
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); }