The part of BufferGeometryapplyDebugDrawStreams touches, declared
locally because @fourjs/diagnostics has no geometry edge in the frozen §3.1
matrix — the same structural-seam rule as DebugBodyAccess, and the
same honest cost: nothing type-checks this declaration against
BufferGeometry; a change to those three members fails this package's
tests, which mirror the semantics, not its build.
A BufferGeometry satisfies it as it stands (positions and colors are
accessor pairs, markDirty bumps the version). So does any hand-rolled sink
with the same three members.
Per-vertex straight RGBA, or undefined for none. Assigning validates it
against the current positions, which is why
applyDebugDrawStreams drops it before replacing them.
positions
positions:Float32Array
Vertex positions; assigning validates and bumps the version (§85).
The part of
BufferGeometryapplyDebugDrawStreams touches, declared locally because@fourjs/diagnosticshas nogeometryedge in the frozen §3.1 matrix — the same structural-seam rule as DebugBodyAccess, and the same honest cost: nothing type-checks this declaration againstBufferGeometry; a change to those three members fails this package's tests, which mirror the semantics, not its build.A
BufferGeometrysatisfies it as it stands (positionsandcolorsare accessor pairs,markDirtybumps the version). So does any hand-rolled sink with the same three members.