setSplatData method

  1. @override
Future<void> setSplatData(
  1. Uint8List data
)
override

Uploads raw processed splat data.

Implementation

@override
Future<void> setSplatData(Uint8List data) async {
  if (data.length % GsConst.bytesPerSplat != 0) {
    throw ArgumentError.value(
      data.length,
      'data.length',
      'Must be a multiple of ${GsConst.bytesPerSplat}',
    );
  }

  _splatBuffer = data;
  _visibleCount = -1; // draw all until the first sort for this data lands
  _resolveDataDirty = true; // resolved SH colors must be recomputed
  _lastResolvedDirection = null;
  _source.uploadSplats(data);
  _sortDataGeneration++;
  _depthSorter.setSplatData(data, _source.splatCount);
  _source.uploadOrder(_sequentialOrder(_source.splatCount));

  if (_camera != null) {
    _requestSort(force: true);
    await _depthSorter.firstSortComplete;
  }
}