@pbroom/color-kit/computePacking
packPlaneQueryResults
Packs plane query results into transfer-friendly typed arrays.
import { packPlaneQueryResults } from '@pbroom/color-kit/compute';pack.ts:39function packPlaneQueryResults(
results: PlaneQueryResult[],
): PackedPlaneQueryResult;All paths go into shared buffers (pathRanges as [start, count] pairs, point data as Float32Arrays) with one descriptor per result carrying its kind-specific metadata. Coordinates and colors are stored as 32-bit floats, so a round trip through unpackPlaneQueryResults keeps only about 7 significant digits.
Parameters
- results
PlaneQueryResult[] - Query results, e.g. from
runPlaneQueries.
Returns
PackedPlaneQueryResultA packed payload with fresh, unshared buffers.
Throws
- When a result contains non-finite coordinates, lightness/chroma or color values, so malformed solver output fails where it is produced.
Example
import { parse } from '@pbroom/color-kit';
import { packPlaneQueryResults } from '@pbroom/color-kit/compute';
import { runPlaneQueries } from '@pbroom/color-kit/plane';
const results = runPlaneQueries({ model: 'oklch' }, [
{ kind: 'gradient', from: parse('#000'), to: parse('#fff'), steps: 3 },
]);
const packed = packPlaneQueryResults(results);
packed.pathRanges; // → Uint32Array [0, 3]
packed.pointXY; // → Float32Array [0, 1, 0.5, 1, 1, 1]