@pbroom/color-kit/computePacking

packPlaneQueryResults

Packs plane query results into transfer-friendly typed arrays.

functionimport { packPlaneQueryResults } from '@pbroom/color-kit/compute';pack.ts:39
function 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

resultsPlaneQueryResult[]
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

TypeScript
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]

See also