Async Processing

If enabled, the process will happen in the background, without blocking the main thread. This could be especially useful if you are creating / loading an asset from a large data set (few million points or more).

Callbacks

Currently only available if using C++. Unfortunately, I have yet to find a robust and easy way to assign Progress and Completion callbacks via Blueprint.

// This will include the necessery header files
#include "PointCloud.h"

// Prepare async parameteres   
FPointCloudAsyncParameters AsyncParameters(true,
[](float Progress)
{
    // Lambda call, executed every ~1% of progress
    // Progress parameter is a float in 0 - 1 range
},
[](bool bSuccess)
{
    // Lambda call, executed, once the process completes
});

// Usage 1: Construct a Point Cloud asset
UPointCloud *MyPointCloud = UPointCloud::CreateFromData(MyPoints, AsyncParameters);

// Usage 2: Load a Point Cloud asset from file
UPointCloud *MyPointCloud = UPointCloud::CreateFromFile(MyPointCloudPath, AsyncParameters);