Complete Smooth modifier gap
This commit is contained in:
@@ -1121,6 +1121,7 @@ const genericModifierTasks = {
|
||||
"M16-GAP-00091": { type: "SHRINKWRAP", stem: "WebGapShrinkwrap", nextTask: "M16-GAP-00092" },
|
||||
"M16-GAP-00092": { type: "SIMPLE_DEFORM", stem: "WebGapSimpleDeform", nextTask: "M16-GAP-00093" },
|
||||
"M16-GAP-00093": { type: "SKIN", stem: "WebGapSkin", nextTask: "M16-GAP-00094" },
|
||||
"M16-GAP-00094": { type: "SMOOTH", stem: "WebGapSmooth", nextTask: "M16-GAP-00095" },
|
||||
};
|
||||
if (genericModifierTasks[task]) {
|
||||
const config = genericModifierTasks[task];
|
||||
@@ -1149,6 +1150,12 @@ if (genericModifierTasks[task]) {
|
||||
if (config.type === "EDGE_SPLIT") {
|
||||
assert.ok(Math.abs(modifier.parameters.splitAngle - desktop.modifier.modifier.splitAngle) < 1e-5);
|
||||
}
|
||||
if (config.type === "SMOOTH") {
|
||||
assert.ok(Math.abs(modifier.parameters.factor - desktop.modifier.modifier.factor) < 1e-5);
|
||||
assert.equal(modifier.parameters.repeat, desktop.modifier.modifier.iterations);
|
||||
assert.equal(modifier.parameters.vertexGroup, desktop.modifier.modifier.vertexGroup);
|
||||
assert.equal(modifier.parameters.smoothFlags, desktop.modifier.modifier.smoothFlags);
|
||||
}
|
||||
const saved = output(engine, handle, engine._web_engine_save_blend, true); const reopened = engine._web_engine_create(); open(engine, reopened, saved); const reopenedSnapshot = snapshot(engine, reopened); const reopenedHolder = mesh ? reopenedSnapshot.meshes?.find((value) => value.id === mesh.id) : reopenedSnapshot.nodes?.find((value) => value.id === node.id); assert.deepEqual(reopenedHolder?.modifierStack, holder.modifierStack);
|
||||
const malformed = new Uint8Array([0x42,0x4c,0x45,0x4e,0x44,0x45,0x52]); const pointer = engine._malloc(malformed.byteLength); let result; try { engine.HEAPU8.set(malformed, pointer); result = engine._web_engine_open_blend(handle, pointer, malformed.byteLength); } finally { engine._free(pointer); } assert.notEqual(result, 0); assert.deepEqual(snapshot(engine, handle), before); engine._web_engine_destroy(handle); engine._web_engine_destroy(reopened);
|
||||
const report = { schemaVersion: 1, task, operation: `${config.type}_MODIFIER_LOCAL_EXACT`, fixture: { path: path.relative(root, fixture).replaceAll(path.sep, "/"), sha256: desktop.fixtureSha256 }, desktop: { status: "EXACT", report: path.relative(root, desktopPath).replaceAll(path.sep, "/"), saveReopen: desktop.saveReopen }, wasm: { status: "EXACT", objectId: node?.id, meshId: mesh?.id, modifier }, saveReopen: "EXACT", negative: { malformedBlend: "REJECTED_WITHOUT_MAIN_MUTATION" }, nextTask: config.nextTask };
|
||||
|
||||
Reference in New Issue
Block a user