@loaders.gl/draco 4.3.2 → 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
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ArrowTable } from '@loaders.gl/schema';
|
|
2
|
+
import type { DracoLoaderOptions } from "./draco-loader.js";
|
|
3
|
+
/**
|
|
4
|
+
* Loader for Draco3D compressed geometries
|
|
5
|
+
*/
|
|
6
|
+
export declare const DracoArrowLoader: {
|
|
7
|
+
readonly dataType: ArrowTable;
|
|
8
|
+
readonly worker: false;
|
|
9
|
+
readonly parse: typeof parse;
|
|
10
|
+
readonly batchType: never;
|
|
11
|
+
readonly name: "Draco";
|
|
12
|
+
readonly id: "draco";
|
|
13
|
+
readonly module: "draco";
|
|
14
|
+
readonly version: any;
|
|
15
|
+
readonly extensions: ["drc"];
|
|
16
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
17
|
+
readonly binary: true;
|
|
18
|
+
readonly tests: ["DRACO"];
|
|
19
|
+
readonly options: {
|
|
20
|
+
readonly draco: {
|
|
21
|
+
readonly decoderType: "js" | "wasm";
|
|
22
|
+
readonly libraryPath: "libs/";
|
|
23
|
+
readonly extraAttributes: {};
|
|
24
|
+
readonly attributeNameEntry: undefined;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
declare function parse(arrayBuffer: ArrayBuffer, options?: DracoLoaderOptions): Promise<ArrowTable>;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=draco-arrow-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draco-arrow-loader.d.ts","sourceRoot":"","sources":["../src/draco-arrow-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAC,kBAAkB,EAAC,0BAAuB;AAIvD;;GAEG;AACH,eAAO,MAAM,gBAAgB;uBAEE,UAAU;;;;;;;;;;;;;;;;;;;;CAGmC,CAAC;AAE7E,iBAAe,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAIhG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { DracoLoader } from "./draco-loader.js";
|
|
5
|
+
import { convertMeshToTable } from '@loaders.gl/schema-utils';
|
|
6
|
+
/**
|
|
7
|
+
* Loader for Draco3D compressed geometries
|
|
8
|
+
*/
|
|
9
|
+
export const DracoArrowLoader = {
|
|
10
|
+
...DracoLoader,
|
|
11
|
+
dataType: null,
|
|
12
|
+
worker: false,
|
|
13
|
+
parse
|
|
14
|
+
};
|
|
15
|
+
async function parse(arrayBuffer, options) {
|
|
16
|
+
const mesh = await DracoLoader.parse(arrayBuffer, options);
|
|
17
|
+
const arrowTable = convertMeshToTable(mesh, 'arrow-table');
|
|
18
|
+
return arrowTable;
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Draco3D compressed geometries
|
|
3
|
+
*/
|
|
4
|
+
export declare const DracoFormat: {
|
|
5
|
+
readonly name: "Draco";
|
|
6
|
+
readonly id: "draco";
|
|
7
|
+
readonly module: "draco";
|
|
8
|
+
readonly extensions: ["drc"];
|
|
9
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
10
|
+
readonly binary: true;
|
|
11
|
+
readonly tests: ["DRACO"];
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=draco-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draco-format.d.ts","sourceRoot":"","sources":["../src/draco-format.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;CAQG,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
/**
|
|
5
|
+
* Draco3D compressed geometries
|
|
6
|
+
*/
|
|
7
|
+
export const DracoFormat = {
|
|
8
|
+
name: 'Draco',
|
|
9
|
+
id: 'draco',
|
|
10
|
+
module: 'draco',
|
|
11
|
+
extensions: ['drc'],
|
|
12
|
+
mimeTypes: ['application/octet-stream'],
|
|
13
|
+
binary: true,
|
|
14
|
+
tests: ['DRACO']
|
|
15
|
+
};
|
package/dist/draco-loader.d.ts
CHANGED
|
@@ -14,7 +14,32 @@ export type DracoLoaderOptions = LoaderOptions & {
|
|
|
14
14
|
/**
|
|
15
15
|
* Worker loader for Draco3D compressed geometries
|
|
16
16
|
*/
|
|
17
|
+
export declare const DracoWorkerLoader: {
|
|
18
|
+
readonly dataType: DracoMesh;
|
|
19
|
+
readonly batchType: never;
|
|
20
|
+
readonly name: "Draco";
|
|
21
|
+
readonly id: "draco";
|
|
22
|
+
readonly module: "draco";
|
|
23
|
+
readonly version: any;
|
|
24
|
+
readonly worker: true;
|
|
25
|
+
readonly extensions: ["drc"];
|
|
26
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
27
|
+
readonly binary: true;
|
|
28
|
+
readonly tests: ["DRACO"];
|
|
29
|
+
readonly options: {
|
|
30
|
+
readonly draco: {
|
|
31
|
+
readonly decoderType: "js" | "wasm";
|
|
32
|
+
readonly libraryPath: "libs/";
|
|
33
|
+
readonly extraAttributes: {};
|
|
34
|
+
readonly attributeNameEntry: undefined;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Loader for Draco3D compressed geometries
|
|
40
|
+
*/
|
|
17
41
|
export declare const DracoLoader: {
|
|
42
|
+
readonly parse: typeof parse;
|
|
18
43
|
readonly dataType: DracoMesh;
|
|
19
44
|
readonly batchType: never;
|
|
20
45
|
readonly name: "Draco";
|
|
@@ -28,11 +53,13 @@ export declare const DracoLoader: {
|
|
|
28
53
|
readonly tests: ["DRACO"];
|
|
29
54
|
readonly options: {
|
|
30
55
|
readonly draco: {
|
|
31
|
-
readonly decoderType: "
|
|
56
|
+
readonly decoderType: "js" | "wasm";
|
|
32
57
|
readonly libraryPath: "libs/";
|
|
33
58
|
readonly extraAttributes: {};
|
|
34
59
|
readonly attributeNameEntry: undefined;
|
|
35
60
|
};
|
|
36
61
|
};
|
|
37
62
|
};
|
|
63
|
+
declare function parse(arrayBuffer: ArrayBuffer, options?: DracoLoaderOptions): Promise<DracoMesh>;
|
|
64
|
+
export {};
|
|
38
65
|
//# sourceMappingURL=draco-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draco-loader.d.ts","sourceRoot":"","sources":["../src/draco-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"draco-loader.d.ts","sourceRoot":"","sources":["../src/draco-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAC,SAAS,EAAC,6BAA0B;AACjD,OAAO,KAAK,EAAC,iBAAiB,EAAC,8BAA2B;AAK1D,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,KAAK,CAAC,EAAE,iBAAiB,GAAG;QAC1B,8EAA8E;QAC9E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,kEAAkE;QAClE,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;uBACC,SAAS;wBACnB,KAAK;;;;;;;;;;;;;;;;;;CAmBuC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,WAAW;;uBAzBO,SAAS;wBACnB,KAAK;;;;;;;;;;;;;;;;;;CA2BiD,CAAC;AAE5E,iBAAe,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAQ/F"}
|
package/dist/draco-loader.js
CHANGED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { VERSION } from "./lib/utils/version.js";
|
|
5
|
+
import DracoParser from "./lib/draco-parser.js";
|
|
6
|
+
import { loadDracoDecoderModule } from "./lib/draco-module-loader.js";
|
|
5
7
|
/**
|
|
6
8
|
* Worker loader for Draco3D compressed geometries
|
|
7
9
|
*/
|
|
8
|
-
export const
|
|
10
|
+
export const DracoWorkerLoader = {
|
|
9
11
|
dataType: null,
|
|
10
12
|
batchType: null,
|
|
11
13
|
name: 'Draco',
|
|
@@ -27,3 +29,20 @@ export const DracoLoader = {
|
|
|
27
29
|
}
|
|
28
30
|
}
|
|
29
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* Loader for Draco3D compressed geometries
|
|
34
|
+
*/
|
|
35
|
+
export const DracoLoader = {
|
|
36
|
+
...DracoWorkerLoader,
|
|
37
|
+
parse
|
|
38
|
+
};
|
|
39
|
+
async function parse(arrayBuffer, options) {
|
|
40
|
+
const { draco } = await loadDracoDecoderModule(options);
|
|
41
|
+
const dracoParser = new DracoParser(draco);
|
|
42
|
+
try {
|
|
43
|
+
return dracoParser.parseSync(arrayBuffer, options?.draco);
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
dracoParser.destroy();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -156,9 +156,9 @@ var require_inherits = __commonJS({
|
|
|
156
156
|
}
|
|
157
157
|
});
|
|
158
158
|
|
|
159
|
-
// ../../node_modules/string_decoder/index.js
|
|
159
|
+
// ../../node_modules/contentstream/node_modules/string_decoder/index.js
|
|
160
160
|
var require_string_decoder = __commonJS({
|
|
161
|
-
"../../node_modules/string_decoder/index.js"(exports) {
|
|
161
|
+
"../../node_modules/contentstream/node_modules/string_decoder/index.js"(exports) {
|
|
162
162
|
var Buffer2 = require("buffer").Buffer;
|
|
163
163
|
var isBufferEncoding = Buffer2.isEncoding || function(encoding) {
|
|
164
164
|
switch (encoding && encoding.toLowerCase()) {
|
|
@@ -1685,6 +1685,144 @@ var require_stream_duplex2 = __commonJS({
|
|
|
1685
1685
|
}
|
|
1686
1686
|
});
|
|
1687
1687
|
|
|
1688
|
+
// ../../node_modules/gif-encoder/node_modules/string_decoder/index.js
|
|
1689
|
+
var require_string_decoder2 = __commonJS({
|
|
1690
|
+
"../../node_modules/gif-encoder/node_modules/string_decoder/index.js"(exports) {
|
|
1691
|
+
var Buffer2 = require("buffer").Buffer;
|
|
1692
|
+
var isBufferEncoding = Buffer2.isEncoding || function(encoding) {
|
|
1693
|
+
switch (encoding && encoding.toLowerCase()) {
|
|
1694
|
+
case "hex":
|
|
1695
|
+
case "utf8":
|
|
1696
|
+
case "utf-8":
|
|
1697
|
+
case "ascii":
|
|
1698
|
+
case "binary":
|
|
1699
|
+
case "base64":
|
|
1700
|
+
case "ucs2":
|
|
1701
|
+
case "ucs-2":
|
|
1702
|
+
case "utf16le":
|
|
1703
|
+
case "utf-16le":
|
|
1704
|
+
case "raw":
|
|
1705
|
+
return true;
|
|
1706
|
+
default:
|
|
1707
|
+
return false;
|
|
1708
|
+
}
|
|
1709
|
+
};
|
|
1710
|
+
function assertEncoding(encoding) {
|
|
1711
|
+
if (encoding && !isBufferEncoding(encoding)) {
|
|
1712
|
+
throw new Error("Unknown encoding: " + encoding);
|
|
1713
|
+
}
|
|
1714
|
+
}
|
|
1715
|
+
var StringDecoder = exports.StringDecoder = function(encoding) {
|
|
1716
|
+
this.encoding = (encoding || "utf8").toLowerCase().replace(/[-_]/, "");
|
|
1717
|
+
assertEncoding(encoding);
|
|
1718
|
+
switch (this.encoding) {
|
|
1719
|
+
case "utf8":
|
|
1720
|
+
this.surrogateSize = 3;
|
|
1721
|
+
break;
|
|
1722
|
+
case "ucs2":
|
|
1723
|
+
case "utf16le":
|
|
1724
|
+
this.surrogateSize = 2;
|
|
1725
|
+
this.detectIncompleteChar = utf16DetectIncompleteChar;
|
|
1726
|
+
break;
|
|
1727
|
+
case "base64":
|
|
1728
|
+
this.surrogateSize = 3;
|
|
1729
|
+
this.detectIncompleteChar = base64DetectIncompleteChar;
|
|
1730
|
+
break;
|
|
1731
|
+
default:
|
|
1732
|
+
this.write = passThroughWrite;
|
|
1733
|
+
return;
|
|
1734
|
+
}
|
|
1735
|
+
this.charBuffer = new Buffer2(6);
|
|
1736
|
+
this.charReceived = 0;
|
|
1737
|
+
this.charLength = 0;
|
|
1738
|
+
};
|
|
1739
|
+
StringDecoder.prototype.write = function(buffer) {
|
|
1740
|
+
var charStr = "";
|
|
1741
|
+
while (this.charLength) {
|
|
1742
|
+
var available = buffer.length >= this.charLength - this.charReceived ? this.charLength - this.charReceived : buffer.length;
|
|
1743
|
+
buffer.copy(this.charBuffer, this.charReceived, 0, available);
|
|
1744
|
+
this.charReceived += available;
|
|
1745
|
+
if (this.charReceived < this.charLength) {
|
|
1746
|
+
return "";
|
|
1747
|
+
}
|
|
1748
|
+
buffer = buffer.slice(available, buffer.length);
|
|
1749
|
+
charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
|
|
1750
|
+
var charCode = charStr.charCodeAt(charStr.length - 1);
|
|
1751
|
+
if (charCode >= 55296 && charCode <= 56319) {
|
|
1752
|
+
this.charLength += this.surrogateSize;
|
|
1753
|
+
charStr = "";
|
|
1754
|
+
continue;
|
|
1755
|
+
}
|
|
1756
|
+
this.charReceived = this.charLength = 0;
|
|
1757
|
+
if (buffer.length === 0) {
|
|
1758
|
+
return charStr;
|
|
1759
|
+
}
|
|
1760
|
+
break;
|
|
1761
|
+
}
|
|
1762
|
+
this.detectIncompleteChar(buffer);
|
|
1763
|
+
var end = buffer.length;
|
|
1764
|
+
if (this.charLength) {
|
|
1765
|
+
buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);
|
|
1766
|
+
end -= this.charReceived;
|
|
1767
|
+
}
|
|
1768
|
+
charStr += buffer.toString(this.encoding, 0, end);
|
|
1769
|
+
var end = charStr.length - 1;
|
|
1770
|
+
var charCode = charStr.charCodeAt(end);
|
|
1771
|
+
if (charCode >= 55296 && charCode <= 56319) {
|
|
1772
|
+
var size = this.surrogateSize;
|
|
1773
|
+
this.charLength += size;
|
|
1774
|
+
this.charReceived += size;
|
|
1775
|
+
this.charBuffer.copy(this.charBuffer, size, 0, size);
|
|
1776
|
+
buffer.copy(this.charBuffer, 0, 0, size);
|
|
1777
|
+
return charStr.substring(0, end);
|
|
1778
|
+
}
|
|
1779
|
+
return charStr;
|
|
1780
|
+
};
|
|
1781
|
+
StringDecoder.prototype.detectIncompleteChar = function(buffer) {
|
|
1782
|
+
var i2 = buffer.length >= 3 ? 3 : buffer.length;
|
|
1783
|
+
for (; i2 > 0; i2--) {
|
|
1784
|
+
var c2 = buffer[buffer.length - i2];
|
|
1785
|
+
if (i2 == 1 && c2 >> 5 == 6) {
|
|
1786
|
+
this.charLength = 2;
|
|
1787
|
+
break;
|
|
1788
|
+
}
|
|
1789
|
+
if (i2 <= 2 && c2 >> 4 == 14) {
|
|
1790
|
+
this.charLength = 3;
|
|
1791
|
+
break;
|
|
1792
|
+
}
|
|
1793
|
+
if (i2 <= 3 && c2 >> 3 == 30) {
|
|
1794
|
+
this.charLength = 4;
|
|
1795
|
+
break;
|
|
1796
|
+
}
|
|
1797
|
+
}
|
|
1798
|
+
this.charReceived = i2;
|
|
1799
|
+
};
|
|
1800
|
+
StringDecoder.prototype.end = function(buffer) {
|
|
1801
|
+
var res = "";
|
|
1802
|
+
if (buffer && buffer.length)
|
|
1803
|
+
res = this.write(buffer);
|
|
1804
|
+
if (this.charReceived) {
|
|
1805
|
+
var cr2 = this.charReceived;
|
|
1806
|
+
var buf = this.charBuffer;
|
|
1807
|
+
var enc = this.encoding;
|
|
1808
|
+
res += buf.slice(0, cr2).toString(enc);
|
|
1809
|
+
}
|
|
1810
|
+
return res;
|
|
1811
|
+
};
|
|
1812
|
+
function passThroughWrite(buffer) {
|
|
1813
|
+
return buffer.toString(this.encoding);
|
|
1814
|
+
}
|
|
1815
|
+
function utf16DetectIncompleteChar(buffer) {
|
|
1816
|
+
this.charReceived = buffer.length % 2;
|
|
1817
|
+
this.charLength = this.charReceived ? 2 : 0;
|
|
1818
|
+
}
|
|
1819
|
+
function base64DetectIncompleteChar(buffer) {
|
|
1820
|
+
this.charReceived = buffer.length % 3;
|
|
1821
|
+
this.charLength = this.charReceived ? 3 : 0;
|
|
1822
|
+
}
|
|
1823
|
+
}
|
|
1824
|
+
});
|
|
1825
|
+
|
|
1688
1826
|
// ../../node_modules/gif-encoder/node_modules/readable-stream/lib/_stream_readable.js
|
|
1689
1827
|
var require_stream_readable2 = __commonJS({
|
|
1690
1828
|
"../../node_modules/gif-encoder/node_modules/readable-stream/lib/_stream_readable.js"(exports, module2) {
|
|
@@ -1739,7 +1877,7 @@ var require_stream_readable2 = __commonJS({
|
|
|
1739
1877
|
this.encoding = null;
|
|
1740
1878
|
if (options.encoding) {
|
|
1741
1879
|
if (!StringDecoder)
|
|
1742
|
-
StringDecoder =
|
|
1880
|
+
StringDecoder = require_string_decoder2().StringDecoder;
|
|
1743
1881
|
this.decoder = new StringDecoder(options.encoding);
|
|
1744
1882
|
this.encoding = options.encoding;
|
|
1745
1883
|
}
|
|
@@ -1811,7 +1949,7 @@ var require_stream_readable2 = __commonJS({
|
|
|
1811
1949
|
}
|
|
1812
1950
|
Readable5.prototype.setEncoding = function(enc) {
|
|
1813
1951
|
if (!StringDecoder)
|
|
1814
|
-
StringDecoder =
|
|
1952
|
+
StringDecoder = require_string_decoder2().StringDecoder;
|
|
1815
1953
|
this._readableState.decoder = new StringDecoder(enc);
|
|
1816
1954
|
this._readableState.encoding = enc;
|
|
1817
1955
|
return this;
|
|
@@ -59679,7 +59817,7 @@ function getVersion() {
|
|
|
59679
59817
|
);
|
|
59680
59818
|
globalThis._loadersgl_.version = NPM_TAG;
|
|
59681
59819
|
} else {
|
|
59682
|
-
globalThis._loadersgl_.version = "4.
|
|
59820
|
+
globalThis._loadersgl_.version = "4.4.0-alpha.0";
|
|
59683
59821
|
}
|
|
59684
59822
|
}
|
|
59685
59823
|
return globalThis._loadersgl_.version;
|
|
@@ -63343,35 +63481,88 @@ if (nodeVersion2 < 18) {
|
|
|
63343
63481
|
}
|
|
63344
63482
|
}
|
|
63345
63483
|
|
|
63346
|
-
// src/lib/
|
|
63347
|
-
var
|
|
63348
|
-
|
|
63349
|
-
|
|
63350
|
-
var
|
|
63351
|
-
|
|
63352
|
-
|
|
63353
|
-
|
|
63354
|
-
|
|
63355
|
-
|
|
63356
|
-
|
|
63357
|
-
|
|
63358
|
-
|
|
63359
|
-
|
|
63360
|
-
|
|
63361
|
-
|
|
63362
|
-
|
|
63363
|
-
|
|
63364
|
-
|
|
63365
|
-
decoderType: typeof WebAssembly === "object" ? "wasm" : "js",
|
|
63366
|
-
// 'js' for IE11
|
|
63367
|
-
libraryPath: "libs/",
|
|
63368
|
-
extraAttributes: {},
|
|
63369
|
-
attributeNameEntry: void 0
|
|
63370
|
-
}
|
|
63371
|
-
}
|
|
63484
|
+
// src/lib/draco-module-loader.ts
|
|
63485
|
+
var DRACO_DECODER_VERSION = "1.5.6";
|
|
63486
|
+
var DRACO_ENCODER_VERSION = "1.4.1";
|
|
63487
|
+
var STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
|
|
63488
|
+
var DRACO_EXTERNAL_LIBRARIES = {
|
|
63489
|
+
/** The primary Draco3D encoder, javascript wrapper part */
|
|
63490
|
+
DECODER: "draco_wasm_wrapper.js",
|
|
63491
|
+
/** The primary draco decoder, compiled web assembly part */
|
|
63492
|
+
DECODER_WASM: "draco_decoder.wasm",
|
|
63493
|
+
/** Fallback decoder for non-webassebly environments. Very big bundle, lower performance */
|
|
63494
|
+
FALLBACK_DECODER: "draco_decoder.js",
|
|
63495
|
+
/** Draco encoder */
|
|
63496
|
+
ENCODER: "draco_encoder.js"
|
|
63497
|
+
};
|
|
63498
|
+
var DRACO_EXTERNAL_LIBRARY_URLS = {
|
|
63499
|
+
[DRACO_EXTERNAL_LIBRARIES.DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER}`,
|
|
63500
|
+
[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER_WASM}`,
|
|
63501
|
+
[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER}`,
|
|
63502
|
+
[DRACO_EXTERNAL_LIBRARIES.ENCODER]: `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/${DRACO_EXTERNAL_LIBRARIES.ENCODER}`
|
|
63372
63503
|
};
|
|
63504
|
+
var loadDecoderPromise;
|
|
63505
|
+
async function loadDracoDecoderModule(options) {
|
|
63506
|
+
const modules = options.modules || {};
|
|
63507
|
+
if (modules.draco3d) {
|
|
63508
|
+
loadDecoderPromise ||= modules.draco3d.createDecoderModule({}).then((draco) => {
|
|
63509
|
+
return { draco };
|
|
63510
|
+
});
|
|
63511
|
+
} else {
|
|
63512
|
+
loadDecoderPromise ||= loadDracoDecoder(options);
|
|
63513
|
+
}
|
|
63514
|
+
return await loadDecoderPromise;
|
|
63515
|
+
}
|
|
63516
|
+
async function loadDracoDecoder(options) {
|
|
63517
|
+
let DracoDecoderModule;
|
|
63518
|
+
let wasmBinary;
|
|
63519
|
+
switch (options.draco && options.draco.decoderType) {
|
|
63520
|
+
case "js":
|
|
63521
|
+
DracoDecoderModule = await loadLibrary(
|
|
63522
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],
|
|
63523
|
+
"draco",
|
|
63524
|
+
options,
|
|
63525
|
+
DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER
|
|
63526
|
+
);
|
|
63527
|
+
break;
|
|
63528
|
+
case "wasm":
|
|
63529
|
+
default:
|
|
63530
|
+
[DracoDecoderModule, wasmBinary] = await Promise.all([
|
|
63531
|
+
await loadLibrary(
|
|
63532
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
|
|
63533
|
+
"draco",
|
|
63534
|
+
options,
|
|
63535
|
+
DRACO_EXTERNAL_LIBRARIES.DECODER
|
|
63536
|
+
),
|
|
63537
|
+
await loadLibrary(
|
|
63538
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
|
|
63539
|
+
"draco",
|
|
63540
|
+
options,
|
|
63541
|
+
DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
|
|
63542
|
+
)
|
|
63543
|
+
]);
|
|
63544
|
+
}
|
|
63545
|
+
DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
|
|
63546
|
+
return await initializeDracoDecoder(DracoDecoderModule, wasmBinary);
|
|
63547
|
+
}
|
|
63548
|
+
function initializeDracoDecoder(DracoDecoderModule, wasmBinary) {
|
|
63549
|
+
const options = {};
|
|
63550
|
+
if (wasmBinary) {
|
|
63551
|
+
options.wasmBinary = wasmBinary;
|
|
63552
|
+
}
|
|
63553
|
+
return new Promise((resolve) => {
|
|
63554
|
+
DracoDecoderModule({
|
|
63555
|
+
...options,
|
|
63556
|
+
onModuleLoaded: (draco) => resolve({ draco })
|
|
63557
|
+
// Module is Promise-like. Wrap in object to avoid loop.
|
|
63558
|
+
});
|
|
63559
|
+
});
|
|
63560
|
+
}
|
|
63561
|
+
|
|
63562
|
+
// src/lib/utils/version.ts
|
|
63563
|
+
var VERSION2 = true ? "4.4.0-alpha.0" : "latest";
|
|
63373
63564
|
|
|
63374
|
-
// ../schema/src/lib/
|
|
63565
|
+
// ../schema-utils/src/lib/schema/data-type.ts
|
|
63375
63566
|
function getDataTypeFromTypedArray(array) {
|
|
63376
63567
|
switch (array.constructor) {
|
|
63377
63568
|
case Int8Array:
|
|
@@ -63396,7 +63587,7 @@ function getDataTypeFromTypedArray(array) {
|
|
|
63396
63587
|
}
|
|
63397
63588
|
}
|
|
63398
63589
|
|
|
63399
|
-
// ../schema/src/lib/mesh/mesh-utils.ts
|
|
63590
|
+
// ../schema-utils/src/lib/mesh/mesh-utils.ts
|
|
63400
63591
|
function getMeshBoundingBox(attributes) {
|
|
63401
63592
|
let minX = Infinity;
|
|
63402
63593
|
let minY = Infinity;
|
|
@@ -63423,7 +63614,7 @@ function getMeshBoundingBox(attributes) {
|
|
|
63423
63614
|
];
|
|
63424
63615
|
}
|
|
63425
63616
|
|
|
63426
|
-
// ../schema/src/lib/mesh/deduce-mesh-schema.ts
|
|
63617
|
+
// ../schema-utils/src/lib/mesh/deduce-mesh-schema.ts
|
|
63427
63618
|
function deduceMeshField(name, attribute, optionalMetadata) {
|
|
63428
63619
|
const type = getDataTypeFromTypedArray(attribute.value);
|
|
63429
63620
|
const metadata = optionalMetadata ? optionalMetadata : makeMeshAttributeMetadata(attribute);
|
|
@@ -63647,6 +63838,7 @@ var DracoParser = class {
|
|
|
63647
63838
|
case "triangle-strip":
|
|
63648
63839
|
return {
|
|
63649
63840
|
topology: "triangle-strip",
|
|
63841
|
+
// TODO - mode is wrong?
|
|
63650
63842
|
mode: 4,
|
|
63651
63843
|
// GL.TRIANGLES
|
|
63652
63844
|
attributes,
|
|
@@ -63659,6 +63851,7 @@ var DracoParser = class {
|
|
|
63659
63851
|
default:
|
|
63660
63852
|
return {
|
|
63661
63853
|
topology: "triangle-list",
|
|
63854
|
+
// TODO - mode is wrong?
|
|
63662
63855
|
mode: 5,
|
|
63663
63856
|
// GL.TRIANGLE_STRIP
|
|
63664
63857
|
attributes,
|
|
@@ -63943,87 +64136,32 @@ function getUint32Array(dracoArray) {
|
|
|
63943
64136
|
return intArray;
|
|
63944
64137
|
}
|
|
63945
64138
|
|
|
63946
|
-
// src/
|
|
63947
|
-
var
|
|
63948
|
-
|
|
63949
|
-
|
|
63950
|
-
|
|
63951
|
-
|
|
63952
|
-
|
|
63953
|
-
|
|
63954
|
-
|
|
63955
|
-
|
|
63956
|
-
|
|
63957
|
-
|
|
63958
|
-
|
|
63959
|
-
|
|
63960
|
-
|
|
63961
|
-
|
|
63962
|
-
|
|
63963
|
-
|
|
63964
|
-
|
|
63965
|
-
}
|
|
63966
|
-
|
|
63967
|
-
|
|
63968
|
-
const modules = options.modules || {};
|
|
63969
|
-
if (modules.draco3d) {
|
|
63970
|
-
loadDecoderPromise ||= modules.draco3d.createDecoderModule({}).then((draco) => {
|
|
63971
|
-
return { draco };
|
|
63972
|
-
});
|
|
63973
|
-
} else {
|
|
63974
|
-
loadDecoderPromise ||= loadDracoDecoder(options);
|
|
63975
|
-
}
|
|
63976
|
-
return await loadDecoderPromise;
|
|
63977
|
-
}
|
|
63978
|
-
async function loadDracoDecoder(options) {
|
|
63979
|
-
let DracoDecoderModule;
|
|
63980
|
-
let wasmBinary;
|
|
63981
|
-
switch (options.draco && options.draco.decoderType) {
|
|
63982
|
-
case "js":
|
|
63983
|
-
DracoDecoderModule = await loadLibrary(
|
|
63984
|
-
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],
|
|
63985
|
-
"draco",
|
|
63986
|
-
options,
|
|
63987
|
-
DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER
|
|
63988
|
-
);
|
|
63989
|
-
break;
|
|
63990
|
-
case "wasm":
|
|
63991
|
-
default:
|
|
63992
|
-
[DracoDecoderModule, wasmBinary] = await Promise.all([
|
|
63993
|
-
await loadLibrary(
|
|
63994
|
-
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
|
|
63995
|
-
"draco",
|
|
63996
|
-
options,
|
|
63997
|
-
DRACO_EXTERNAL_LIBRARIES.DECODER
|
|
63998
|
-
),
|
|
63999
|
-
await loadLibrary(
|
|
64000
|
-
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
|
|
64001
|
-
"draco",
|
|
64002
|
-
options,
|
|
64003
|
-
DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
|
|
64004
|
-
)
|
|
64005
|
-
]);
|
|
64006
|
-
}
|
|
64007
|
-
DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
|
|
64008
|
-
return await initializeDracoDecoder(DracoDecoderModule, wasmBinary);
|
|
64009
|
-
}
|
|
64010
|
-
function initializeDracoDecoder(DracoDecoderModule, wasmBinary) {
|
|
64011
|
-
const options = {};
|
|
64012
|
-
if (wasmBinary) {
|
|
64013
|
-
options.wasmBinary = wasmBinary;
|
|
64139
|
+
// src/draco-loader.ts
|
|
64140
|
+
var DracoWorkerLoader = {
|
|
64141
|
+
dataType: null,
|
|
64142
|
+
batchType: null,
|
|
64143
|
+
name: "Draco",
|
|
64144
|
+
id: "draco",
|
|
64145
|
+
module: "draco",
|
|
64146
|
+
// shapes: ['mesh'],
|
|
64147
|
+
version: VERSION2,
|
|
64148
|
+
worker: true,
|
|
64149
|
+
extensions: ["drc"],
|
|
64150
|
+
mimeTypes: ["application/octet-stream"],
|
|
64151
|
+
binary: true,
|
|
64152
|
+
tests: ["DRACO"],
|
|
64153
|
+
options: {
|
|
64154
|
+
draco: {
|
|
64155
|
+
decoderType: typeof WebAssembly === "object" ? "wasm" : "js",
|
|
64156
|
+
// 'js' for IE11
|
|
64157
|
+
libraryPath: "libs/",
|
|
64158
|
+
extraAttributes: {},
|
|
64159
|
+
attributeNameEntry: void 0
|
|
64160
|
+
}
|
|
64014
64161
|
}
|
|
64015
|
-
|
|
64016
|
-
|
|
64017
|
-
|
|
64018
|
-
onModuleLoaded: (draco) => resolve({ draco })
|
|
64019
|
-
// Module is Promise-like. Wrap in object to avoid loop.
|
|
64020
|
-
});
|
|
64021
|
-
});
|
|
64022
|
-
}
|
|
64023
|
-
|
|
64024
|
-
// src/index.ts
|
|
64025
|
-
var DracoLoader2 = {
|
|
64026
|
-
...DracoLoader,
|
|
64162
|
+
};
|
|
64163
|
+
var DracoLoader = {
|
|
64164
|
+
...DracoWorkerLoader,
|
|
64027
64165
|
parse
|
|
64028
64166
|
};
|
|
64029
64167
|
async function parse(arrayBuffer, options) {
|
|
@@ -64037,7 +64175,7 @@ async function parse(arrayBuffer, options) {
|
|
|
64037
64175
|
}
|
|
64038
64176
|
|
|
64039
64177
|
// src/workers/draco-worker-node.ts
|
|
64040
|
-
createLoaderWorker(
|
|
64178
|
+
createLoaderWorker(DracoLoader);
|
|
64041
64179
|
/*! Bundled license information:
|
|
64042
64180
|
|
|
64043
64181
|
is-buffer/index.js:
|