parseSplatOctree function

SplatOctree parseSplatOctree(
  1. Uint8List bytes
)

A whole tree file read at once, every page attached.

Implementation

SplatOctree parseSplatOctree(Uint8List bytes) {
  final tree = parseSplatOctreeIndex(bytes);
  for (var k = 0; k < tree.nodes.length; k++) {
    final node = tree.nodes[k];
    final end = node.pageOffset + node.splatCount * splatPageBytesPerSplat;
    if (end > bytes.length) {
      throw SplatOctreeException('node $k\'s page runs past the end');
    }
    tree.attach(
      k,
      decodeSplatPage(
        Uint8List.sublistView(bytes, node.pageOffset, end),
        node.splatCount,
      ),
    );
  }
  return tree;
}