UNPKG

@blockv/threejs-to-v3d

Version:

Converts any format supported by ThreeJS to V3D.

89 lines (66 loc) 2.67 kB
/** Download an ArrayBuffer */ function getArrayBuffer(url) { return new Promise(function (onSuccess, onFail) { // Send XHR var xhr = new XMLHttpRequest(); xhr.responseType = 'arraybuffer'; xhr.open("GET", url); xhr.send(); // Add handlers xhr.onerror = onFail; xhr.onload = function() { onSuccess(xhr.response); } }); } QUnit.module("Main"); QUnit.test("Convert .fbx to .v3d", function(assert) { var done = assert.async(); // Make sure class exists assert.ok(typeof ThreeJSConverter != "undefined", "ThreeJSConverter class exists"); // Download files var files = []; var conv = null; getArrayBuffer("https://ydangleapps.s3.amazonaws.com/vatomic/fbx-converter-test/converse.fbx").then(function(bfr) { assert.ok(bfr instanceof ArrayBuffer, "Download converse.fbx"); files.push(new File([bfr], "converse.fbx")); }) .then(getArrayBuffer.bind(null, "https://ydangleapps.s3.amazonaws.com/vatomic/fbx-converter-test/converse.jpg")).then(function(bfr) { assert.ok(bfr instanceof ArrayBuffer, "Download converse.jpg"); files.push(new File([bfr], "converse.jpg")); }) .then(getArrayBuffer.bind(null, "https://ydangleapps.s3.amazonaws.com/vatomic/fbx-converter-test/converse_bump.jpg")).then(function(bfr) { assert.ok(bfr instanceof ArrayBuffer, "Download converse_bump.jpg"); files.push(new File([bfr], "converse_bump.jpg")); }) .then(getArrayBuffer.bind(null, "https://ydangleapps.s3.amazonaws.com/vatomic/fbx-converter-test/laces.jpg")).then(function(bfr) { assert.ok(bfr instanceof ArrayBuffer, "Download laces.jpg"); files.push(new File([bfr], "laces.jpg")); }) // Do conversion .then(function() { assert.ok(files.length == 4, "Loaded 4 files"); conv = new ThreeJSConverter(files); return conv.convert(); }) // Check output .then(function(v3dData) { // Check data assert.ok(v3dData instanceof ArrayBuffer, "V3D data generated"); assert.ok(v3dData.byteLength > 1024, "V3D data is bigger than 1KB, output is " + (v3dData.byteLength / 1024).toFixed(0) + "KB"); // Save it saveAs(new File([v3dData], "test.v3d")); }) // Catch errors .catch(function(err) { assert.ok(false, "Error: " + err.message) }) // Done! Output warnings .then(function() { // Output warnings for (var i = 0 ; i < conv.issues.length ; i++) assert.ok(false, conv.issues[i].description); // Done done(); }) });