diff --git a/src/SplatAccumulator.ts b/src/SplatAccumulator.ts index 5ca9fc23..44388c0f 100644 --- a/src/SplatAccumulator.ts +++ b/src/SplatAccumulator.ts @@ -309,9 +309,6 @@ export class SplatAccumulator { ); roots.push(output); } - if (!generator) { - throw new Error("Generator must be provided"); - } } if (generator) { const outputDepth = outputSplatDepth( diff --git a/test/unit/SplatAccumulator.test.ts b/test/unit/SplatAccumulator.test.ts new file mode 100644 index 00000000..861cce2f --- /dev/null +++ b/test/unit/SplatAccumulator.test.ts @@ -0,0 +1,21 @@ +import { expect, test } from "vitest"; +import { SplatAccumulator } from "../../src/SplatAccumulator"; +import type { CovSplatGenerator } from "../../src/SplatGenerator"; +import { dynoBlock } from "../../src/dyno/base"; +import { CovSplat } from "../../src/dyno/splats"; + +function covGenerator(): CovSplatGenerator { + return dynoBlock({ index: "int" }, { covsplat: CovSplat }, () => ({})); +} + +test.each([false, true])( + "covSplats accumulator with extSplats %s builds a program for a covSplats mesh", + (extSplats) => { + const accumulator = new SplatAccumulator({ extSplats, covSplats: true }); + const { program } = accumulator.prepareProgramMaterial( + undefined, + covGenerator(), + ); + expect(program).toBeTruthy(); + }, +);