forEachNode method

void forEachNode(
  1. void visit(
    1. int node,
    2. Matrix4 modelFromNode
    )
)

Calls visit for every node of the shown scene, parents first, with its transform relative to the model's root.

Implementation

void forEachNode(void Function(int node, Matrix4 modelFromNode) visit) {
  void walk(int index, Matrix4 parent) {
    final node = nodes[index];
    final world = parent.multiplied(node.local);
    visit(index, world);
    for (final child in node.children) {
      walk(child, world);
    }
  }

  for (final root in roots) {
    walk(root, Matrix4.identity());
  }
}