Due to how the data is stored internally, unfortunately, no. But you could get the next best thing doing the following:
- Get the first frame of data
- Generate the initial cloud from it
- Get pointers to all points
- Update locations of those pointers with the new data
Overall, something like this:
// You would only do it once after the cloud has been initially created
// Get an array of pointers to all points in the cloud
TArray<FPointCloudPoint*> Points = MyCloud->GetPoints();
// Below you would do per frame
{
// Grab the pointer to the data - to speed up iteration
FPointCloudPoint** DataPtr = Points.GetData();
for(int32 x = 0; x < 640; ++x)
{
for(int32 y = 0; y < 480; ++y)
{
// Here, you would update the location data
(*DataPtr)->Location = GetNewLocation(x, y);
// Iterate to the next point;
++DataPtr;
}
}
}