// This is a minimal example showing how to create the Draco decoder and // encoder module. The modules are created asynchronously, so you need to set // callbacks to make sure they are initialized before you try and call the // modules. 'use_strict'; const draco3d = require('./draco3d'); // Global decoder and encoder module variables. let decoderModule = null; let encoderModule = null; // The code to create the encoder and decoder modules is asynchronous. // draco3d.createDecoderModule will return a promise to a funciton with a // module as a parameter when the module has been fully initialized. // Create and set the decoder module. draco3d.createDecoderModule({}).then(function(module) { // This is reached when everything is ready, and you can call methods on // Module. decoderModule = module; console.log('Decoder Module Initialized!'); moduleInitialized(); }); // Create and set the encoder module. draco3d.createEncoderModule({}).then(function(module) { // This is reached when everything is ready, and you can call methods on // Module. encoderModule = module; console.log('Encoder Module Initialized!'); moduleInitialized(); }); function moduleInitialized() { if (encoderModule && decoderModule) { console.log('Both Modules Initialized!'); let encoder = new encoderModule.Encoder(); let decoder = new decoderModule.Decoder(); // Do the actual encoding and decoding here. See 'draco_nodejs_example.js' // for a more comprehensive example. cleanup(encoder, decoder); } } function cleanup(encoder, decoder) { encoderModule.destroy(encoder); decoderModule.destroy(decoder); }