LeafFrameUpdater
Writes every document child's world under an SDF item or a group (leaf-probe §LPD-8).
| Inherits | QObject |
In the namespace construct::model. Declared in src/libs/libconstruct/construct/model/LeafFrameUpdater.hpp.
Detailed description
A document child (a mesh, tet volume, camera, bounds volume or reference image) whose parent is a proxy with a chain (SceneItem::frameSteps) gets SceneItem::leafWorld: the leaf of its own translate through the parent's ops, its own rotation and scale on top (§LPD-5).
It reacts to two things. The compiler wrote new chains (LogicalSceneCompiler::frameStepsChanged): it recomputes the children of those proxies, one batch per proxy (§LPD-10). A document child changed its TRS or its parent: it recomputes that child. It writes silently and announces through updateItem only a value that changed, and an update whose only change is the leaf world is not a change of the child's TRS, so it cannot feed itself.
The batch renderer, which has no compiler, owns one too and calls recomputeAll() after its per-frame refresh. A cache belongs to one thread (§LPD-4), so each updater owns its own; the verdicts are shared.