first commit
This commit is contained in:
144
web-app/node_modules/meshoptimizer/meshopt_simplifier.test.js
generated
vendored
Normal file
144
web-app/node_modules/meshoptimizer/meshopt_simplifier.test.js
generated
vendored
Normal file
@@ -0,0 +1,144 @@
|
||||
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');
|
||||
});
|
||||
Reference in New Issue
Block a user