Shared LoaderMonitor surface for the progressive (multi-additive-LOD)
loaders. A progressive node wraps N inner per-LOD spatial-index loaders;
to the data monitor it must look like a SINGLE loader keyed by the parent
node path.
The critical job here is re-pathing: each inner loader emits monitor
events stamped with its own additive_<i> sub-path. If those reached the
monitor unchanged, updateMetricsFromEvent would record a separate metrics
entry per sub-path — double-counting throughput/memory in getGlobalStats
(which sums every entry) and showing stale per-LOD rows in the loader list.
Re-stamping events with the parent path makes the inner LODs an invisible
implementation detail, so the node behaves exactly like a non-progressive
loader at the monitor boundary.
Kept as a standalone adapter (rather than duplicated inline) so the three
progressive loaders stay byte-for-byte symmetric and the surface is
unit-testable in isolation.
Shared
LoaderMonitorsurface for the progressive (multi-additive-LOD) loaders. A progressive node wraps N inner per-LOD spatial-index loaders; to the data monitor it must look like a SINGLE loader keyed by the parent node path.The critical job here is re-pathing: each inner loader emits monitor events stamped with its own
additive_<i>sub-path. If those reached the monitor unchanged,updateMetricsFromEventwould record a separate metrics entry per sub-path — double-counting throughput/memory ingetGlobalStats(which sums every entry) and showing stale per-LOD rows in the loader list. Re-stamping events with the parent path makes the inner LODs an invisible implementation detail, so the node behaves exactly like a non-progressive loader at the monitor boundary.Kept as a standalone adapter (rather than duplicated inline) so the three progressive loaders stay byte-for-byte symmetric and the surface is unit-testable in isolation.