forked from google/draco
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdraco_minimal_encoder_decoder_example.js
49 lines (42 loc) · 1.61 KB
/
draco_minimal_encoder_decoder_example.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// 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);
}