Advance WebGPU volume and bounded workflows
This commit is contained in:
@@ -84,6 +84,11 @@ function vertexWeight(mesh, vertex, groupName) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
function assertVertexGroup(mesh, groupName) {
|
||||
assert.ok(mesh.vertexGroups?.some((group) => group.name === groupName), `${groupName} missing from vertexGroups`);
|
||||
assert.ok(mesh.skinWeights?.boneNames.includes(groupName), `${groupName} missing from skinWeights.boneNames`);
|
||||
}
|
||||
|
||||
const engine = await factory({ wasmBinary: wasmBinary.slice() });
|
||||
|
||||
const colorHandle = engine._web_engine_create();
|
||||
@@ -126,6 +131,7 @@ apply(engine, weightHandle, {
|
||||
normalize: false,
|
||||
});
|
||||
let weightedMesh = snapshot(engine, weightHandle).meshes.find((mesh) => mesh.id === meshId);
|
||||
assertVertexGroup(weightedMesh, "WebPaintGroup");
|
||||
close(vertexWeight(weightedMesh, 0, "WebPaintGroup"), 0.75, "vertex 0 paint weight");
|
||||
close(vertexWeight(weightedMesh, 1, "WebPaintGroup"), 0.25, "vertex 1 paint weight");
|
||||
apply(engine, weightHandle, {
|
||||
@@ -159,6 +165,7 @@ engine._web_engine_destroy(weightHandle);
|
||||
const reopenedWeights = engine._web_engine_create();
|
||||
open(engine, reopenedWeights, savedWeights);
|
||||
weightedMesh = snapshot(engine, reopenedWeights).meshes.find((mesh) => mesh.id === meshId);
|
||||
assertVertexGroup(weightedMesh, "WebPaintGroup");
|
||||
close(vertexWeight(weightedMesh, 0, "WebPaintGroup"), 0.75, "reopened vertex 0 paint weight");
|
||||
close(vertexWeight(weightedMesh, 2, "WebPaintGroup"), 0.5 / 1.75, "reopened normalized vertex 2 paint weight");
|
||||
engine._web_engine_destroy(reopenedWeights);
|
||||
|
||||
Reference in New Issue
Block a user