updateInstanceTransforms method
void
updateInstanceTransforms(})
Updates every instance transform in place and invalidates the batch once.
update receives a fixed-length view. Mutate its matrices without adding,
removing, or replacing entries. Set recomputeWinding to false only when
the edits cannot change any transform's winding parity.
Implementation
void updateInstanceTransforms(
void Function(List<Matrix4> transforms) update, {
bool recomputeWinding = true,
}) {
try {
update(_instanceUpdateView ??= UnmodifiableListView<Matrix4>(_instances));
} finally {
if (recomputeWinding) {
for (var i = 0; i < _instances.length; i++) {
_windingFlipped[i] = _instances[i].determinant() < 0;
}
}
_boundsDirty = true;
_revision++;
}
}