@galacean/engine-loader 1.2.0-beta.0 → 1.2.0-beta.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/module.js CHANGED
@@ -2160,114 +2160,68 @@ function registerGLTFParser(pipeline) {
2160
2160
  };
2161
2161
  GLTFUtils.getAccessorBuffer = function getAccessorBuffer(context, bufferViews, accessor) {
2162
2162
  var componentType = accessor.componentType;
2163
- var _accessor_bufferView;
2164
- var bufferViewIndex = (_accessor_bufferView = accessor.bufferView) != null ? _accessor_bufferView : 0;
2165
- var bufferView = bufferViews[bufferViewIndex];
2166
- return context.get(GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
2167
- var bufferIndex = bufferView.buffer;
2168
- var _bufferViewData_byteOffset;
2169
- var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
2170
- var _accessor_byteOffset;
2171
- var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
2172
- var TypedArray = GLTFUtils.getComponentType(componentType);
2173
- var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
2174
- var dataElementBytes = TypedArray.BYTES_PER_ELEMENT;
2175
- var elementStride = dataElementSize * dataElementBytes;
2176
- var accessorCount = accessor.count;
2177
- var bufferStride = bufferView.byteStride;
2178
- var bufferInfo;
2179
- // According to the glTF official documentation only byteStride not undefined is allowed
2180
- if (bufferStride !== undefined && bufferStride !== elementStride) {
2181
- var bufferSlice = Math.floor(byteOffset / bufferStride);
2182
- var bufferCacheKey = bufferViewIndex + ":" + componentType + ":" + bufferSlice + ":" + accessorCount;
2183
- var accessorBufferCache = context.accessorBufferCache;
2184
- bufferInfo = accessorBufferCache[bufferCacheKey];
2185
- if (!bufferInfo) {
2186
- var offset = bufferByteOffset + bufferSlice * bufferStride;
2187
- var count = accessorCount * (bufferStride / dataElementBytes);
2188
- var data = new TypedArray(bufferViewData.buffer, offset, count);
2189
- accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
2190
- bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
2163
+ var TypedArray = GLTFUtils.getComponentType(componentType);
2164
+ var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
2165
+ var dataElementBytes = TypedArray.BYTES_PER_ELEMENT;
2166
+ var elementStride = dataElementSize * dataElementBytes;
2167
+ var accessorCount = accessor.count;
2168
+ var promise;
2169
+ if (accessor.bufferView !== undefined) {
2170
+ var bufferViewIndex = accessor.bufferView;
2171
+ var bufferView = bufferViews[bufferViewIndex];
2172
+ promise = context.get(GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
2173
+ var bufferIndex = bufferView.buffer;
2174
+ var _bufferViewData_byteOffset;
2175
+ var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
2176
+ var _accessor_byteOffset;
2177
+ var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
2178
+ var bufferStride = bufferView.byteStride;
2179
+ var bufferInfo;
2180
+ // According to the glTF official documentation only byteStride not undefined is allowed
2181
+ if (bufferStride !== undefined && bufferStride !== elementStride) {
2182
+ var bufferSlice = Math.floor(byteOffset / bufferStride);
2183
+ var bufferCacheKey = bufferViewIndex + ":" + componentType + ":" + bufferSlice + ":" + accessorCount;
2184
+ var accessorBufferCache = context.accessorBufferCache;
2185
+ bufferInfo = accessorBufferCache[bufferCacheKey];
2186
+ if (!bufferInfo) {
2187
+ var offset = bufferByteOffset + bufferSlice * bufferStride;
2188
+ var count = accessorCount * (bufferStride / dataElementBytes);
2189
+ var data = new TypedArray(bufferViewData.buffer, offset, count);
2190
+ accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
2191
+ bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
2192
+ }
2193
+ } else {
2194
+ var offset1 = bufferByteOffset + byteOffset;
2195
+ var count1 = accessorCount * dataElementSize;
2196
+ var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
2197
+ bufferInfo = new BufferInfo(data1, false, elementStride);
2198
+ bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
2191
2199
  }
2192
- } else {
2193
- var offset1 = bufferByteOffset + byteOffset;
2194
- var count1 = accessorCount * dataElementSize;
2195
- var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
2196
- bufferInfo = new BufferInfo(data1, false, elementStride);
2197
- bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
2198
- }
2199
- if (accessor.sparse) {
2200
- return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
2201
- return bufferInfo;
2202
- });
2203
- }
2204
- return bufferInfo;
2205
- });
2200
+ return bufferInfo;
2201
+ });
2202
+ } else {
2203
+ var count = accessorCount * dataElementSize;
2204
+ var data = new TypedArray(count);
2205
+ var bufferInfo = new BufferInfo(data, false, elementStride);
2206
+ bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(undefined, TypedArray, undefined, count));
2207
+ promise = Promise.resolve(bufferInfo);
2208
+ }
2209
+ return accessor.sparse ? promise.then(function(bufferInfo) {
2210
+ return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
2211
+ return bufferInfo;
2212
+ });
2213
+ }) : promise;
2206
2214
  };
2207
- GLTFUtils.bufferToVector3Array = function bufferToVector3Array(data, byteStride, accessorByteOffset, count) {
2208
- var bytesPerElement = data.BYTES_PER_ELEMENT;
2209
- var offset = accessorByteOffset % byteStride / bytesPerElement;
2210
- var stride = byteStride / bytesPerElement;
2211
- var vector3s = new Array(count);
2215
+ GLTFUtils.bufferToVector3Array = function bufferToVector3Array(buffer, byteOffset, count, normalized, componentType) {
2216
+ var baseOffset = byteOffset / buffer.BYTES_PER_ELEMENT;
2217
+ var stride = buffer.length / count;
2218
+ var vertices = new Array(count);
2219
+ var factor = normalized ? GLTFUtils.getNormalizedComponentScale(componentType) : 1;
2212
2220
  for(var i = 0; i < count; i++){
2213
- var index = offset + i * stride;
2214
- vector3s[i] = new Vector3(data[index], data[index + 1], data[index + 2]);
2221
+ var index = baseOffset + i * stride;
2222
+ vertices[i] = new Vector3(buffer[index] * factor, buffer[index + 1] * factor, buffer[index + 2] * factor);
2215
2223
  }
2216
- return vector3s;
2217
- };
2218
- /**
2219
- * @deprecated
2220
- * Get accessor data.
2221
- */ GLTFUtils.getAccessorData = function getAccessorData(glTF, accessor, buffers) {
2222
- var bufferViews = glTF.bufferViews;
2223
- var _accessor_bufferView;
2224
- var bufferView = bufferViews[(_accessor_bufferView = accessor.bufferView) != null ? _accessor_bufferView : 0];
2225
- var arrayBuffer = buffers[bufferView.buffer];
2226
- var accessorByteOffset = accessor.hasOwnProperty("byteOffset") ? accessor.byteOffset : 0;
2227
- var bufferViewByteOffset = bufferView.hasOwnProperty("byteOffset") ? bufferView.byteOffset : 0;
2228
- var byteOffset = accessorByteOffset + bufferViewByteOffset;
2229
- var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
2230
- var length = accessorTypeSize * accessor.count;
2231
- var _bufferView_byteStride;
2232
- var byteStride = (_bufferView_byteStride = bufferView.byteStride) != null ? _bufferView_byteStride : 0;
2233
- var arrayType = GLTFUtils.getComponentType(accessor.componentType);
2234
- var uint8Array;
2235
- if (byteStride) {
2236
- var accessorByteSize = accessorTypeSize * arrayType.BYTES_PER_ELEMENT;
2237
- uint8Array = new Uint8Array(accessor.count * accessorByteSize);
2238
- var originalBufferView = new Uint8Array(arrayBuffer, bufferViewByteOffset, bufferView.byteLength);
2239
- for(var i = 0; i < accessor.count; i++){
2240
- for(var j = 0; j < accessorByteSize; j++){
2241
- uint8Array[i * accessorByteSize + j] = originalBufferView[i * byteStride + accessorByteOffset + j];
2242
- }
2243
- }
2244
- } else {
2245
- uint8Array = new Uint8Array(arrayBuffer.slice(byteOffset, byteOffset + length * arrayType.BYTES_PER_ELEMENT));
2246
- }
2247
- var typedArray = new arrayType(uint8Array.buffer);
2248
- if (accessor.sparse) {
2249
- var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
2250
- var indicesBufferView = bufferViews[indices.bufferView];
2251
- var valuesBufferView = bufferViews[values.bufferView];
2252
- var indicesArrayBuffer = buffers[indicesBufferView.buffer];
2253
- var valuesArrayBuffer = buffers[valuesBufferView.buffer];
2254
- var _indices_byteOffset, _indicesBufferView_byteOffset;
2255
- var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesBufferView_byteOffset = indicesBufferView.byteOffset) != null ? _indicesBufferView_byteOffset : 0);
2256
- var indicesByteLength = indicesBufferView.byteLength;
2257
- var _values_byteOffset, _valuesBufferView_byteOffset;
2258
- var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesBufferView_byteOffset = valuesBufferView.byteOffset) != null ? _valuesBufferView_byteOffset : 0);
2259
- var valuesByteLength = valuesBufferView.byteLength;
2260
- var indicesType = GLTFUtils.getComponentType(indices.componentType);
2261
- var indicesArray = new indicesType(indicesArrayBuffer, indicesByteOffset, indicesByteLength / indicesType.BYTES_PER_ELEMENT);
2262
- var valuesArray = new arrayType(valuesArrayBuffer, valuesByteOffset, valuesByteLength / arrayType.BYTES_PER_ELEMENT);
2263
- for(var i1 = 0; i1 < count; i1++){
2264
- var replaceIndex = indicesArray[i1];
2265
- for(var j1 = 0; j1 < accessorTypeSize; j1++){
2266
- typedArray[replaceIndex * accessorTypeSize + j1] = valuesArray[i1 * accessorTypeSize + j1];
2267
- }
2268
- }
2269
- }
2270
- return typedArray;
2224
+ return vertices;
2271
2225
  };
2272
2226
  GLTFUtils.getBufferViewData = function getBufferViewData(bufferView, buffers) {
2273
2227
  var _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset;
@@ -3582,16 +3536,16 @@ var KTX2Transcoder;
3582
3536
  var frame = restoreInfo.blendShape.frames[0];
3583
3537
  var position = restoreInfo.position;
3584
3538
  var positionData = _this._getBufferData(buffers, position.buffer);
3585
- frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.stride, position.byteOffset, position.count);
3539
+ frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.byteOffset, position.count, position.normalized, position.componentType);
3586
3540
  if (restoreInfo.normal) {
3587
3541
  var normal = restoreInfo.normal;
3588
3542
  var normalData = _this._getBufferData(buffers, normal.buffer);
3589
- frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.stride, normal.byteOffset, normal.count);
3543
+ frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.byteOffset, normal.count, normal.normalized, normal.componentType);
3590
3544
  }
3591
3545
  if (restoreInfo.tangent) {
3592
3546
  var tangent = restoreInfo.tangent;
3593
3547
  var tangentData = _this._getBufferData(buffers, tangent.buffer);
3594
- frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.stride, tangent.byteOffset, tangent.count);
3548
+ frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.byteOffset, tangent.count, tangent.normalized, tangent.componentType);
3595
3549
  }
3596
3550
  }
3597
3551
  mesh.uploadData(true);
@@ -3603,8 +3557,13 @@ var KTX2Transcoder;
3603
3557
  };
3604
3558
  _proto._getBufferData = function _getBufferData(buffers, restoreInfo) {
3605
3559
  var main = restoreInfo.main;
3606
- var buffer = buffers[main.bufferIndex];
3607
- var data = new main.TypedArray(buffer, main.byteOffset, main.length);
3560
+ var data;
3561
+ if (main) {
3562
+ var buffer = buffers[main.bufferIndex];
3563
+ data = new main.TypedArray(buffer, main.byteOffset, main.length);
3564
+ } else {
3565
+ data = new main.TypedArray(main.length);
3566
+ }
3608
3567
  var sparseCount = restoreInfo.sparseCount;
3609
3568
  if (sparseCount) {
3610
3569
  var sparseIndex = restoreInfo.sparseIndices;
@@ -3677,11 +3636,12 @@ var KTX2Transcoder;
3677
3636
  };
3678
3637
  /**
3679
3638
  * @internal
3680
- */ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer, stride, byteOffset, count) {
3639
+ */ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer, byteOffset, count, normalized, componentType) {
3681
3640
  this.buffer = buffer;
3682
- this.stride = stride;
3683
3641
  this.byteOffset = byteOffset;
3684
3642
  this.count = count;
3643
+ this.normalized = normalized;
3644
+ this.componentType = componentType;
3685
3645
  };
3686
3646
 
3687
3647
  /**
@@ -4307,23 +4267,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4307
4267
  var meshRestoreInfo = new ModelMeshRestoreInfo();
4308
4268
  meshRestoreInfo.mesh = mesh1;
4309
4269
  context.contentRestorer.meshes.push(meshRestoreInfo);
4310
- GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, function(attributeSemantic) {
4311
- return null;
4312
- }, function(attributeName, shapeIndex) {
4313
- var shapeAccessorIdx = gltfPrimitive.targets[shapeIndex];
4314
- var attributeAccessorIdx = shapeAccessorIdx[attributeName];
4315
- if (attributeAccessorIdx) {
4316
- var accessor = glTF.accessors[attributeAccessorIdx];
4317
- return GLTFUtils.getAccessorBuffer(context, context.glTF.bufferViews, accessor);
4318
- } else {
4319
- return null;
4320
- }
4321
- }, function() {
4322
- var indexAccessor = glTF.accessors[gltfPrimitive.indices];
4323
- return context.get(GLTFParserType.Buffer).then(function(buffers) {
4324
- return GLTFUtils.getAccessorData(glTF, indexAccessor, buffers);
4325
- });
4326
- }, context.params.keepMeshData).then(resolve);
4270
+ GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve);
4327
4271
  }
4328
4272
  });
4329
4273
  };
@@ -4336,7 +4280,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4336
4280
  };
4337
4281
  /**
4338
4282
  * @internal
4339
- */ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, getVertexBufferData, getBlendShapeData, getIndexBufferData, keepMeshData) {
4283
+ */ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, keepMeshData) {
4340
4284
  var _loop = function(attribute) {
4341
4285
  var accessor = accessors[attributes[attribute]];
4342
4286
  var promise = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor).then(function(accessorBuffer) {
@@ -4431,61 +4375,68 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4431
4375
  }
4432
4376
  // BlendShapes
4433
4377
  if (targets) {
4434
- promises.push(GLTFMeshParser._createBlendShape(mesh, meshRestoreInfo, gltfMesh, accessors, targets, getBlendShapeData));
4378
+ promises.push(GLTFMeshParser._createBlendShape(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, targets));
4435
4379
  }
4436
4380
  return Promise.all(promises).then(function() {
4437
4381
  mesh.uploadData(!keepMeshData);
4438
- return Promise.resolve(mesh);
4382
+ return mesh;
4439
4383
  });
4440
4384
  });
4441
4385
  };
4386
+ GLTFMeshParser1._getBlendShapeData = function _getBlendShapeData(context, glTF, accessor) {
4387
+ return GLTFUtils.getAccessorBuffer(context, glTF.bufferViews, accessor).then(function(bufferInfo) {
4388
+ var buffer = bufferInfo.data;
4389
+ var _accessor_byteOffset;
4390
+ var byteOffset = bufferInfo.interleaved ? ((_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0) % bufferInfo.stride : 0;
4391
+ var count = accessor.count, normalized = accessor.normalized, componentType = accessor.componentType;
4392
+ var vertices = GLTFUtils.bufferToVector3Array(buffer, byteOffset, count, normalized, componentType);
4393
+ var restoreInfo = new BlendShapeDataRestoreInfo(bufferInfo.restoreInfo, byteOffset, count, normalized, componentType);
4394
+ return {
4395
+ vertices: vertices,
4396
+ restoreInfo: restoreInfo
4397
+ };
4398
+ });
4399
+ };
4442
4400
  /**
4443
4401
  * @internal
4444
- */ GLTFMeshParser1._createBlendShape = function _createBlendShape(mesh, meshRestoreInfo, glTFMesh, accessors, glTFTargets, getBlendShapeData) {
4445
- var _loop = function(i, n) {
4402
+ */ GLTFMeshParser1._createBlendShape = function _createBlendShape(context, mesh, meshRestoreInfo, glTFMesh, gltfPrimitive, glTFTargets) {
4403
+ var _this = this, _loop = function(i) {
4404
+ var blendShapeData = {};
4405
+ blendShapeCollection[i] = blendShapeData;
4446
4406
  var name = blendShapeNames ? blendShapeNames[i] : "blendShape" + i;
4407
+ var targets = gltfPrimitive.targets[i];
4408
+ var normalTarget = targets["NORMAL"];
4409
+ var tangentTarget = targets["TANGENT"];
4410
+ var hasNormal = normalTarget !== undefined;
4411
+ var hasTangent = tangentTarget !== undefined;
4447
4412
  var promise = Promise.all([
4448
- getBlendShapeData("POSITION", i),
4449
- getBlendShapeData("NORMAL", i),
4450
- getBlendShapeData("TANGENT", i)
4451
- ]).then(function(infos) {
4452
- var posBufferInfo = infos[0];
4453
- var norBufferInfo = infos[1];
4454
- var tanBufferInfo = infos[2];
4455
- var target = glTFTargets[i];
4456
- var posAccessor;
4457
- var norAccessor;
4458
- var tanAccessor;
4459
- var positions = null;
4460
- if (posBufferInfo) {
4461
- posAccessor = accessors[target["POSITION"]];
4462
- var _posAccessor_byteOffset;
4463
- positions = GLTFUtils.bufferToVector3Array(posBufferInfo.data, posBufferInfo.stride, (_posAccessor_byteOffset = posAccessor.byteOffset) != null ? _posAccessor_byteOffset : 0, posAccessor.count);
4464
- }
4465
- var normals = null;
4466
- if (norBufferInfo) {
4467
- norAccessor = accessors[target["NORMAL"]];
4468
- var _norAccessor_byteOffset;
4469
- normals = GLTFUtils.bufferToVector3Array(norBufferInfo.data, norBufferInfo.stride, (_norAccessor_byteOffset = norAccessor.byteOffset) != null ? _norAccessor_byteOffset : 0, norAccessor.count);
4470
- }
4471
- var tangents = null;
4472
- if (tanBufferInfo) {
4473
- tanAccessor = accessors[target["NORMAL"]];
4474
- var _tanAccessor_byteOffset;
4475
- tangents = GLTFUtils.bufferToVector3Array(tanBufferInfo.data, tanBufferInfo.stride, (_tanAccessor_byteOffset = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset : 0, tanAccessor.count);
4476
- }
4413
+ _this._getBlendShapeData(context, glTF, accessors[targets["POSITION"]]),
4414
+ hasNormal ? _this._getBlendShapeData(context, glTF, accessors[normalTarget]) : null,
4415
+ hasTangent ? _this._getBlendShapeData(context, glTF, accessors[tangentTarget]) : null
4416
+ ]).then(function(vertices) {
4417
+ var _tangentData;
4418
+ var positionData = vertices[0], normalData = vertices[1], tangentData = vertices[2];
4477
4419
  var blendShape = new BlendShape(name);
4478
- blendShape.addFrame(1.0, positions, normals, tangents);
4479
- mesh.addBlendShape(blendShape);
4480
- var _posAccessor_byteOffset1, _norAccessor_byteOffset1, _tanAccessor_byteOffset1;
4481
- meshRestoreInfo.blendShapes.push(new BlendShapeRestoreInfo(blendShape, new BlendShapeDataRestoreInfo(posBufferInfo.restoreInfo, posBufferInfo.stride, (_posAccessor_byteOffset1 = posAccessor.byteOffset) != null ? _posAccessor_byteOffset1 : 0, posAccessor.count), norBufferInfo ? new BlendShapeDataRestoreInfo(norBufferInfo.restoreInfo, norBufferInfo.stride, (_norAccessor_byteOffset1 = norAccessor.byteOffset) != null ? _norAccessor_byteOffset1 : 0, norAccessor.count) : null, tanBufferInfo ? new BlendShapeDataRestoreInfo(tanBufferInfo.restoreInfo, tanBufferInfo.stride, (_tanAccessor_byteOffset1 = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset1 : 0, tanAccessor.count) : null));
4420
+ blendShape.addFrame(1.0, positionData.vertices, hasNormal ? normalData.vertices : null, hasTangent ? tangentData.vertices : null);
4421
+ blendShapeData.blendShape = blendShape;
4422
+ blendShapeData.restoreInfo = new BlendShapeRestoreInfo(blendShape, positionData.restoreInfo, hasNormal ? normalData.restoreInfo : null, hasTangent ? (_tangentData = tangentData) == null ? void 0 : _tangentData.restoreInfo : null);
4482
4423
  });
4483
4424
  promises.push(promise);
4484
4425
  };
4426
+ var glTF = context.glTF;
4427
+ var accessors = glTF.accessors;
4485
4428
  var blendShapeNames = glTFMesh.extras ? glTFMesh.extras.targetNames : null;
4486
4429
  var promises = new Array();
4487
- for(var i = 0, n = glTFTargets.length; i < n; i++)_loop(i);
4488
- return Promise.all(promises);
4430
+ var blendShapeCount = glTFTargets.length;
4431
+ var blendShapeCollection = new Array(blendShapeCount);
4432
+ for(var i = 0; i < blendShapeCount; i++)_loop(i);
4433
+ return Promise.all(promises).then(function() {
4434
+ for(var _iterator = _create_for_of_iterator_helper_loose(blendShapeCollection), _step; !(_step = _iterator()).done;){
4435
+ var blendShape = _step.value;
4436
+ mesh.addBlendShape(blendShape.blendShape);
4437
+ meshRestoreInfo.blendShapes.push(blendShape.restoreInfo);
4438
+ }
4439
+ });
4489
4440
  };
4490
4441
  return GLTFMeshParser1;
4491
4442
  }(GLTFParser), function() {