parseSplatOctree function
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;
}