@loaders.gl/draco 4.0.0-alpha.4 → 4.0.0-alpha.6
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/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2 -2
- package/dist/dist.min.js +4 -0
- package/dist/dist.min.js.map +7 -0
- package/dist/draco-loader.d.ts +18 -0
- package/dist/draco-loader.d.ts.map +1 -0
- package/dist/draco-loader.js +28 -21
- package/dist/draco-nodejs-worker.js +191 -0
- package/dist/draco-nodejs-worker.js.map +7 -0
- package/dist/draco-worker.js +2 -1236
- package/dist/draco-worker.js.map +7 -0
- package/dist/draco-writer-nodejs-worker.js +193 -0
- package/dist/draco-writer-nodejs-worker.js.map +7 -0
- package/dist/draco-writer-nodejs.d.ts +3 -0
- package/dist/draco-writer-nodejs.d.ts.map +1 -0
- package/dist/draco-writer-nodejs.js +7 -0
- package/dist/draco-writer-worker.js +4 -0
- package/dist/draco-writer-worker.js.map +7 -0
- package/dist/draco-writer.d.ts +17 -0
- package/dist/draco-writer.d.ts.map +1 -0
- package/dist/draco-writer.js +40 -28
- package/dist/draco3d/draco3d-types.d.ts +295 -0
- package/dist/draco3d/draco3d-types.d.ts.map +1 -0
- package/dist/draco3d/draco3d-types.js +47 -44
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/draco-loader.js +34 -0
- package/dist/es5/draco-loader.js.map +1 -0
- package/dist/es5/draco-writer-nodejs.js +14 -0
- package/dist/es5/draco-writer-nodejs.js.map +1 -0
- package/dist/es5/draco-writer.js +63 -0
- package/dist/es5/draco-writer.js.map +1 -0
- package/dist/es5/draco3d/draco3d-types.js +51 -0
- package/dist/es5/draco3d/draco3d-types.js.map +1 -0
- package/dist/es5/index.js +79 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/draco-builder.js +324 -0
- package/dist/es5/lib/draco-builder.js.map +1 -0
- package/dist/es5/lib/draco-module-loader.js +183 -0
- package/dist/es5/lib/draco-module-loader.js.map +1 -0
- package/dist/es5/lib/draco-parser.js +435 -0
- package/dist/es5/lib/draco-parser.js.map +1 -0
- package/dist/es5/lib/draco-types.js +2 -0
- package/dist/es5/lib/draco-types.js.map +1 -0
- package/dist/es5/lib/utils/get-draco-schema.js +47 -0
- package/dist/es5/lib/utils/get-draco-schema.js.map +1 -0
- package/dist/es5/lib/utils/version.js +9 -0
- package/dist/es5/lib/utils/version.js.map +1 -0
- package/dist/es5/workers/draco-nodejs-worker.js +7 -0
- package/dist/es5/workers/draco-nodejs-worker.js.map +1 -0
- package/dist/es5/workers/draco-worker.js +6 -0
- package/dist/es5/workers/draco-worker.js.map +1 -0
- package/dist/es5/workers/draco-writer-nodejs-worker.js +53 -0
- package/dist/es5/workers/draco-writer-nodejs-worker.js.map +1 -0
- package/dist/es5/workers/draco-writer-worker.js +53 -0
- package/dist/es5/workers/draco-writer-worker.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/draco-loader.js +24 -0
- package/dist/esm/draco-loader.js.map +1 -0
- package/dist/esm/draco-writer-nodejs.js +3 -0
- package/dist/esm/draco-writer-nodejs.js.map +1 -0
- package/dist/esm/draco-writer.js +31 -0
- package/dist/esm/draco-writer.js.map +1 -0
- package/dist/esm/draco3d/draco3d-types.js +41 -0
- package/dist/esm/draco3d/draco3d-types.js.map +1 -0
- package/dist/esm/index.js +35 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/draco-builder.js +268 -0
- package/dist/esm/lib/draco-builder.js.map +1 -0
- package/dist/esm/lib/draco-module-loader.js +76 -0
- package/dist/esm/lib/draco-module-loader.js.map +1 -0
- package/dist/esm/lib/draco-parser.js +363 -0
- package/dist/esm/lib/draco-parser.js.map +1 -0
- package/dist/esm/lib/draco-types.js +2 -0
- package/dist/esm/lib/draco-types.js.map +1 -0
- package/dist/esm/lib/utils/get-draco-schema.js +41 -0
- package/dist/esm/lib/utils/get-draco-schema.js.map +1 -0
- package/dist/esm/lib/utils/version.js +2 -0
- package/dist/esm/lib/utils/version.js.map +1 -0
- package/dist/esm/workers/draco-nodejs-worker.js +5 -0
- package/dist/esm/workers/draco-nodejs-worker.js.map +1 -0
- package/dist/esm/workers/draco-worker.js +4 -0
- package/dist/esm/workers/draco-worker.js.map +1 -0
- package/dist/esm/workers/draco-writer-nodejs-worker.js +30 -0
- package/dist/esm/workers/draco-writer-nodejs-worker.js.map +1 -0
- package/dist/esm/workers/draco-writer-worker.js +30 -0
- package/dist/esm/workers/draco-writer-worker.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +46 -21
- package/dist/lib/draco-builder.d.ts +107 -0
- package/dist/lib/draco-builder.d.ts.map +1 -0
- package/dist/lib/draco-builder.js +313 -329
- package/dist/lib/draco-module-loader.d.ts +3 -0
- package/dist/lib/draco-module-loader.d.ts.map +1 -0
- package/dist/lib/draco-module-loader.js +81 -73
- package/dist/lib/draco-parser.d.ts +137 -0
- package/dist/lib/draco-parser.d.ts.map +1 -0
- package/dist/lib/draco-parser.js +440 -416
- package/dist/lib/draco-types.d.ts +59 -0
- package/dist/lib/draco-types.d.ts.map +1 -0
- package/dist/lib/draco-types.js +3 -2
- package/dist/lib/utils/get-draco-schema.d.ts +8 -0
- package/dist/lib/utils/get-draco-schema.d.ts.map +1 -0
- package/dist/lib/utils/get-draco-schema.js +35 -41
- package/dist/lib/utils/version.d.ts +2 -0
- package/dist/lib/utils/version.d.ts.map +1 -0
- package/dist/lib/utils/version.js +7 -2
- package/dist/workers/draco-nodejs-worker.d.ts +2 -0
- package/dist/workers/draco-nodejs-worker.d.ts.map +1 -0
- package/dist/workers/draco-nodejs-worker.js +6 -0
- package/dist/workers/draco-worker.d.ts +2 -0
- package/dist/workers/draco-worker.d.ts.map +1 -0
- package/dist/workers/draco-worker.js +5 -4
- package/dist/workers/draco-writer-nodejs-worker.d.ts +2 -0
- package/dist/workers/draco-writer-nodejs-worker.d.ts.map +1 -0
- package/dist/workers/draco-writer-nodejs-worker.js +26 -0
- package/dist/workers/draco-writer-worker.d.ts +2 -0
- package/dist/workers/draco-writer-worker.d.ts.map +1 -0
- package/dist/workers/draco-writer-worker.js +26 -0
- package/package.json +18 -11
- package/src/draco-loader.ts +8 -4
- package/src/draco-writer-nodejs.ts +4 -0
- package/src/draco-writer.ts +17 -12
- package/src/index.ts +21 -1
- package/src/lib/draco-module-loader.ts +9 -5
- package/src/lib/utils/get-draco-schema.ts +7 -6
- package/src/workers/draco-nodejs-worker.ts +5 -0
- package/src/workers/draco-writer-nodejs-worker.ts +25 -0
- package/src/workers/draco-writer-worker.ts +25 -0
- package/dist/bundle.js.map +0 -1
- package/dist/draco-loader.js.map +0 -1
- package/dist/draco-writer.js.map +0 -1
- package/dist/draco3d/draco3d-types.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/draco-builder.js.map +0 -1
- package/dist/lib/draco-module-loader.js.map +0 -1
- package/dist/lib/draco-parser.js.map +0 -1
- package/dist/lib/draco-types.js.map +0 -1
- package/dist/lib/utils/get-draco-schema.js.map +0 -1
- package/dist/lib/utils/version.js.map +0 -1
- package/dist/workers/draco-worker.js.map +0 -1
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Mesh } from '@loaders.gl/schema';
|
|
2
|
+
export type DracoMetadataEntry = {
|
|
3
|
+
int: number;
|
|
4
|
+
string: string;
|
|
5
|
+
double: number;
|
|
6
|
+
intArray: Int32Array;
|
|
7
|
+
};
|
|
8
|
+
/** For attributes that have not been fully decompressed */
|
|
9
|
+
export type DracoQuantizationTransform = {
|
|
10
|
+
quantization_bits?: number;
|
|
11
|
+
range?: number;
|
|
12
|
+
min_values?: Float32Array;
|
|
13
|
+
};
|
|
14
|
+
/** For attributes that have not been fully decompressed */
|
|
15
|
+
export type DracoOctahedronTransform = {
|
|
16
|
+
quantization_bits?: number;
|
|
17
|
+
};
|
|
18
|
+
/** Draco attribute fields */
|
|
19
|
+
export type DracoAttribute = {
|
|
20
|
+
unique_id: number;
|
|
21
|
+
num_components: number;
|
|
22
|
+
attribute_type: number;
|
|
23
|
+
data_type: number;
|
|
24
|
+
byte_offset: number;
|
|
25
|
+
byte_stride: number;
|
|
26
|
+
normalized: boolean;
|
|
27
|
+
name?: string;
|
|
28
|
+
quantization_transform?: DracoQuantizationTransform;
|
|
29
|
+
octahedron_transform?: DracoOctahedronTransform;
|
|
30
|
+
metadata: {
|
|
31
|
+
[key: string]: DracoMetadataEntry;
|
|
32
|
+
};
|
|
33
|
+
attribute_index: number;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Draco format specific data
|
|
37
|
+
* The `data.loaderData` field will have this layout when `data.loader === 'draco'`.
|
|
38
|
+
* @todo Metadata should also be available in normalized form in a standard `Schema`.
|
|
39
|
+
*/
|
|
40
|
+
export type DracoLoaderData = {
|
|
41
|
+
geometry_type: number;
|
|
42
|
+
num_attributes: number;
|
|
43
|
+
num_points: number;
|
|
44
|
+
num_faces: number;
|
|
45
|
+
metadata: {
|
|
46
|
+
[entry: string]: DracoMetadataEntry;
|
|
47
|
+
};
|
|
48
|
+
attributes: {
|
|
49
|
+
[unique_id: number]: DracoAttribute;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* loaders.gl Mesh with Draco specific data
|
|
54
|
+
*/
|
|
55
|
+
export type DracoMesh = Mesh & {
|
|
56
|
+
loader: 'draco';
|
|
57
|
+
loaderData: DracoLoaderData;
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=draco-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draco-types.d.ts","sourceRoot":"","sources":["../../src/lib/draco-types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AAIxC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,0BAA0B,GAAG;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAElB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sBAAsB,CAAC,EAAE,0BAA0B,CAAC;IACpD,oBAAoB,CAAC,EAAE,wBAAwB,CAAC;IAEhD,QAAQ,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAC,CAAC;IAC9C,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAC,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAC,CAAC;IAChD,UAAU,EAAE;QAAC,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAA;KAAC,CAAC;CAGnD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC"}
|
package/dist/lib/draco-types.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable camelcase */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MeshAttribute } from '@loaders.gl/schema';
|
|
2
|
+
import { Schema } from '@loaders.gl/schema';
|
|
3
|
+
import type { DracoLoaderData } from '../draco-types';
|
|
4
|
+
/** Extract an arrow-like schema from a Draco mesh */
|
|
5
|
+
export declare function getDracoSchema(attributes: {
|
|
6
|
+
[attributeName: string]: MeshAttribute;
|
|
7
|
+
}, loaderData: DracoLoaderData, indices?: MeshAttribute): Schema;
|
|
8
|
+
//# sourceMappingURL=get-draco-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-draco-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/get-draco-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAC,MAAM,EAAQ,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAiB,eAAe,EAAqB,MAAM,gBAAgB,CAAC;AAExF,qDAAqD;AACrD,wBAAgB,cAAc,CAC5B,UAAU,EAAE;IAAC,CAAC,aAAa,EAAE,MAAM,GAAG,aAAa,CAAA;CAAC,EACpD,UAAU,EAAE,eAAe,EAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAkBR"}
|
|
@@ -1,48 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDracoSchema = void 0;
|
|
4
|
+
const schema_1 = require("@loaders.gl/schema");
|
|
5
|
+
/** Extract an arrow-like schema from a Draco mesh */
|
|
6
|
+
function getDracoSchema(attributes, loaderData, indices) {
|
|
7
|
+
const metadata = makeMetadata(loaderData.metadata);
|
|
8
|
+
const fields = [];
|
|
9
|
+
const namedLoaderDataAttributes = transformAttributesLoaderData(loaderData.attributes);
|
|
10
|
+
for (const attributeName in attributes) {
|
|
11
|
+
const attribute = attributes[attributeName];
|
|
12
|
+
const field = getArrowFieldFromAttribute(attributeName, attribute, namedLoaderDataAttributes[attributeName]);
|
|
13
|
+
fields.push(field);
|
|
14
|
+
}
|
|
15
|
+
if (indices) {
|
|
16
|
+
const indicesField = getArrowFieldFromAttribute('indices', indices);
|
|
17
|
+
fields.push(indicesField);
|
|
18
|
+
}
|
|
19
|
+
return { fields, metadata };
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
exports.getDracoSchema = getDracoSchema;
|
|
22
22
|
function transformAttributesLoaderData(loaderData) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return result;
|
|
23
|
+
const result = {};
|
|
24
|
+
for (const key in loaderData) {
|
|
25
|
+
const dracoAttribute = loaderData[key];
|
|
26
|
+
result[dracoAttribute.name || 'undefined'] = dracoAttribute;
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
31
29
|
}
|
|
32
|
-
|
|
33
30
|
function getArrowFieldFromAttribute(attributeName, attribute, loaderData) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
const metadataMap = loaderData ? makeMetadata(loaderData.metadata) : undefined;
|
|
32
|
+
const field = (0, schema_1.deduceMeshField)(attributeName, attribute, metadataMap);
|
|
33
|
+
return field;
|
|
37
34
|
}
|
|
38
|
-
|
|
39
35
|
function makeMetadata(metadata) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return metadataMap;
|
|
36
|
+
Object.entries(metadata);
|
|
37
|
+
const serializedMetadata = {};
|
|
38
|
+
for (const key in metadata) {
|
|
39
|
+
serializedMetadata[`${key}.string`] = JSON.stringify(metadata[key]);
|
|
40
|
+
}
|
|
41
|
+
return serializedMetadata;
|
|
47
42
|
}
|
|
48
|
-
//# sourceMappingURL=get-draco-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/version.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,KAA8D,CAAC"}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VERSION = void 0;
|
|
4
|
+
// Version constant cannot be imported, it needs to correspond to the build version of **this** module.
|
|
5
|
+
// __VERSION__ is injected by babel-plugin-version-inline
|
|
6
|
+
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
7
|
+
exports.VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draco-nodejs-worker.d.ts","sourceRoot":"","sources":["../../src/workers/draco-nodejs-worker.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
4
|
+
require("@loaders.gl/polyfills");
|
|
5
|
+
const index_1 = require("../index");
|
|
6
|
+
(0, loader_utils_1.createLoaderWorker)(index_1.DracoLoader);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draco-worker.d.ts","sourceRoot":"","sources":["../../src/workers/draco-worker.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
4
|
+
const index_1 = require("../index");
|
|
5
|
+
(0, loader_utils_1.createLoaderWorker)(index_1.DracoLoader);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draco-writer-nodejs-worker.d.ts","sourceRoot":"","sources":["../../src/workers/draco-writer-nodejs-worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const worker_utils_1 = require("@loaders.gl/worker-utils");
|
|
4
|
+
const draco_writer_nodejs_1 = require("../draco-writer-nodejs");
|
|
5
|
+
(() => {
|
|
6
|
+
// Check that we are actually in a worker thread
|
|
7
|
+
if (!worker_utils_1.WorkerBody.inWorkerThread()) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
worker_utils_1.WorkerBody.onmessage = async (type, payload) => {
|
|
11
|
+
switch (type) {
|
|
12
|
+
case 'process':
|
|
13
|
+
try {
|
|
14
|
+
const { input, options } = payload;
|
|
15
|
+
const result = await draco_writer_nodejs_1.DracoWriterNodeJS.encode(input, options);
|
|
16
|
+
worker_utils_1.WorkerBody.postMessage('done', { result });
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
const message = error instanceof Error ? error.message : '';
|
|
20
|
+
worker_utils_1.WorkerBody.postMessage('error', { error: message });
|
|
21
|
+
}
|
|
22
|
+
break;
|
|
23
|
+
default:
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draco-writer-worker.d.ts","sourceRoot":"","sources":["../../src/workers/draco-writer-worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const worker_utils_1 = require("@loaders.gl/worker-utils");
|
|
4
|
+
const draco_writer_1 = require("../draco-writer");
|
|
5
|
+
(() => {
|
|
6
|
+
// Check that we are actually in a worker thread
|
|
7
|
+
if (!worker_utils_1.WorkerBody.inWorkerThread()) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
worker_utils_1.WorkerBody.onmessage = async (type, payload) => {
|
|
11
|
+
switch (type) {
|
|
12
|
+
case 'process':
|
|
13
|
+
try {
|
|
14
|
+
const { input, options } = payload;
|
|
15
|
+
const result = await draco_writer_1.DracoWriter.encode(input, options);
|
|
16
|
+
worker_utils_1.WorkerBody.postMessage('done', { result });
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
const message = error instanceof Error ? error.message : '';
|
|
20
|
+
worker_utils_1.WorkerBody.postMessage('error', { error: message });
|
|
21
|
+
}
|
|
22
|
+
break;
|
|
23
|
+
default:
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/draco",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.6",
|
|
4
4
|
"description": "Framework-independent loader and writer for Draco compressed meshes and point clouds",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"draco3d",
|
|
20
20
|
"draco"
|
|
21
21
|
],
|
|
22
|
-
"types": "
|
|
23
|
-
"main": "dist/index.js",
|
|
24
|
-
"module": "dist/index.js",
|
|
22
|
+
"types": "dist/index.d.ts",
|
|
23
|
+
"main": "dist/es5/index.js",
|
|
24
|
+
"module": "dist/esm/index.js",
|
|
25
25
|
"sideEffects": false,
|
|
26
26
|
"browser": {
|
|
27
27
|
"fs": false
|
|
@@ -33,15 +33,22 @@
|
|
|
33
33
|
],
|
|
34
34
|
"scripts": {
|
|
35
35
|
"pre-build": "npm run build-bundle && npm run build-worker",
|
|
36
|
-
"build-bundle": "esbuild src/bundle.ts --
|
|
37
|
-
"build-worker": "esbuild src/workers/draco-worker.ts --
|
|
36
|
+
"build-bundle": "esbuild src/bundle.ts --outfile=dist/dist.min.js --bundle --minify --sourcemap",
|
|
37
|
+
"build-loader-worker": "esbuild src/workers/draco-worker.ts --outfile=dist/draco-worker.js --bundle --minify --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\"",
|
|
38
|
+
"build-loader-worker-nodejs": "esbuild src/workers/draco-nodejs-worker.ts --outfile=dist/draco-nodejs-worker.js --platform=node --target=esnext,node12 --minify --bundle --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\"",
|
|
39
|
+
"build-writer-worker": "esbuild src/workers/draco-writer-worker.ts --outfile=dist/draco-writer-worker.js --minify --bundle --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\"",
|
|
40
|
+
"build-writer-worker-nodejs": "esbuild src/workers/draco-writer-nodejs-worker.ts --outfile=dist/draco-writer-nodejs-worker.js --platform=node --target=esnext,node12 --minify --bundle --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\"",
|
|
41
|
+
"build-worker": "yarn build-loader-worker && yarn build-loader-worker-nodejs && yarn build-writer-worker && yarn build-writer-worker-nodejs"
|
|
38
42
|
},
|
|
39
43
|
"dependencies": {
|
|
40
44
|
"@babel/runtime": "^7.3.1",
|
|
41
|
-
"@loaders.gl/loader-utils": "4.0.0-alpha.
|
|
42
|
-
"@loaders.gl/schema": "4.0.0-alpha.
|
|
43
|
-
"@loaders.gl/worker-utils": "4.0.0-alpha.
|
|
44
|
-
"draco3d": "1.
|
|
45
|
+
"@loaders.gl/loader-utils": "4.0.0-alpha.6",
|
|
46
|
+
"@loaders.gl/schema": "4.0.0-alpha.6",
|
|
47
|
+
"@loaders.gl/worker-utils": "4.0.0-alpha.6",
|
|
48
|
+
"draco3d": "1.5.5"
|
|
45
49
|
},
|
|
46
|
-
"
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@loaders.gl/polyfills": "4.0.0-alpha.6"
|
|
52
|
+
},
|
|
53
|
+
"gitHead": "acc1985050dfaa0f1f0c066f8da5bce7454a046c"
|
|
47
54
|
}
|
package/src/draco-loader.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
//
|
|
2
|
+
|
|
3
|
+
import {isBrowser} from '@loaders.gl/worker-utils';
|
|
1
4
|
import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
5
|
+
import type {DracoMesh} from './lib/draco-types';
|
|
2
6
|
import type {DracoParseOptions} from './lib/draco-parser';
|
|
3
|
-
// import type {DracoMeshData} from './types';
|
|
4
7
|
import {VERSION} from './lib/utils/version';
|
|
5
8
|
|
|
6
9
|
export type DracoLoaderOptions = LoaderOptions & {
|
|
@@ -9,6 +12,7 @@ export type DracoLoaderOptions = LoaderOptions & {
|
|
|
9
12
|
libraryPath?: string;
|
|
10
13
|
extraAttributes?;
|
|
11
14
|
attributeNameEntry?: string;
|
|
15
|
+
workerUrl?: string;
|
|
12
16
|
};
|
|
13
17
|
};
|
|
14
18
|
|
|
@@ -24,11 +28,11 @@ const DEFAULT_DRACO_OPTIONS: DracoLoaderOptions = {
|
|
|
24
28
|
/**
|
|
25
29
|
* Worker loader for Draco3D compressed geometries
|
|
26
30
|
*/
|
|
27
|
-
export const DracoLoader = {
|
|
31
|
+
export const DracoLoader: Loader<DracoMesh, never, DracoLoaderOptions> = {
|
|
28
32
|
name: 'Draco',
|
|
29
|
-
id: 'draco',
|
|
33
|
+
id: isBrowser ? 'draco' : 'draco-nodejs',
|
|
30
34
|
module: 'draco',
|
|
31
|
-
shapes: ['mesh'],
|
|
35
|
+
// shapes: ['mesh'],
|
|
32
36
|
version: VERSION,
|
|
33
37
|
worker: true,
|
|
34
38
|
extensions: ['drc'],
|
package/src/draco-writer.ts
CHANGED
|
@@ -1,19 +1,27 @@
|
|
|
1
|
-
import type {Writer} from '@loaders.gl/loader-utils';
|
|
1
|
+
import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';
|
|
2
2
|
import type {DracoMesh} from './lib/draco-types';
|
|
3
3
|
import type {DracoBuildOptions} from './lib/draco-builder';
|
|
4
4
|
import DRACOBuilder from './lib/draco-builder';
|
|
5
5
|
import {loadDracoEncoderModule} from './lib/draco-module-loader';
|
|
6
6
|
import {VERSION} from './lib/utils/version';
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
/** Writer Options for draco */
|
|
9
|
+
export type DracoWriterOptions = WriterOptions & {
|
|
10
|
+
draco?: DracoBuildOptions & {
|
|
11
|
+
method?: 'MESH_EDGEBREAKER_ENCODING' | 'MESH_SEQUENTIAL_ENCODING';
|
|
12
|
+
speed?: [number, number];
|
|
13
|
+
quantization?: Record<string, number>;
|
|
14
|
+
attributeNameEntry?: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
9
17
|
|
|
10
|
-
const
|
|
18
|
+
const DEFAULT_DRACO_WRITER_OPTIONS = {
|
|
11
19
|
pointcloud: false, // Set to true if pointcloud (mode: 0, no indices)
|
|
12
20
|
attributeNameEntry: 'name'
|
|
13
21
|
// Draco Compression Parameters
|
|
14
|
-
// method: 'MESH_EDGEBREAKER_ENCODING',
|
|
15
|
-
// speed: [5, 5],
|
|
16
|
-
// quantization: {
|
|
22
|
+
// method: 'MESH_EDGEBREAKER_ENCODING', // Use draco defaults
|
|
23
|
+
// speed: [5, 5], // Use draco defaults
|
|
24
|
+
// quantization: { // Use draco defaults
|
|
17
25
|
// POSITION: 10
|
|
18
26
|
// }
|
|
19
27
|
};
|
|
@@ -21,7 +29,7 @@ const DEFAULT_DRACO_OPTIONS = {
|
|
|
21
29
|
/**
|
|
22
30
|
* Exporter for Draco3D compressed geometries
|
|
23
31
|
*/
|
|
24
|
-
export const DracoWriter: Writer = {
|
|
32
|
+
export const DracoWriter: Writer<DracoMesh, unknown, DracoWriterOptions> = {
|
|
25
33
|
name: 'DRACO',
|
|
26
34
|
id: 'draco',
|
|
27
35
|
module: 'draco',
|
|
@@ -29,14 +37,11 @@ export const DracoWriter: Writer = {
|
|
|
29
37
|
extensions: ['drc'],
|
|
30
38
|
encode,
|
|
31
39
|
options: {
|
|
32
|
-
draco:
|
|
40
|
+
draco: DEFAULT_DRACO_WRITER_OPTIONS
|
|
33
41
|
}
|
|
34
42
|
};
|
|
35
43
|
|
|
36
|
-
async function encode(
|
|
37
|
-
data: DracoMesh,
|
|
38
|
-
options: {draco?: DracoWriterOptions} = {}
|
|
39
|
-
): Promise<ArrayBuffer> {
|
|
44
|
+
async function encode(data: DracoMesh, options: DracoWriterOptions = {}): Promise<ArrayBuffer> {
|
|
40
45
|
// Dynamically load draco
|
|
41
46
|
const {draco} = await loadDracoEncoderModule(options);
|
|
42
47
|
const dracoBuilder = new DRACOBuilder(draco);
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import {isBrowser} from '@loaders.gl/worker-utils';
|
|
1
4
|
import type {LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
2
5
|
import type {DracoMesh, DracoLoaderData} from './lib/draco-types';
|
|
3
6
|
import type {DracoLoaderOptions} from './draco-loader';
|
|
4
7
|
import {DracoLoader as DracoWorkerLoader} from './draco-loader';
|
|
5
8
|
import DracoParser from './lib/draco-parser';
|
|
6
9
|
import {loadDracoDecoderModule} from './lib/draco-module-loader';
|
|
10
|
+
import {VERSION} from './lib/utils/version';
|
|
7
11
|
|
|
8
12
|
// Draco data types
|
|
9
13
|
|
|
@@ -14,6 +18,22 @@ export type {DracoMesh, DracoLoaderData};
|
|
|
14
18
|
export type {DracoWriterOptions} from './draco-writer';
|
|
15
19
|
export {DracoWriter} from './draco-writer';
|
|
16
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Browser worker doesn't work because of issue during "draco_encoder.js" loading.
|
|
23
|
+
* Refused to execute script from 'https://raw.githubusercontent.com/google/draco/1.4.1/javascript/draco_encoder.js' because its MIME type ('') is not executable.
|
|
24
|
+
*/
|
|
25
|
+
export const DracoWriterWorker = {
|
|
26
|
+
id: isBrowser ? 'draco-writer' : 'draco-writer-nodejs',
|
|
27
|
+
name: 'Draco compressed geometry writer',
|
|
28
|
+
module: 'draco',
|
|
29
|
+
version: VERSION,
|
|
30
|
+
worker: true,
|
|
31
|
+
options: {
|
|
32
|
+
draco: {},
|
|
33
|
+
source: null
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
17
37
|
// Draco Loader
|
|
18
38
|
|
|
19
39
|
export type {DracoLoaderOptions};
|
|
@@ -22,7 +42,7 @@ export {DracoWorkerLoader};
|
|
|
22
42
|
/**
|
|
23
43
|
* Loader for Draco3D compressed geometries
|
|
24
44
|
*/
|
|
25
|
-
export const DracoLoader = {
|
|
45
|
+
export const DracoLoader: LoaderWithParser<DracoMesh, never, DracoLoaderOptions> = {
|
|
26
46
|
...DracoWorkerLoader,
|
|
27
47
|
parse
|
|
28
48
|
};
|
|
@@ -4,12 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
import {loadLibrary} from '@loaders.gl/worker-utils';
|
|
6
6
|
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const DRACO_WASM_WRAPPER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_VERSION}/draco_wasm_wrapper.js`;
|
|
10
|
-
const DRACO_WASM_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_VERSION}/draco_decoder.wasm`;
|
|
7
|
+
const DRACO_DECODER_VERSION = '1.5.5';
|
|
8
|
+
const DRACO_ENCODER_VERSION = '1.4.1';
|
|
11
9
|
|
|
12
|
-
const
|
|
10
|
+
const STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
|
|
11
|
+
|
|
12
|
+
const DRACO_JS_DECODER_URL = `${STATIC_DECODER_URL}/draco_decoder.js`;
|
|
13
|
+
const DRACO_WASM_WRAPPER_URL = `${STATIC_DECODER_URL}/draco_wasm_wrapper.js`;
|
|
14
|
+
const DRACO_WASM_DECODER_URL = `${STATIC_DECODER_URL}/draco_decoder.wasm`;
|
|
15
|
+
|
|
16
|
+
const DRACO_ENCODER_URL = `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/draco_encoder.js`;
|
|
13
17
|
|
|
14
18
|
let loadDecoderPromise;
|
|
15
19
|
let loadEncoderPromise;
|
|
@@ -8,7 +8,7 @@ export function getDracoSchema(
|
|
|
8
8
|
loaderData: DracoLoaderData,
|
|
9
9
|
indices?: MeshAttribute
|
|
10
10
|
): Schema {
|
|
11
|
-
const
|
|
11
|
+
const metadata = makeMetadata(loaderData.metadata);
|
|
12
12
|
const fields: Field[] = [];
|
|
13
13
|
const namedLoaderDataAttributes = transformAttributesLoaderData(loaderData.attributes);
|
|
14
14
|
for (const attributeName in attributes) {
|
|
@@ -24,7 +24,7 @@ export function getDracoSchema(
|
|
|
24
24
|
const indicesField = getArrowFieldFromAttribute('indices', indices);
|
|
25
25
|
fields.push(indicesField);
|
|
26
26
|
}
|
|
27
|
-
return
|
|
27
|
+
return {fields, metadata};
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
function transformAttributesLoaderData(loaderData: {[key: number]: DracoAttribute}): {
|
|
@@ -48,10 +48,11 @@ function getArrowFieldFromAttribute(
|
|
|
48
48
|
return field;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
function makeMetadata(metadata: {[key: string]: DracoMetadataEntry}):
|
|
52
|
-
|
|
51
|
+
function makeMetadata(metadata: {[key: string]: DracoMetadataEntry}): Record<string, string> {
|
|
52
|
+
Object.entries(metadata);
|
|
53
|
+
const serializedMetadata: Record<string, string> = {};
|
|
53
54
|
for (const key in metadata) {
|
|
54
|
-
|
|
55
|
+
serializedMetadata[`${key}.string`] = JSON.stringify(metadata[key]);
|
|
55
56
|
}
|
|
56
|
-
return
|
|
57
|
+
return serializedMetadata;
|
|
57
58
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';
|
|
2
|
+
import {DracoWriterNodeJS} from '../draco-writer-nodejs';
|
|
3
|
+
|
|
4
|
+
(() => {
|
|
5
|
+
// Check that we are actually in a worker thread
|
|
6
|
+
if (!WorkerBody.inWorkerThread()) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
WorkerBody.onmessage = async (type, payload: WorkerMessagePayload) => {
|
|
11
|
+
switch (type) {
|
|
12
|
+
case 'process':
|
|
13
|
+
try {
|
|
14
|
+
const {input, options} = payload;
|
|
15
|
+
const result = await DracoWriterNodeJS.encode!(input, options);
|
|
16
|
+
WorkerBody.postMessage('done', {result});
|
|
17
|
+
} catch (error) {
|
|
18
|
+
const message = error instanceof Error ? error.message : '';
|
|
19
|
+
WorkerBody.postMessage('error', {error: message});
|
|
20
|
+
}
|
|
21
|
+
break;
|
|
22
|
+
default:
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
})();
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';
|
|
2
|
+
import {DracoWriter} from '../draco-writer';
|
|
3
|
+
|
|
4
|
+
(() => {
|
|
5
|
+
// Check that we are actually in a worker thread
|
|
6
|
+
if (!WorkerBody.inWorkerThread()) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
WorkerBody.onmessage = async (type, payload: WorkerMessagePayload) => {
|
|
11
|
+
switch (type) {
|
|
12
|
+
case 'process':
|
|
13
|
+
try {
|
|
14
|
+
const {input, options} = payload;
|
|
15
|
+
const result = await DracoWriter.encode!(input, options);
|
|
16
|
+
WorkerBody.postMessage('done', {result});
|
|
17
|
+
} catch (error) {
|
|
18
|
+
const message = error instanceof Error ? error.message : '';
|
|
19
|
+
WorkerBody.postMessage('error', {error: message});
|
|
20
|
+
}
|
|
21
|
+
break;
|
|
22
|
+
default:
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
})();
|
package/dist/bundle.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
|
package/dist/draco-loader.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/draco-loader.ts"],"names":["VERSION","DEFAULT_DRACO_OPTIONS","draco","decoderType","WebAssembly","libraryPath","extraAttributes","attributeNameEntry","undefined","DracoLoader","name","id","module","shapes","version","worker","extensions","mimeTypes","binary","tests","options","_TypecheckDracoLoader"],"mappings":"AAGA,SAAQA,OAAR,QAAsB,qBAAtB;AAWA,MAAMC,qBAAyC,GAAG;AAChDC,EAAAA,KAAK,EAAE;AACLC,IAAAA,WAAW,EAAE,OAAOC,WAAP,KAAuB,QAAvB,GAAkC,MAAlC,GAA2C,IADnD;AAELC,IAAAA,WAAW,EAAE,OAFR;AAGLC,IAAAA,eAAe,EAAE,EAHZ;AAILC,IAAAA,kBAAkB,EAAEC;AAJf;AADyC,CAAlD;AAYA,OAAO,MAAMC,WAAW,GAAG;AACzBC,EAAAA,IAAI,EAAE,OADmB;AAEzBC,EAAAA,EAAE,EAAE,OAFqB;AAGzBC,EAAAA,MAAM,EAAE,OAHiB;AAIzBC,EAAAA,MAAM,EAAE,CAAC,MAAD,CAJiB;AAKzBC,EAAAA,OAAO,EAAEd,OALgB;AAMzBe,EAAAA,MAAM,EAAE,IANiB;AAOzBC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAPa;AAQzBC,EAAAA,SAAS,EAAE,CAAC,0BAAD,CARc;AASzBC,EAAAA,MAAM,EAAE,IATiB;AAUzBC,EAAAA,KAAK,EAAE,CAAC,OAAD,CAVkB;AAWzBC,EAAAA,OAAO,EAAEnB;AAXgB,CAApB;AAcP,OAAO,MAAMoB,qBAA6B,GAAGZ,WAAtC","sourcesContent":["import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {DracoParseOptions} from './lib/draco-parser';\n// import type {DracoMeshData} from './types';\nimport {VERSION} from './lib/utils/version';\n\nexport type DracoLoaderOptions = LoaderOptions & {\n draco?: DracoParseOptions & {\n decoderType?: 'wasm' | 'js';\n libraryPath?: string;\n extraAttributes?;\n attributeNameEntry?: string;\n };\n};\n\nconst DEFAULT_DRACO_OPTIONS: DracoLoaderOptions = {\n draco: {\n decoderType: typeof WebAssembly === 'object' ? 'wasm' : 'js', // 'js' for IE11\n libraryPath: 'libs/',\n extraAttributes: {},\n attributeNameEntry: undefined\n }\n};\n\n/**\n * Worker loader for Draco3D compressed geometries\n */\nexport const DracoLoader = {\n name: 'Draco',\n id: 'draco',\n module: 'draco',\n shapes: ['mesh'],\n version: VERSION,\n worker: true,\n extensions: ['drc'],\n mimeTypes: ['application/octet-stream'],\n binary: true,\n tests: ['DRACO'],\n options: DEFAULT_DRACO_OPTIONS\n};\n\nexport const _TypecheckDracoLoader: Loader = DracoLoader;\n"],"file":"draco-loader.js"}
|
package/dist/draco-writer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/draco-writer.ts"],"names":["DRACOBuilder","loadDracoEncoderModule","VERSION","DEFAULT_DRACO_OPTIONS","pointcloud","attributeNameEntry","DracoWriter","name","id","module","version","extensions","encode","options","draco","data","dracoBuilder","encodeSync","destroy"],"mappings":"AAGA,OAAOA,YAAP,MAAyB,qBAAzB;AACA,SAAQC,sBAAR,QAAqC,2BAArC;AACA,SAAQC,OAAR,QAAsB,qBAAtB;AAIA,MAAMC,qBAAqB,GAAG;AAC5BC,EAAAA,UAAU,EAAE,KADgB;AAE5BC,EAAAA,kBAAkB,EAAE;AAFQ,CAA9B;AAcA,OAAO,MAAMC,WAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,OAD2B;AAEjCC,EAAAA,EAAE,EAAE,OAF6B;AAGjCC,EAAAA,MAAM,EAAE,OAHyB;AAIjCC,EAAAA,OAAO,EAAER,OAJwB;AAKjCS,EAAAA,UAAU,EAAE,CAAC,KAAD,CALqB;AAMjCC,EAAAA,MANiC;AAOjCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,KAAK,EAAEX;AADA;AAPwB,CAA5B;;AAYP,eAAeS,MAAf,CACEG,IADF,EAEEF,OAAqC,GAAG,EAF1C,EAGwB;AAEtB,QAAM;AAACC,IAAAA;AAAD,MAAU,MAAMb,sBAAsB,CAACY,OAAD,CAA5C;AACA,QAAMG,YAAY,GAAG,IAAIhB,YAAJ,CAAiBc,KAAjB,CAArB;;AAEA,MAAI;AACF,WAAOE,YAAY,CAACC,UAAb,CAAwBF,IAAxB,EAA8BF,OAAO,CAACC,KAAtC,CAAP;AACD,GAFD,SAEU;AACRE,IAAAA,YAAY,CAACE,OAAb;AACD;AACF","sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport type {DracoMesh} from './lib/draco-types';\nimport type {DracoBuildOptions} from './lib/draco-builder';\nimport DRACOBuilder from './lib/draco-builder';\nimport {loadDracoEncoderModule} from './lib/draco-module-loader';\nimport {VERSION} from './lib/utils/version';\n\nexport type DracoWriterOptions = DracoBuildOptions & {};\n\nconst DEFAULT_DRACO_OPTIONS = {\n pointcloud: false, // Set to true if pointcloud (mode: 0, no indices)\n attributeNameEntry: 'name'\n // Draco Compression Parameters\n // method: 'MESH_EDGEBREAKER_ENCODING',\n // speed: [5, 5],\n // quantization: {\n // POSITION: 10\n // }\n};\n\n/**\n * Exporter for Draco3D compressed geometries\n */\nexport const DracoWriter: Writer = {\n name: 'DRACO',\n id: 'draco',\n module: 'draco',\n version: VERSION,\n extensions: ['drc'],\n encode,\n options: {\n draco: DEFAULT_DRACO_OPTIONS\n }\n};\n\nasync function encode(\n data: DracoMesh,\n options: {draco?: DracoWriterOptions} = {}\n): Promise<ArrayBuffer> {\n // Dynamically load draco\n const {draco} = await loadDracoEncoderModule(options);\n const dracoBuilder = new DRACOBuilder(draco);\n\n try {\n return dracoBuilder.encodeSync(data, options.draco);\n } finally {\n dracoBuilder.destroy();\n }\n}\n"],"file":"draco-writer.js"}
|