What the last pose posed.
ReadonlyrootReadonlytreesMeshes the sync can still share (a mesh merged away is no longer counted).
The SceneTrees mesh handles the sync holds now, one per mesh it added
(a shared geometry range, or a posed object's own), for
SceneTrees.meshStatus and stats. A new array each time; a
sync can add and remove handles.
Settles once every pose-pass compile started so far has (a failed one warns, and its pass compiles at its first update). Until then update skips the objects whose pass is compiling; await it after the constructor (or a sync that added posed objects) to have every object posed from the next update. Never rejects.
Removes every instance and mesh the sync added from the SceneTrees, except merged static instances (SceneTrees can't remove them) and their meshes.
Whether mesh is posed on the GPU (see SceneTreesObject3DSyncOptions.deforming).
The geometry and range (or folded groups) of a hit instance's mesh (for threeFaceIndex, threeGroupOf, threeMaterialOf), or null.
Runs the pose pass of every visible posed object (skinned and morphed
meshes) and hands its vertices to SceneTrees.setPose, moving its
top-level box when the pose leaves it. update calls it last.
An object whose pass's pipeline is still compiling is skipped (see ready).
The pose pass of a posed object (its buffer holds the last pose), or null.
The three object behind a hit's instance (the SceneTrees instanceIndex), or null.
Walks the scene again: adds new meshes and instances, removes gone ones,
then pushes changes as update does (and material indices). The
walk and the plan come first, so a throwing material callback changes
nothing; each SceneTrees call then updates the sync's records with it.
Pushes the moved, shown, hidden and re-layered instances the sync knows
(not static ones), skipping objects that didn't change (see the file
comment). Call once per frame, after updateMatrixWorld() and before
SceneTrees.update.
Adds every mesh and instance under
roottotrees(one sync).