MCP 3D Printer Server

by DMontgomery40
Verified
var assert = require('assert').strict; var simplifier = require('./meshopt_simplifier.js'); process.on('unhandledRejection', error => { console.log('unhandledRejection', error); process.exit(1); }); var tests = { compactMesh: function() { var indices = new Uint32Array([ 0, 1, 3, 3, 1, 5, ]); var expected = new Uint32Array([ 0, 1, 2, 2, 1, 3, ]); var missing = 2**32-1; var remap = new Uint32Array([ 0, 1, missing, 2, missing, 3 ]); var res = simplifier.compactMesh(indices); assert.deepEqual(indices, expected); assert.deepEqual(res[0], remap); assert.equal(res[1], 4); // unique }, simplify: function() { // 0 // 1 2 // 3 4 5 var indices = new Uint32Array([ 0, 2, 1, 1, 2, 3, 3, 2, 4, 2, 5, 4, ]); var positions = new Float32Array([ 0, 2, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, ]); var res = simplifier.simplify(indices, positions, 3, /* target indices */ 3, /* target error */ 0.01); var expected = new Uint32Array([ 3, 0, 5, ]); assert.deepEqual(res[0], expected); assert.equal(res[1], 0); // error }, simplify16: function() { // 0 // 1 2 // 3 4 5 var indices = new Uint16Array([ 0, 2, 1, 1, 2, 3, 3, 2, 4, 2, 5, 4, ]); var positions = new Float32Array([ 0, 2, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, ]); var res = simplifier.simplify(indices, positions, 3, /* target indices */ 3, /* target error */ 0.01); var expected = new Uint16Array([ 3, 0, 5, ]); assert.deepEqual(res[0], expected); assert.equal(res[1], 0); // error }, simplifyLockBorder: function() { // 0 // 1 2 // 3 4 5 var indices = new Uint32Array([ 0, 2, 1, 1, 2, 3, 3, 2, 4, 2, 5, 4, ]); var positions = new Float32Array([ 0, 2, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, ]); var res = simplifier.simplify(indices, positions, 3, /* target indices */ 3, /* target error */ 0.01, ["LockBorder"]); var expected = new Uint32Array([ 0, 2, 1, 1, 2, 3, 3, 2, 4, 2, 5, 4, ]); assert.deepEqual(res[0], expected); assert.equal(res[1], 0); // error }, getScale: function() { var positions = new Float32Array([ 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3 ]); assert(simplifier.getScale(positions, 3) == 3.0); }, }; Promise.all([simplifier.ready]).then(() => { var count = 0; for (var key in tests) { tests[key](); count++; } console.log(count, 'tests passed'); });