public virtual async Task <IPointCloud> ReadPointCloudFromFileAsync(IAssetImporterExporter assetImporterExporter, string filePath) { var scene = await assetImporterExporter.ImportFileAsync(filePath); var mesh = scene.Meshes.First(); var vertices = new List <Vertex>(); for (int i = 0; i < scene.Meshes.First().Points.Count; ++i) { var vertex = new Vertex(mesh.Points[i], mesh.Normals[i], mesh.Colors[i].ToSystemColor()); vertices.Add(vertex); } return(new PointCloud(vertices.ToArray(), null, filePath)); }
public virtual Task WritePointCloudToFileAsync(IAssetImporterExporter assetImporterExporter, IPointCloud pointCloud, string filePath) { var scene = PointCloudToSceneAdapter.GenerateSceneFromPointCloud(pointCloud); return(assetImporterExporter.ExportFileAsync(scene, filePath, true)); }