Hidden-dimension slice gate for kind=partition parts (B4).
A partition part whose stored bounds miss the current slice on a DISCRETE
hidden dimension draws nothing: every renderer gates a discrete hidden
dimension by MEMBERSHIP on the element's own coordinate, never by an extent.
gsplats: centre within 0.5 × step (workers/data-worker/projection/gsplats.ts);
points: value within an absolute 0.5 (data/points/effective-radius-calculator.ts,
non-spatial dims), after a chunk fetch whose reach is at most
0.25 × step beyond a write-side pad of at most 0.5 × step;
lines: the half-cell clipping slab (segments are bounded by their vertices,
which the part bounds contain);
mesh: the half-cell barrier membership slab.
So a part is provably empty for the view when, on some such dimension, its
bounds lie farther than partitionSliceMargin from the slice position
— max(0.5, 0.75 × step) with a relative float32 slop, which covers every
gate above with room to spare and still excludes the on-grid neighbours one
step away. Anything the rule cannot vouch for is kept (never gated):
continuous dimensions (a gsplat's continuous reach is its own σ, which the
node attrs do not carry), spatial dimensions (points radius slicing), an
extend_to_all dimension, a dimension without metadata, and — decided by the
caller — any part under an nd_transform, whose bounds live in a different
space from the world slice.
Pure and allocation-free: the registry calls it per part per frame.
Hidden-dimension slice gate for
kind=partitionparts (B4).A partition part whose stored bounds miss the current slice on a DISCRETE hidden dimension draws nothing: every renderer gates a discrete hidden dimension by MEMBERSHIP on the element's own coordinate, never by an extent.
0.5 × step(workers/data-worker/projection/gsplats.ts);0.5(data/points/effective-radius-calculator.ts, non-spatialdims), after a chunk fetch whose reach is at most0.25 × stepbeyond a write-side pad of at most0.5 × step;So a part is provably empty for the view when, on some such dimension, its bounds lie farther than partitionSliceMargin from the slice position —
max(0.5, 0.75 × step)with a relative float32 slop, which covers every gate above with room to spare and still excludes the on-grid neighbours one step away. Anything the rule cannot vouch for is kept (never gated): continuous dimensions (a gsplat's continuous reach is its own σ, which the node attrs do not carry),spatialdimensions (points radius slicing), anextend_to_alldimension, a dimension without metadata, and — decided by the caller — any part under annd_transform, whose bounds live in a different space from the world slice.Pure and allocation-free: the registry calls it per part per frame.