@galacean/engine-loader 1.2.0-beta.0 → 1.2.0-beta.2

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