Shared concatenation helpers for the progressive (additive-LOD) loaders.
The points / lines / gsplats progressive loaders each concatenate a set of
per-LOD typed-array fields. The "allocate total * perItem, copy at a
running offset" loop and the "all-or-nothing optional field" gate were
duplicated across all three; they live here once. Geometry-specific
wrinkles (segment-index offsetting, colour fill-with-white) stay in the
individual loaders.
The helpers are structurally generic over the concrete typed-array type
A (Float32Array, Uint8/16/32Array, Float16Array, …) so each loader keeps
its own narrow field types (e.g. ColorArray, ScalarArray) with the
source dtype preserved.
Shared concatenation helpers for the progressive (additive-LOD) loaders.
The points / lines / gsplats progressive loaders each concatenate a set of per-LOD typed-array fields. The "allocate
total * perItem, copy at a running offset" loop and the "all-or-nothing optional field" gate were duplicated across all three; they live here once. Geometry-specific wrinkles (segment-index offsetting, colour fill-with-white) stay in the individual loaders.The helpers are structurally generic over the concrete typed-array type
A(Float32Array, Uint8/16/32Array, Float16Array, …) so each loader keeps its own narrow field types (e.g.ColorArray,ScalarArray) with the source dtype preserved.