@loaders.gl/draco 3.3.0-alpha.5 → 3.3.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/draco-nodejs-worker.js +70 -69
- package/dist/draco-nodejs-worker.js.map +3 -3
- package/dist/draco-worker.js +1 -1
- package/dist/draco-writer-nodejs-worker.js +61 -60
- package/dist/draco-writer-nodejs-worker.js.map +3 -3
- package/dist/draco-writer-worker.js +2 -2
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/draco-loader.js +1 -4
- package/dist/es5/draco-loader.js.map +1 -1
- package/dist/es5/draco-writer-nodejs.js +0 -2
- package/dist/es5/draco-writer-nodejs.js.map +1 -1
- package/dist/es5/draco-writer.js +5 -17
- package/dist/es5/draco-writer.js.map +1 -1
- package/dist/es5/draco3d/draco3d-types.js +1 -8
- package/dist/es5/draco3d/draco3d-types.js.map +1 -1
- package/dist/es5/index.js +5 -25
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/draco-builder.js +40 -96
- package/dist/es5/lib/draco-builder.js.map +1 -1
- package/dist/es5/lib/draco-module-loader.js +2 -41
- package/dist/es5/lib/draco-module-loader.js.map +1 -1
- package/dist/es5/lib/draco-parser.js +63 -111
- package/dist/es5/lib/draco-parser.js.map +1 -1
- package/dist/es5/lib/draco-types.js.map +1 -1
- package/dist/es5/lib/utils/get-draco-schema.js +0 -12
- package/dist/es5/lib/utils/get-draco-schema.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/workers/draco-nodejs-worker.js +0 -3
- package/dist/es5/workers/draco-nodejs-worker.js.map +1 -1
- package/dist/es5/workers/draco-worker.js +0 -2
- package/dist/es5/workers/draco-worker.js.map +1 -1
- package/dist/es5/workers/draco-writer-nodejs-worker.js +0 -15
- package/dist/es5/workers/draco-writer-nodejs-worker.js.map +1 -1
- package/dist/es5/workers/draco-writer-worker.js +0 -15
- package/dist/es5/workers/draco-writer-worker.js.map +1 -1
- package/dist/esm/bundle.js +1 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/draco-loader.js +1 -0
- package/dist/esm/draco-loader.js.map +1 -1
- package/dist/esm/draco-writer-nodejs.js +1 -0
- package/dist/esm/draco-writer-nodejs.js.map +1 -1
- package/dist/esm/draco-writer.js +3 -3
- package/dist/esm/draco-writer.js.map +1 -1
- package/dist/esm/draco3d/draco3d-types.js +2 -3
- package/dist/esm/draco3d/draco3d-types.js.map +1 -1
- package/dist/esm/index.js +6 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/draco-builder.js +6 -75
- package/dist/esm/lib/draco-builder.js.map +1 -1
- package/dist/esm/lib/draco-module-loader.js +4 -9
- package/dist/esm/lib/draco-module-loader.js.map +1 -1
- package/dist/esm/lib/draco-parser.js +5 -66
- package/dist/esm/lib/draco-parser.js.map +1 -1
- package/dist/esm/lib/draco-types.js.map +1 -1
- package/dist/esm/lib/utils/get-draco-schema.js +0 -10
- package/dist/esm/lib/utils/get-draco-schema.js.map +1 -1
- package/dist/esm/lib/utils/version.js +2 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/workers/draco-nodejs-worker.js.map +1 -1
- package/dist/esm/workers/draco-worker.js.map +1 -1
- package/dist/esm/workers/draco-writer-nodejs-worker.js +0 -4
- package/dist/esm/workers/draco-writer-nodejs-worker.js.map +1 -1
- package/dist/esm/workers/draco-writer-worker.js +0 -4
- package/dist/esm/workers/draco-writer-worker.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,40 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
-
|
|
12
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
-
|
|
14
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
|
-
|
|
20
13
|
var _schema = require("@loaders.gl/schema");
|
|
21
|
-
|
|
22
14
|
var _getDracoSchema = require("./utils/get-draco-schema");
|
|
23
|
-
|
|
24
15
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
25
|
-
|
|
26
16
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
27
|
-
|
|
28
17
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
29
|
-
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
33
|
-
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
34
20
|
var GEOMETRY_TYPE = {
|
|
35
21
|
TRIANGULAR_MESH: 0,
|
|
36
22
|
POINT_CLOUD: 1
|
|
37
23
|
};
|
|
24
|
+
|
|
38
25
|
var DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP = {
|
|
39
26
|
POSITION: 'POSITION',
|
|
40
27
|
NORMAL: 'NORMAL',
|
|
@@ -51,7 +38,6 @@ var DRACO_DATA_TYPE_TO_TYPED_ARRAY_MAP = {
|
|
|
51
38
|
9: Float32Array
|
|
52
39
|
};
|
|
53
40
|
var INDEX_ITEM_SIZE = 4;
|
|
54
|
-
|
|
55
41
|
var DracoParser = function () {
|
|
56
42
|
function DracoParser(draco) {
|
|
57
43
|
(0, _classCallCheck2.default)(this, DracoParser);
|
|
@@ -65,50 +51,42 @@ var DracoParser = function () {
|
|
|
65
51
|
|
|
66
52
|
(0, _createClass2.default)(DracoParser, [{
|
|
67
53
|
key: "destroy",
|
|
68
|
-
value:
|
|
54
|
+
value:
|
|
55
|
+
function destroy() {
|
|
69
56
|
this.draco.destroy(this.decoder);
|
|
70
57
|
this.draco.destroy(this.metadataQuerier);
|
|
71
58
|
}
|
|
59
|
+
|
|
72
60
|
}, {
|
|
73
61
|
key: "parseSync",
|
|
74
|
-
value:
|
|
62
|
+
value:
|
|
63
|
+
function parseSync(arrayBuffer) {
|
|
75
64
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
76
65
|
var buffer = new this.draco.DecoderBuffer();
|
|
77
66
|
buffer.Init(new Int8Array(arrayBuffer), arrayBuffer.byteLength);
|
|
78
|
-
|
|
79
67
|
this._disableAttributeTransforms(options);
|
|
80
|
-
|
|
81
68
|
var geometry_type = this.decoder.GetEncodedGeometryType(buffer);
|
|
82
69
|
var dracoGeometry = geometry_type === this.draco.TRIANGULAR_MESH ? new this.draco.Mesh() : new this.draco.PointCloud();
|
|
83
|
-
|
|
84
70
|
try {
|
|
85
71
|
var dracoStatus;
|
|
86
|
-
|
|
87
72
|
switch (geometry_type) {
|
|
88
73
|
case this.draco.TRIANGULAR_MESH:
|
|
89
74
|
dracoStatus = this.decoder.DecodeBufferToMesh(buffer, dracoGeometry);
|
|
90
75
|
break;
|
|
91
|
-
|
|
92
76
|
case this.draco.POINT_CLOUD:
|
|
93
77
|
dracoStatus = this.decoder.DecodeBufferToPointCloud(buffer, dracoGeometry);
|
|
94
78
|
break;
|
|
95
|
-
|
|
96
79
|
default:
|
|
97
80
|
throw new Error('DRACO: Unknown geometry type.');
|
|
98
81
|
}
|
|
99
|
-
|
|
100
82
|
if (!dracoStatus.ok() || !dracoGeometry.ptr) {
|
|
101
83
|
var message = "DRACO decompression failed: ".concat(dracoStatus.error_msg());
|
|
102
84
|
throw new Error(message);
|
|
103
85
|
}
|
|
104
|
-
|
|
105
86
|
var loaderData = this._getDracoLoaderData(dracoGeometry, geometry_type, options);
|
|
106
|
-
|
|
107
87
|
var geometry = this._getMeshData(dracoGeometry, loaderData, options);
|
|
108
|
-
|
|
109
88
|
var boundingBox = (0, _schema.getMeshBoundingBox)(geometry.attributes);
|
|
110
89
|
var schema = (0, _getDracoSchema.getDracoSchema)(geometry.attributes, loaderData, geometry.indices);
|
|
111
|
-
|
|
112
90
|
var data = _objectSpread(_objectSpread({
|
|
113
91
|
loader: 'draco',
|
|
114
92
|
loaderData: loaderData,
|
|
@@ -119,23 +97,22 @@ var DracoParser = function () {
|
|
|
119
97
|
}, geometry), {}, {
|
|
120
98
|
schema: schema
|
|
121
99
|
});
|
|
122
|
-
|
|
123
100
|
return data;
|
|
124
101
|
} finally {
|
|
125
102
|
this.draco.destroy(buffer);
|
|
126
|
-
|
|
127
103
|
if (dracoGeometry) {
|
|
128
104
|
this.draco.destroy(dracoGeometry);
|
|
129
105
|
}
|
|
130
106
|
}
|
|
131
107
|
}
|
|
108
|
+
|
|
132
109
|
}, {
|
|
133
110
|
key: "_getDracoLoaderData",
|
|
134
|
-
value:
|
|
135
|
-
var metadata = this._getTopLevelMetadata(dracoGeometry);
|
|
111
|
+
value:
|
|
136
112
|
|
|
113
|
+
function _getDracoLoaderData(dracoGeometry, geometry_type, options) {
|
|
114
|
+
var metadata = this._getTopLevelMetadata(dracoGeometry);
|
|
137
115
|
var attributes = this._getDracoAttributes(dracoGeometry, options);
|
|
138
|
-
|
|
139
116
|
return {
|
|
140
117
|
geometry_type: geometry_type,
|
|
141
118
|
num_attributes: dracoGeometry.num_attributes(),
|
|
@@ -145,16 +122,15 @@ var DracoParser = function () {
|
|
|
145
122
|
attributes: attributes
|
|
146
123
|
};
|
|
147
124
|
}
|
|
125
|
+
|
|
148
126
|
}, {
|
|
149
127
|
key: "_getDracoAttributes",
|
|
150
|
-
value:
|
|
128
|
+
value:
|
|
129
|
+
function _getDracoAttributes(dracoGeometry, options) {
|
|
151
130
|
var dracoAttributes = {};
|
|
152
|
-
|
|
153
131
|
for (var attributeId = 0; attributeId < dracoGeometry.num_attributes(); attributeId++) {
|
|
154
132
|
var dracoAttribute = this.decoder.GetAttribute(dracoGeometry, attributeId);
|
|
155
|
-
|
|
156
133
|
var metadata = this._getAttributeMetadata(dracoGeometry, attributeId);
|
|
157
|
-
|
|
158
134
|
dracoAttributes[dracoAttribute.unique_id()] = {
|
|
159
135
|
unique_id: dracoAttribute.unique_id(),
|
|
160
136
|
attribute_type: dracoAttribute.attribute_type(),
|
|
@@ -168,27 +144,23 @@ var DracoParser = function () {
|
|
|
168
144
|
};
|
|
169
145
|
|
|
170
146
|
var quantization = this._getQuantizationTransform(dracoAttribute, options);
|
|
171
|
-
|
|
172
147
|
if (quantization) {
|
|
173
148
|
dracoAttributes[dracoAttribute.unique_id()].quantization_transform = quantization;
|
|
174
149
|
}
|
|
175
|
-
|
|
176
150
|
var octahedron = this._getOctahedronTransform(dracoAttribute, options);
|
|
177
|
-
|
|
178
151
|
if (octahedron) {
|
|
179
152
|
dracoAttributes[dracoAttribute.unique_id()].octahedron_transform = octahedron;
|
|
180
153
|
}
|
|
181
154
|
}
|
|
182
|
-
|
|
183
155
|
return dracoAttributes;
|
|
184
156
|
}
|
|
157
|
+
|
|
185
158
|
}, {
|
|
186
159
|
key: "_getMeshData",
|
|
187
|
-
value:
|
|
160
|
+
value:
|
|
161
|
+
function _getMeshData(dracoGeometry, loaderData, options) {
|
|
188
162
|
var attributes = this._getMeshAttributes(loaderData, dracoGeometry, options);
|
|
189
|
-
|
|
190
163
|
var positionAttribute = attributes.POSITION;
|
|
191
|
-
|
|
192
164
|
if (!positionAttribute) {
|
|
193
165
|
throw new Error('DRACO: No position attribute found.');
|
|
194
166
|
}
|
|
@@ -205,7 +177,6 @@ var DracoParser = function () {
|
|
|
205
177
|
size: 1
|
|
206
178
|
}
|
|
207
179
|
};
|
|
208
|
-
|
|
209
180
|
case 'triangle-list':
|
|
210
181
|
default:
|
|
211
182
|
return {
|
|
@@ -230,18 +201,13 @@ var DracoParser = function () {
|
|
|
230
201
|
key: "_getMeshAttributes",
|
|
231
202
|
value: function _getMeshAttributes(loaderData, dracoGeometry, options) {
|
|
232
203
|
var attributes = {};
|
|
233
|
-
|
|
234
204
|
for (var _i = 0, _Object$values = Object.values(loaderData.attributes); _i < _Object$values.length; _i++) {
|
|
235
205
|
var loaderAttribute = _Object$values[_i];
|
|
236
|
-
|
|
237
206
|
var _attributeName = this._deduceAttributeName(loaderAttribute, options);
|
|
238
|
-
|
|
239
207
|
loaderAttribute.name = _attributeName;
|
|
240
|
-
|
|
241
208
|
var _this$_getAttributeVa = this._getAttributeValues(dracoGeometry, loaderAttribute),
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
209
|
+
value = _this$_getAttributeVa.value,
|
|
210
|
+
size = _this$_getAttributeVa.size;
|
|
245
211
|
attributes[_attributeName] = {
|
|
246
212
|
value: value,
|
|
247
213
|
size: size,
|
|
@@ -250,18 +216,18 @@ var DracoParser = function () {
|
|
|
250
216
|
normalized: loaderAttribute.normalized
|
|
251
217
|
};
|
|
252
218
|
}
|
|
253
|
-
|
|
254
219
|
return attributes;
|
|
255
220
|
}
|
|
221
|
+
|
|
256
222
|
}, {
|
|
257
223
|
key: "_getTriangleListIndices",
|
|
258
|
-
value:
|
|
224
|
+
value:
|
|
225
|
+
|
|
226
|
+
function _getTriangleListIndices(dracoGeometry) {
|
|
259
227
|
var numFaces = dracoGeometry.num_faces();
|
|
260
228
|
var numIndices = numFaces * 3;
|
|
261
229
|
var byteLength = numIndices * INDEX_ITEM_SIZE;
|
|
262
|
-
|
|
263
230
|
var ptr = this.draco._malloc(byteLength);
|
|
264
|
-
|
|
265
231
|
try {
|
|
266
232
|
this.decoder.GetTrianglesUInt32Array(dracoGeometry, byteLength, ptr);
|
|
267
233
|
return new Uint32Array(this.draco.HEAPF32.buffer, ptr, numIndices).slice();
|
|
@@ -269,11 +235,12 @@ var DracoParser = function () {
|
|
|
269
235
|
this.draco._free(ptr);
|
|
270
236
|
}
|
|
271
237
|
}
|
|
238
|
+
|
|
272
239
|
}, {
|
|
273
240
|
key: "_getTriangleStripIndices",
|
|
274
|
-
value:
|
|
241
|
+
value:
|
|
242
|
+
function _getTriangleStripIndices(dracoGeometry) {
|
|
275
243
|
var dracoArray = new this.draco.DracoInt32Array();
|
|
276
|
-
|
|
277
244
|
try {
|
|
278
245
|
this.decoder.GetTriangleStripsFromMesh(dracoGeometry, dracoArray);
|
|
279
246
|
return getUint32Array(dracoArray);
|
|
@@ -281,9 +248,11 @@ var DracoParser = function () {
|
|
|
281
248
|
this.draco.destroy(dracoArray);
|
|
282
249
|
}
|
|
283
250
|
}
|
|
251
|
+
|
|
284
252
|
}, {
|
|
285
253
|
key: "_getAttributeValues",
|
|
286
|
-
value:
|
|
254
|
+
value:
|
|
255
|
+
function _getAttributeValues(dracoGeometry, attribute) {
|
|
287
256
|
var TypedArrayCtor = DRACO_DATA_TYPE_TO_TYPED_ARRAY_MAP[attribute.data_type];
|
|
288
257
|
var numComponents = attribute.num_components;
|
|
289
258
|
var numPoints = dracoGeometry.num_points();
|
|
@@ -291,9 +260,7 @@ var DracoParser = function () {
|
|
|
291
260
|
var byteLength = numValues * TypedArrayCtor.BYTES_PER_ELEMENT;
|
|
292
261
|
var dataType = getDracoDataType(this.draco, TypedArrayCtor);
|
|
293
262
|
var value;
|
|
294
|
-
|
|
295
263
|
var ptr = this.draco._malloc(byteLength);
|
|
296
|
-
|
|
297
264
|
try {
|
|
298
265
|
var dracoAttribute = this.decoder.GetAttribute(dracoGeometry, attribute.attribute_index);
|
|
299
266
|
this.decoder.GetAttributeDataArrayForAllPoints(dracoGeometry, dracoAttribute, dataType, byteLength, ptr);
|
|
@@ -301,79 +268,81 @@ var DracoParser = function () {
|
|
|
301
268
|
} finally {
|
|
302
269
|
this.draco._free(ptr);
|
|
303
270
|
}
|
|
304
|
-
|
|
305
271
|
return {
|
|
306
272
|
value: value,
|
|
307
273
|
size: numComponents
|
|
308
274
|
};
|
|
309
275
|
}
|
|
276
|
+
|
|
310
277
|
}, {
|
|
311
278
|
key: "_deduceAttributeName",
|
|
312
|
-
value:
|
|
313
|
-
var uniqueId = attribute.unique_id;
|
|
279
|
+
value:
|
|
314
280
|
|
|
281
|
+
function _deduceAttributeName(attribute, options) {
|
|
282
|
+
var uniqueId = attribute.unique_id;
|
|
315
283
|
for (var _i2 = 0, _Object$entries = Object.entries(options.extraAttributes || {}); _i2 < _Object$entries.length; _i2++) {
|
|
316
284
|
var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i2], 2),
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
285
|
+
_attributeName2 = _Object$entries$_i[0],
|
|
286
|
+
attributeUniqueId = _Object$entries$_i[1];
|
|
320
287
|
if (attributeUniqueId === uniqueId) {
|
|
321
288
|
return _attributeName2;
|
|
322
289
|
}
|
|
323
290
|
}
|
|
324
291
|
|
|
325
292
|
var thisAttributeType = attribute.attribute_type;
|
|
326
|
-
|
|
327
293
|
for (var dracoAttributeConstant in DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP) {
|
|
328
294
|
var attributeType = this.draco[dracoAttributeConstant];
|
|
329
|
-
|
|
330
295
|
if (attributeType === thisAttributeType) {
|
|
331
296
|
return DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP[dracoAttributeConstant];
|
|
332
297
|
}
|
|
333
298
|
}
|
|
334
299
|
|
|
335
300
|
var entryName = options.attributeNameEntry || 'name';
|
|
336
|
-
|
|
337
301
|
if (attribute.metadata[entryName]) {
|
|
338
302
|
return attribute.metadata[entryName].string;
|
|
339
303
|
}
|
|
340
304
|
|
|
341
305
|
return "CUSTOM_ATTRIBUTE_".concat(uniqueId);
|
|
342
306
|
}
|
|
307
|
+
|
|
343
308
|
}, {
|
|
344
309
|
key: "_getTopLevelMetadata",
|
|
345
|
-
value:
|
|
310
|
+
value:
|
|
311
|
+
|
|
312
|
+
function _getTopLevelMetadata(dracoGeometry) {
|
|
346
313
|
var dracoMetadata = this.decoder.GetMetadata(dracoGeometry);
|
|
347
314
|
return this._getDracoMetadata(dracoMetadata);
|
|
348
315
|
}
|
|
316
|
+
|
|
349
317
|
}, {
|
|
350
318
|
key: "_getAttributeMetadata",
|
|
351
|
-
value:
|
|
319
|
+
value:
|
|
320
|
+
function _getAttributeMetadata(dracoGeometry, attributeId) {
|
|
352
321
|
var dracoMetadata = this.decoder.GetAttributeMetadata(dracoGeometry, attributeId);
|
|
353
322
|
return this._getDracoMetadata(dracoMetadata);
|
|
354
323
|
}
|
|
324
|
+
|
|
355
325
|
}, {
|
|
356
326
|
key: "_getDracoMetadata",
|
|
357
|
-
value:
|
|
327
|
+
value:
|
|
328
|
+
function _getDracoMetadata(dracoMetadata) {
|
|
358
329
|
if (!dracoMetadata || !dracoMetadata.ptr) {
|
|
359
330
|
return {};
|
|
360
331
|
}
|
|
361
|
-
|
|
362
332
|
var result = {};
|
|
363
333
|
var numEntries = this.metadataQuerier.NumEntries(dracoMetadata);
|
|
364
|
-
|
|
365
334
|
for (var entryIndex = 0; entryIndex < numEntries; entryIndex++) {
|
|
366
335
|
var entryName = this.metadataQuerier.GetEntryName(dracoMetadata, entryIndex);
|
|
367
336
|
result[entryName] = this._getDracoMetadataField(dracoMetadata, entryName);
|
|
368
337
|
}
|
|
369
|
-
|
|
370
338
|
return result;
|
|
371
339
|
}
|
|
340
|
+
|
|
372
341
|
}, {
|
|
373
342
|
key: "_getDracoMetadataField",
|
|
374
|
-
value:
|
|
343
|
+
value:
|
|
344
|
+
function _getDracoMetadataField(dracoMetadata, entryName) {
|
|
375
345
|
var dracoArray = new this.draco.DracoInt32Array();
|
|
376
|
-
|
|
377
346
|
try {
|
|
378
347
|
this.metadataQuerier.GetIntEntryArray(dracoMetadata, entryName, dracoArray);
|
|
379
348
|
var intArray = getInt32Array(dracoArray);
|
|
@@ -387,18 +356,19 @@ var DracoParser = function () {
|
|
|
387
356
|
this.draco.destroy(dracoArray);
|
|
388
357
|
}
|
|
389
358
|
}
|
|
359
|
+
|
|
390
360
|
}, {
|
|
391
361
|
key: "_disableAttributeTransforms",
|
|
392
|
-
value:
|
|
362
|
+
value:
|
|
363
|
+
|
|
364
|
+
function _disableAttributeTransforms(options) {
|
|
393
365
|
var _options$quantizedAtt = options.quantizedAttributes,
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
366
|
+
quantizedAttributes = _options$quantizedAtt === void 0 ? [] : _options$quantizedAtt,
|
|
367
|
+
_options$octahedronAt = options.octahedronAttributes,
|
|
368
|
+
octahedronAttributes = _options$octahedronAt === void 0 ? [] : _options$octahedronAt;
|
|
397
369
|
var skipAttributes = [].concat((0, _toConsumableArray2.default)(quantizedAttributes), (0, _toConsumableArray2.default)(octahedronAttributes));
|
|
398
|
-
|
|
399
370
|
var _iterator = _createForOfIteratorHelper(skipAttributes),
|
|
400
|
-
|
|
401
|
-
|
|
371
|
+
_step;
|
|
402
372
|
try {
|
|
403
373
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
404
374
|
var dracoAttributeName = _step.value;
|
|
@@ -410,21 +380,20 @@ var DracoParser = function () {
|
|
|
410
380
|
_iterator.f();
|
|
411
381
|
}
|
|
412
382
|
}
|
|
383
|
+
|
|
413
384
|
}, {
|
|
414
385
|
key: "_getQuantizationTransform",
|
|
415
|
-
value:
|
|
386
|
+
value:
|
|
387
|
+
function _getQuantizationTransform(dracoAttribute, options) {
|
|
416
388
|
var _this = this;
|
|
417
|
-
|
|
418
389
|
var _options$quantizedAtt2 = options.quantizedAttributes,
|
|
419
|
-
|
|
390
|
+
quantizedAttributes = _options$quantizedAtt2 === void 0 ? [] : _options$quantizedAtt2;
|
|
420
391
|
var attribute_type = dracoAttribute.attribute_type();
|
|
421
392
|
var skip = quantizedAttributes.map(function (type) {
|
|
422
393
|
return _this.decoder[type];
|
|
423
394
|
}).includes(attribute_type);
|
|
424
|
-
|
|
425
395
|
if (skip) {
|
|
426
396
|
var transform = new this.draco.AttributeQuantizationTransform();
|
|
427
|
-
|
|
428
397
|
try {
|
|
429
398
|
if (transform.InitFromAttribute(dracoAttribute)) {
|
|
430
399
|
return {
|
|
@@ -439,24 +408,20 @@ var DracoParser = function () {
|
|
|
439
408
|
this.draco.destroy(transform);
|
|
440
409
|
}
|
|
441
410
|
}
|
|
442
|
-
|
|
443
411
|
return null;
|
|
444
412
|
}
|
|
445
413
|
}, {
|
|
446
414
|
key: "_getOctahedronTransform",
|
|
447
415
|
value: function _getOctahedronTransform(dracoAttribute, options) {
|
|
448
416
|
var _this2 = this;
|
|
449
|
-
|
|
450
417
|
var _options$octahedronAt2 = options.octahedronAttributes,
|
|
451
|
-
|
|
418
|
+
octahedronAttributes = _options$octahedronAt2 === void 0 ? [] : _options$octahedronAt2;
|
|
452
419
|
var attribute_type = dracoAttribute.attribute_type();
|
|
453
420
|
var octahedron = octahedronAttributes.map(function (type) {
|
|
454
421
|
return _this2.decoder[type];
|
|
455
422
|
}).includes(attribute_type);
|
|
456
|
-
|
|
457
423
|
if (octahedron) {
|
|
458
424
|
var transform = new this.draco.AttributeQuantizationTransform();
|
|
459
|
-
|
|
460
425
|
try {
|
|
461
426
|
if (transform.InitFromAttribute(dracoAttribute)) {
|
|
462
427
|
return {
|
|
@@ -467,38 +432,29 @@ var DracoParser = function () {
|
|
|
467
432
|
this.draco.destroy(transform);
|
|
468
433
|
}
|
|
469
434
|
}
|
|
470
|
-
|
|
471
435
|
return null;
|
|
472
436
|
}
|
|
437
|
+
|
|
473
438
|
}]);
|
|
474
439
|
return DracoParser;
|
|
475
440
|
}();
|
|
476
|
-
|
|
477
441
|
exports.default = DracoParser;
|
|
478
|
-
|
|
479
442
|
function getDracoDataType(draco, attributeType) {
|
|
480
443
|
switch (attributeType) {
|
|
481
444
|
case Float32Array:
|
|
482
445
|
return draco.DT_FLOAT32;
|
|
483
|
-
|
|
484
446
|
case Int8Array:
|
|
485
447
|
return draco.DT_INT8;
|
|
486
|
-
|
|
487
448
|
case Int16Array:
|
|
488
449
|
return draco.DT_INT16;
|
|
489
|
-
|
|
490
450
|
case Int32Array:
|
|
491
451
|
return draco.DT_INT32;
|
|
492
|
-
|
|
493
452
|
case Uint8Array:
|
|
494
453
|
return draco.DT_UINT8;
|
|
495
|
-
|
|
496
454
|
case Uint16Array:
|
|
497
455
|
return draco.DT_UINT16;
|
|
498
|
-
|
|
499
456
|
case Uint32Array:
|
|
500
457
|
return draco.DT_UINT32;
|
|
501
|
-
|
|
502
458
|
default:
|
|
503
459
|
return draco.DT_INVALID;
|
|
504
460
|
}
|
|
@@ -507,22 +463,18 @@ function getDracoDataType(draco, attributeType) {
|
|
|
507
463
|
function getInt32Array(dracoArray) {
|
|
508
464
|
var numValues = dracoArray.size();
|
|
509
465
|
var intArray = new Int32Array(numValues);
|
|
510
|
-
|
|
511
466
|
for (var i = 0; i < numValues; i++) {
|
|
512
467
|
intArray[i] = dracoArray.GetValue(i);
|
|
513
468
|
}
|
|
514
|
-
|
|
515
469
|
return intArray;
|
|
516
470
|
}
|
|
517
471
|
|
|
518
472
|
function getUint32Array(dracoArray) {
|
|
519
473
|
var numValues = dracoArray.size();
|
|
520
474
|
var intArray = new Int32Array(numValues);
|
|
521
|
-
|
|
522
475
|
for (var i = 0; i < numValues; i++) {
|
|
523
476
|
intArray[i] = dracoArray.GetValue(i);
|
|
524
477
|
}
|
|
525
|
-
|
|
526
478
|
return intArray;
|
|
527
479
|
}
|
|
528
480
|
//# sourceMappingURL=draco-parser.js.map
|