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