Dependencies injected by the owning LayersPanel. getRootGroup /
getSceneNodeIndex are accessors because both fields are replaced on every
initFromScene; the index (the scene loader's SceneNodeIndex, whose root
is the scene graph) answers every leaf's root→leaf chain in O(1), so a slider
tick over a P-part layer is O(P · depth) rather than a children.find
descent per leaf (O(P²)); state is the panel's (stable) layer-state manager and
requestRender wakes the on-demand render loop after a material write, and
requestReprocess refreshes a layer that became load-eligible again.
Marks the cached GPU pick buffer dirty so it re-renders after a panel edit
changed pick coverage (opacity/gain/cutoff/blending/physical knobs).
No-op when picking is inactive.
Dependencies injected by the owning LayersPanel.
getRootGroup/getSceneNodeIndexare accessors because both fields are replaced on everyinitFromScene; the index (the scene loader'sSceneNodeIndex, whoserootis the scene graph) answers every leaf's root→leaf chain in O(1), so a slider tick over a P-part layer is O(P · depth) rather than achildren.finddescent per leaf (O(P²));stateis the panel's (stable) layer-state manager andrequestRenderwakes the on-demand render loop after a material write, andrequestReprocessrefreshes a layer that became load-eligible again.