Stamp the committing loader's ladder state for the current view: whether
the committed ladder is complete (committedLadderComplete) and how much
of its total self-energy the committed prefix carries
(committedEnergyFraction). Reads both off userData.loader (the same
loader whose just-returned data is being committed — one source of truth).
A non-progressive loader has no hasMoreLODs getter and stamps
complete/energy-1 (a single-set leaf IS its full content), matching the
structural-probe idiom used by the refinement scheduling (queue-next.ts).
A progressive loader whose dataset carries no energy_fraction_cum build
stamps reports committedEnergyFraction: null — the mesh stamp is then
REMOVED (absence = unstamped), so the display gate falls back to committed-
count crossover instead of blending measured and guessed energies.
No-op when userData is absent. Called by every leaf commit, INCLUDING the
stamp-only no-op branches, so the stamps are exactly as current as the
freshness stamp beside them.
Stamp the committing loader's ladder state for the current view: whether the committed ladder is complete (
committedLadderComplete) and how much of its total self-energy the committed prefix carries (committedEnergyFraction). Reads both offuserData.loader(the same loader whose just-returned data is being committed — one source of truth).A non-progressive loader has no
hasMoreLODsgetter and stamps complete/energy-1 (a single-set leaf IS its full content), matching the structural-probe idiom used by the refinement scheduling (queue-next.ts). A progressive loader whose dataset carries noenergy_fraction_cumbuild stamps reportscommittedEnergyFraction: null— the mesh stamp is then REMOVED (absence = unstamped), so the display gate falls back to committed- count crossover instead of blending measured and guessed energies.No-op when
userDatais absent. Called by every leaf commit, INCLUDING the stamp-only no-op branches, so the stamps are exactly as current as the freshness stamp beside them.