@loaders.gl/draco 4.3.1 → 4.4.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +12966 -1012
- package/dist/dist.min.js +12 -3
- package/dist/draco-arrow-loader.d.ts +30 -0
- package/dist/draco-arrow-loader.d.ts.map +1 -0
- package/dist/draco-arrow-loader.js +19 -0
- package/dist/draco-format.d.ts +13 -0
- package/dist/draco-format.d.ts.map +1 -0
- package/dist/draco-format.js +15 -0
- package/dist/draco-loader.d.ts +28 -1
- package/dist/draco-loader.d.ts.map +1 -1
- package/dist/draco-loader.js +20 -1
- package/dist/draco-worker-node.js +253 -115
- package/dist/draco-worker-node.js.map +4 -4
- package/dist/draco-worker.js +111 -111
- package/dist/draco-worker.js.map +4 -4
- package/dist/draco-writer-worker-node.js +145 -6
- package/dist/draco-writer-worker-node.js.map +4 -4
- package/dist/draco-writer-worker.js +3 -2
- package/dist/draco-writer-worker.js.map +2 -2
- package/dist/draco-writer.d.ts +16 -0
- package/dist/draco-writer.d.ts.map +1 -1
- package/dist/draco-writer.js +19 -0
- package/dist/index.cjs +818 -802
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +5 -48
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -38
- package/dist/lib/draco-builder.d.ts.map +1 -1
- package/dist/lib/draco-parser.d.ts.map +1 -1
- package/dist/lib/draco-parser.js +3 -1
- package/dist/lib/utils/get-draco-schema.d.ts.map +1 -1
- package/dist/lib/utils/get-draco-schema.js +1 -1
- package/dist/lib/utils/version.js +1 -1
- package/package.json +7 -6
- package/src/draco-arrow-loader.ts +25 -0
- package/src/draco-format.ts +18 -0
- package/src/draco-loader.ts +22 -2
- package/src/draco-writer.ts +21 -0
- package/src/index.ts +5 -45
- package/src/lib/draco-parser.ts +3 -1
- package/src/lib/utils/get-draco-schema.ts +2 -1
package/dist/draco-worker.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
);
|
|
11
11
|
globalThis._loadersgl_.version = NPM_TAG;
|
|
12
12
|
} else {
|
|
13
|
-
globalThis._loadersgl_.version = "4.
|
|
13
|
+
globalThis._loadersgl_.version = "4.4.0-alpha.0";
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
return globalThis._loadersgl_.version;
|
|
@@ -329,35 +329,88 @@
|
|
|
329
329
|
return await parser(data, { ...options }, context, loader);
|
|
330
330
|
}
|
|
331
331
|
|
|
332
|
-
// src/lib/
|
|
333
|
-
var
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
var
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
extensions: ["drc"],
|
|
346
|
-
mimeTypes: ["application/octet-stream"],
|
|
347
|
-
binary: true,
|
|
348
|
-
tests: ["DRACO"],
|
|
349
|
-
options: {
|
|
350
|
-
draco: {
|
|
351
|
-
decoderType: typeof WebAssembly === "object" ? "wasm" : "js",
|
|
352
|
-
// 'js' for IE11
|
|
353
|
-
libraryPath: "libs/",
|
|
354
|
-
extraAttributes: {},
|
|
355
|
-
attributeNameEntry: void 0
|
|
356
|
-
}
|
|
357
|
-
}
|
|
332
|
+
// src/lib/draco-module-loader.ts
|
|
333
|
+
var DRACO_DECODER_VERSION = "1.5.6";
|
|
334
|
+
var DRACO_ENCODER_VERSION = "1.4.1";
|
|
335
|
+
var STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
|
|
336
|
+
var DRACO_EXTERNAL_LIBRARIES = {
|
|
337
|
+
/** The primary Draco3D encoder, javascript wrapper part */
|
|
338
|
+
DECODER: "draco_wasm_wrapper.js",
|
|
339
|
+
/** The primary draco decoder, compiled web assembly part */
|
|
340
|
+
DECODER_WASM: "draco_decoder.wasm",
|
|
341
|
+
/** Fallback decoder for non-webassebly environments. Very big bundle, lower performance */
|
|
342
|
+
FALLBACK_DECODER: "draco_decoder.js",
|
|
343
|
+
/** Draco encoder */
|
|
344
|
+
ENCODER: "draco_encoder.js"
|
|
358
345
|
};
|
|
346
|
+
var DRACO_EXTERNAL_LIBRARY_URLS = {
|
|
347
|
+
[DRACO_EXTERNAL_LIBRARIES.DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER}`,
|
|
348
|
+
[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER_WASM}`,
|
|
349
|
+
[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER}`,
|
|
350
|
+
[DRACO_EXTERNAL_LIBRARIES.ENCODER]: `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/${DRACO_EXTERNAL_LIBRARIES.ENCODER}`
|
|
351
|
+
};
|
|
352
|
+
var loadDecoderPromise;
|
|
353
|
+
async function loadDracoDecoderModule(options) {
|
|
354
|
+
const modules = options.modules || {};
|
|
355
|
+
if (modules.draco3d) {
|
|
356
|
+
loadDecoderPromise ||= modules.draco3d.createDecoderModule({}).then((draco) => {
|
|
357
|
+
return { draco };
|
|
358
|
+
});
|
|
359
|
+
} else {
|
|
360
|
+
loadDecoderPromise ||= loadDracoDecoder(options);
|
|
361
|
+
}
|
|
362
|
+
return await loadDecoderPromise;
|
|
363
|
+
}
|
|
364
|
+
async function loadDracoDecoder(options) {
|
|
365
|
+
let DracoDecoderModule;
|
|
366
|
+
let wasmBinary;
|
|
367
|
+
switch (options.draco && options.draco.decoderType) {
|
|
368
|
+
case "js":
|
|
369
|
+
DracoDecoderModule = await loadLibrary(
|
|
370
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],
|
|
371
|
+
"draco",
|
|
372
|
+
options,
|
|
373
|
+
DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER
|
|
374
|
+
);
|
|
375
|
+
break;
|
|
376
|
+
case "wasm":
|
|
377
|
+
default:
|
|
378
|
+
[DracoDecoderModule, wasmBinary] = await Promise.all([
|
|
379
|
+
await loadLibrary(
|
|
380
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
|
|
381
|
+
"draco",
|
|
382
|
+
options,
|
|
383
|
+
DRACO_EXTERNAL_LIBRARIES.DECODER
|
|
384
|
+
),
|
|
385
|
+
await loadLibrary(
|
|
386
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
|
|
387
|
+
"draco",
|
|
388
|
+
options,
|
|
389
|
+
DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
|
|
390
|
+
)
|
|
391
|
+
]);
|
|
392
|
+
}
|
|
393
|
+
DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
|
|
394
|
+
return await initializeDracoDecoder(DracoDecoderModule, wasmBinary);
|
|
395
|
+
}
|
|
396
|
+
function initializeDracoDecoder(DracoDecoderModule, wasmBinary) {
|
|
397
|
+
const options = {};
|
|
398
|
+
if (wasmBinary) {
|
|
399
|
+
options.wasmBinary = wasmBinary;
|
|
400
|
+
}
|
|
401
|
+
return new Promise((resolve) => {
|
|
402
|
+
DracoDecoderModule({
|
|
403
|
+
...options,
|
|
404
|
+
onModuleLoaded: (draco) => resolve({ draco })
|
|
405
|
+
// Module is Promise-like. Wrap in object to avoid loop.
|
|
406
|
+
});
|
|
407
|
+
});
|
|
408
|
+
}
|
|
359
409
|
|
|
360
|
-
//
|
|
410
|
+
// src/lib/utils/version.ts
|
|
411
|
+
var VERSION2 = true ? "4.4.0-alpha.0" : "latest";
|
|
412
|
+
|
|
413
|
+
// ../schema-utils/src/lib/schema/data-type.ts
|
|
361
414
|
function getDataTypeFromTypedArray(array) {
|
|
362
415
|
switch (array.constructor) {
|
|
363
416
|
case Int8Array:
|
|
@@ -382,7 +435,7 @@
|
|
|
382
435
|
}
|
|
383
436
|
}
|
|
384
437
|
|
|
385
|
-
// ../schema/src/lib/mesh/mesh-utils.ts
|
|
438
|
+
// ../schema-utils/src/lib/mesh/mesh-utils.ts
|
|
386
439
|
function getMeshBoundingBox(attributes) {
|
|
387
440
|
let minX = Infinity;
|
|
388
441
|
let minY = Infinity;
|
|
@@ -409,7 +462,7 @@
|
|
|
409
462
|
];
|
|
410
463
|
}
|
|
411
464
|
|
|
412
|
-
// ../schema/src/lib/mesh/deduce-mesh-schema.ts
|
|
465
|
+
// ../schema-utils/src/lib/mesh/deduce-mesh-schema.ts
|
|
413
466
|
function deduceMeshField(name, attribute, optionalMetadata) {
|
|
414
467
|
const type = getDataTypeFromTypedArray(attribute.value);
|
|
415
468
|
const metadata = optionalMetadata ? optionalMetadata : makeMeshAttributeMetadata(attribute);
|
|
@@ -633,6 +686,7 @@
|
|
|
633
686
|
case "triangle-strip":
|
|
634
687
|
return {
|
|
635
688
|
topology: "triangle-strip",
|
|
689
|
+
// TODO - mode is wrong?
|
|
636
690
|
mode: 4,
|
|
637
691
|
// GL.TRIANGLES
|
|
638
692
|
attributes,
|
|
@@ -645,6 +699,7 @@
|
|
|
645
699
|
default:
|
|
646
700
|
return {
|
|
647
701
|
topology: "triangle-list",
|
|
702
|
+
// TODO - mode is wrong?
|
|
648
703
|
mode: 5,
|
|
649
704
|
// GL.TRIANGLE_STRIP
|
|
650
705
|
attributes,
|
|
@@ -929,87 +984,32 @@
|
|
|
929
984
|
return intArray;
|
|
930
985
|
}
|
|
931
986
|
|
|
932
|
-
// src/
|
|
933
|
-
var
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
const modules = options.modules || {};
|
|
955
|
-
if (modules.draco3d) {
|
|
956
|
-
loadDecoderPromise ||= modules.draco3d.createDecoderModule({}).then((draco) => {
|
|
957
|
-
return { draco };
|
|
958
|
-
});
|
|
959
|
-
} else {
|
|
960
|
-
loadDecoderPromise ||= loadDracoDecoder(options);
|
|
961
|
-
}
|
|
962
|
-
return await loadDecoderPromise;
|
|
963
|
-
}
|
|
964
|
-
async function loadDracoDecoder(options) {
|
|
965
|
-
let DracoDecoderModule;
|
|
966
|
-
let wasmBinary;
|
|
967
|
-
switch (options.draco && options.draco.decoderType) {
|
|
968
|
-
case "js":
|
|
969
|
-
DracoDecoderModule = await loadLibrary(
|
|
970
|
-
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],
|
|
971
|
-
"draco",
|
|
972
|
-
options,
|
|
973
|
-
DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER
|
|
974
|
-
);
|
|
975
|
-
break;
|
|
976
|
-
case "wasm":
|
|
977
|
-
default:
|
|
978
|
-
[DracoDecoderModule, wasmBinary] = await Promise.all([
|
|
979
|
-
await loadLibrary(
|
|
980
|
-
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
|
|
981
|
-
"draco",
|
|
982
|
-
options,
|
|
983
|
-
DRACO_EXTERNAL_LIBRARIES.DECODER
|
|
984
|
-
),
|
|
985
|
-
await loadLibrary(
|
|
986
|
-
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
|
|
987
|
-
"draco",
|
|
988
|
-
options,
|
|
989
|
-
DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
|
|
990
|
-
)
|
|
991
|
-
]);
|
|
992
|
-
}
|
|
993
|
-
DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
|
|
994
|
-
return await initializeDracoDecoder(DracoDecoderModule, wasmBinary);
|
|
995
|
-
}
|
|
996
|
-
function initializeDracoDecoder(DracoDecoderModule, wasmBinary) {
|
|
997
|
-
const options = {};
|
|
998
|
-
if (wasmBinary) {
|
|
999
|
-
options.wasmBinary = wasmBinary;
|
|
987
|
+
// src/draco-loader.ts
|
|
988
|
+
var DracoWorkerLoader = {
|
|
989
|
+
dataType: null,
|
|
990
|
+
batchType: null,
|
|
991
|
+
name: "Draco",
|
|
992
|
+
id: "draco",
|
|
993
|
+
module: "draco",
|
|
994
|
+
// shapes: ['mesh'],
|
|
995
|
+
version: VERSION2,
|
|
996
|
+
worker: true,
|
|
997
|
+
extensions: ["drc"],
|
|
998
|
+
mimeTypes: ["application/octet-stream"],
|
|
999
|
+
binary: true,
|
|
1000
|
+
tests: ["DRACO"],
|
|
1001
|
+
options: {
|
|
1002
|
+
draco: {
|
|
1003
|
+
decoderType: typeof WebAssembly === "object" ? "wasm" : "js",
|
|
1004
|
+
// 'js' for IE11
|
|
1005
|
+
libraryPath: "libs/",
|
|
1006
|
+
extraAttributes: {},
|
|
1007
|
+
attributeNameEntry: void 0
|
|
1008
|
+
}
|
|
1000
1009
|
}
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
onModuleLoaded: (draco) => resolve({ draco })
|
|
1005
|
-
// Module is Promise-like. Wrap in object to avoid loop.
|
|
1006
|
-
});
|
|
1007
|
-
});
|
|
1008
|
-
}
|
|
1009
|
-
|
|
1010
|
-
// src/index.ts
|
|
1011
|
-
var DracoLoader2 = {
|
|
1012
|
-
...DracoLoader,
|
|
1010
|
+
};
|
|
1011
|
+
var DracoLoader = {
|
|
1012
|
+
...DracoWorkerLoader,
|
|
1013
1013
|
parse
|
|
1014
1014
|
};
|
|
1015
1015
|
async function parse(arrayBuffer, options) {
|
|
@@ -1023,6 +1023,6 @@
|
|
|
1023
1023
|
}
|
|
1024
1024
|
|
|
1025
1025
|
// src/workers/draco-worker.ts
|
|
1026
|
-
createLoaderWorker(
|
|
1026
|
+
createLoaderWorker(DracoLoader);
|
|
1027
1027
|
})();
|
|
1028
1028
|
//# sourceMappingURL=draco-worker.js.map
|