@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/main.js +119 -168
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +119 -168
- package/dist/module.js +119 -168
- 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/main.js
CHANGED
|
@@ -2164,114 +2164,68 @@ function registerGLTFParser(pipeline) {
|
|
|
2164
2164
|
};
|
|
2165
2165
|
GLTFUtils.getAccessorBuffer = function getAccessorBuffer(context, bufferViews, accessor) {
|
|
2166
2166
|
var componentType = accessor.componentType;
|
|
2167
|
-
var
|
|
2168
|
-
var
|
|
2169
|
-
var
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
var
|
|
2175
|
-
var
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2167
|
+
var TypedArray = GLTFUtils.getComponentType(componentType);
|
|
2168
|
+
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
2169
|
+
var dataElementBytes = TypedArray.BYTES_PER_ELEMENT;
|
|
2170
|
+
var elementStride = dataElementSize * dataElementBytes;
|
|
2171
|
+
var accessorCount = accessor.count;
|
|
2172
|
+
var promise;
|
|
2173
|
+
if (accessor.bufferView !== undefined) {
|
|
2174
|
+
var bufferViewIndex = accessor.bufferView;
|
|
2175
|
+
var bufferView = bufferViews[bufferViewIndex];
|
|
2176
|
+
promise = context.get(exports.GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
|
|
2177
|
+
var bufferIndex = bufferView.buffer;
|
|
2178
|
+
var _bufferViewData_byteOffset;
|
|
2179
|
+
var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
|
|
2180
|
+
var _accessor_byteOffset;
|
|
2181
|
+
var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
|
|
2182
|
+
var bufferStride = bufferView.byteStride;
|
|
2183
|
+
var bufferInfo;
|
|
2184
|
+
// According to the glTF official documentation only byteStride not undefined is allowed
|
|
2185
|
+
if (bufferStride !== undefined && bufferStride !== elementStride) {
|
|
2186
|
+
var bufferSlice = Math.floor(byteOffset / bufferStride);
|
|
2187
|
+
var bufferCacheKey = bufferViewIndex + ":" + componentType + ":" + bufferSlice + ":" + accessorCount;
|
|
2188
|
+
var accessorBufferCache = context.accessorBufferCache;
|
|
2189
|
+
bufferInfo = accessorBufferCache[bufferCacheKey];
|
|
2190
|
+
if (!bufferInfo) {
|
|
2191
|
+
var offset = bufferByteOffset + bufferSlice * bufferStride;
|
|
2192
|
+
var count = accessorCount * (bufferStride / dataElementBytes);
|
|
2193
|
+
var data = new TypedArray(bufferViewData.buffer, offset, count);
|
|
2194
|
+
accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
|
|
2195
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
|
|
2196
|
+
}
|
|
2197
|
+
} else {
|
|
2198
|
+
var offset1 = bufferByteOffset + byteOffset;
|
|
2199
|
+
var count1 = accessorCount * dataElementSize;
|
|
2200
|
+
var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
|
|
2201
|
+
bufferInfo = new BufferInfo(data1, false, elementStride);
|
|
2202
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
|
|
2195
2203
|
}
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
});
|
|
2204
|
+
return bufferInfo;
|
|
2205
|
+
});
|
|
2206
|
+
} else {
|
|
2207
|
+
var count = accessorCount * dataElementSize;
|
|
2208
|
+
var data = new TypedArray(count);
|
|
2209
|
+
var bufferInfo = new BufferInfo(data, false, elementStride);
|
|
2210
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(undefined, TypedArray, undefined, count));
|
|
2211
|
+
promise = Promise.resolve(bufferInfo);
|
|
2212
|
+
}
|
|
2213
|
+
return accessor.sparse ? promise.then(function(bufferInfo) {
|
|
2214
|
+
return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
|
|
2215
|
+
return bufferInfo;
|
|
2216
|
+
});
|
|
2217
|
+
}) : promise;
|
|
2210
2218
|
};
|
|
2211
|
-
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(
|
|
2212
|
-
var
|
|
2213
|
-
var
|
|
2214
|
-
var
|
|
2215
|
-
var
|
|
2219
|
+
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(buffer, byteOffset, count, normalized, componentType) {
|
|
2220
|
+
var baseOffset = byteOffset / buffer.BYTES_PER_ELEMENT;
|
|
2221
|
+
var stride = buffer.length / count;
|
|
2222
|
+
var vertices = new Array(count);
|
|
2223
|
+
var factor = normalized ? GLTFUtils.getNormalizedComponentScale(componentType) : 1;
|
|
2216
2224
|
for(var i = 0; i < count; i++){
|
|
2217
|
-
var index =
|
|
2218
|
-
|
|
2225
|
+
var index = baseOffset + i * stride;
|
|
2226
|
+
vertices[i] = new engineMath.Vector3(buffer[index] * factor, buffer[index + 1] * factor, buffer[index + 2] * factor);
|
|
2219
2227
|
}
|
|
2220
|
-
return
|
|
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;
|
|
2228
|
+
return vertices;
|
|
2275
2229
|
};
|
|
2276
2230
|
GLTFUtils.getBufferViewData = function getBufferViewData(bufferView, buffers) {
|
|
2277
2231
|
var _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset;
|
|
@@ -3586,16 +3540,16 @@ exports.KTX2Transcoder = void 0;
|
|
|
3586
3540
|
var frame = restoreInfo.blendShape.frames[0];
|
|
3587
3541
|
var position = restoreInfo.position;
|
|
3588
3542
|
var positionData = _this._getBufferData(buffers, position.buffer);
|
|
3589
|
-
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.
|
|
3543
|
+
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.byteOffset, position.count, position.normalized, position.componentType);
|
|
3590
3544
|
if (restoreInfo.normal) {
|
|
3591
3545
|
var normal = restoreInfo.normal;
|
|
3592
3546
|
var normalData = _this._getBufferData(buffers, normal.buffer);
|
|
3593
|
-
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.
|
|
3547
|
+
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.byteOffset, normal.count, normal.normalized, normal.componentType);
|
|
3594
3548
|
}
|
|
3595
3549
|
if (restoreInfo.tangent) {
|
|
3596
3550
|
var tangent = restoreInfo.tangent;
|
|
3597
3551
|
var tangentData = _this._getBufferData(buffers, tangent.buffer);
|
|
3598
|
-
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.
|
|
3552
|
+
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.byteOffset, tangent.count, tangent.normalized, tangent.componentType);
|
|
3599
3553
|
}
|
|
3600
3554
|
}
|
|
3601
3555
|
mesh.uploadData(true);
|
|
@@ -3607,8 +3561,13 @@ exports.KTX2Transcoder = void 0;
|
|
|
3607
3561
|
};
|
|
3608
3562
|
_proto._getBufferData = function _getBufferData(buffers, restoreInfo) {
|
|
3609
3563
|
var main = restoreInfo.main;
|
|
3610
|
-
var
|
|
3611
|
-
|
|
3564
|
+
var data;
|
|
3565
|
+
if (main) {
|
|
3566
|
+
var buffer = buffers[main.bufferIndex];
|
|
3567
|
+
data = new main.TypedArray(buffer, main.byteOffset, main.length);
|
|
3568
|
+
} else {
|
|
3569
|
+
data = new main.TypedArray(main.length);
|
|
3570
|
+
}
|
|
3612
3571
|
var sparseCount = restoreInfo.sparseCount;
|
|
3613
3572
|
if (sparseCount) {
|
|
3614
3573
|
var sparseIndex = restoreInfo.sparseIndices;
|
|
@@ -3681,11 +3640,12 @@ exports.KTX2Transcoder = void 0;
|
|
|
3681
3640
|
};
|
|
3682
3641
|
/**
|
|
3683
3642
|
* @internal
|
|
3684
|
-
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer,
|
|
3643
|
+
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer, byteOffset, count, normalized, componentType) {
|
|
3685
3644
|
this.buffer = buffer;
|
|
3686
|
-
this.stride = stride;
|
|
3687
3645
|
this.byteOffset = byteOffset;
|
|
3688
3646
|
this.count = count;
|
|
3647
|
+
this.normalized = normalized;
|
|
3648
|
+
this.componentType = componentType;
|
|
3689
3649
|
};
|
|
3690
3650
|
|
|
3691
3651
|
/**
|
|
@@ -4311,23 +4271,7 @@ exports.GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1)
|
|
|
4311
4271
|
var meshRestoreInfo = new ModelMeshRestoreInfo();
|
|
4312
4272
|
meshRestoreInfo.mesh = mesh1;
|
|
4313
4273
|
context.contentRestorer.meshes.push(meshRestoreInfo);
|
|
4314
|
-
exports.GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF,
|
|
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);
|
|
4274
|
+
exports.GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve);
|
|
4331
4275
|
}
|
|
4332
4276
|
});
|
|
4333
4277
|
};
|
|
@@ -4340,7 +4284,7 @@ exports.GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1)
|
|
|
4340
4284
|
};
|
|
4341
4285
|
/**
|
|
4342
4286
|
* @internal
|
|
4343
|
-
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf,
|
|
4287
|
+
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, keepMeshData) {
|
|
4344
4288
|
var _loop = function(attribute) {
|
|
4345
4289
|
var accessor = accessors[attributes[attribute]];
|
|
4346
4290
|
var promise = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor).then(function(accessorBuffer) {
|
|
@@ -4435,61 +4379,68 @@ exports.GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1)
|
|
|
4435
4379
|
}
|
|
4436
4380
|
// BlendShapes
|
|
4437
4381
|
if (targets) {
|
|
4438
|
-
promises.push(exports.GLTFMeshParser._createBlendShape(mesh, meshRestoreInfo, gltfMesh,
|
|
4382
|
+
promises.push(exports.GLTFMeshParser._createBlendShape(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, targets));
|
|
4439
4383
|
}
|
|
4440
4384
|
return Promise.all(promises).then(function() {
|
|
4441
4385
|
mesh.uploadData(!keepMeshData);
|
|
4442
|
-
return
|
|
4386
|
+
return mesh;
|
|
4443
4387
|
});
|
|
4444
4388
|
});
|
|
4445
4389
|
};
|
|
4390
|
+
GLTFMeshParser1._getBlendShapeData = function _getBlendShapeData(context, glTF, accessor) {
|
|
4391
|
+
return GLTFUtils.getAccessorBuffer(context, glTF.bufferViews, accessor).then(function(bufferInfo) {
|
|
4392
|
+
var buffer = bufferInfo.data;
|
|
4393
|
+
var _accessor_byteOffset;
|
|
4394
|
+
var byteOffset = bufferInfo.interleaved ? ((_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0) % bufferInfo.stride : 0;
|
|
4395
|
+
var count = accessor.count, normalized = accessor.normalized, componentType = accessor.componentType;
|
|
4396
|
+
var vertices = GLTFUtils.bufferToVector3Array(buffer, byteOffset, count, normalized, componentType);
|
|
4397
|
+
var restoreInfo = new BlendShapeDataRestoreInfo(bufferInfo.restoreInfo, byteOffset, count, normalized, componentType);
|
|
4398
|
+
return {
|
|
4399
|
+
vertices: vertices,
|
|
4400
|
+
restoreInfo: restoreInfo
|
|
4401
|
+
};
|
|
4402
|
+
});
|
|
4403
|
+
};
|
|
4446
4404
|
/**
|
|
4447
4405
|
* @internal
|
|
4448
|
-
*/ GLTFMeshParser1._createBlendShape = function _createBlendShape(mesh, meshRestoreInfo, glTFMesh,
|
|
4449
|
-
var _loop = function(i
|
|
4406
|
+
*/ GLTFMeshParser1._createBlendShape = function _createBlendShape(context, mesh, meshRestoreInfo, glTFMesh, gltfPrimitive, glTFTargets) {
|
|
4407
|
+
var _this = this, _loop = function(i) {
|
|
4408
|
+
var blendShapeData = {};
|
|
4409
|
+
blendShapeCollection[i] = blendShapeData;
|
|
4450
4410
|
var name = blendShapeNames ? blendShapeNames[i] : "blendShape" + i;
|
|
4411
|
+
var targets = gltfPrimitive.targets[i];
|
|
4412
|
+
var normalTarget = targets["NORMAL"];
|
|
4413
|
+
var tangentTarget = targets["TANGENT"];
|
|
4414
|
+
var hasNormal = normalTarget !== undefined;
|
|
4415
|
+
var hasTangent = tangentTarget !== undefined;
|
|
4451
4416
|
var promise = Promise.all([
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
]).then(function(
|
|
4456
|
-
var
|
|
4457
|
-
var
|
|
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
|
-
}
|
|
4417
|
+
_this._getBlendShapeData(context, glTF, accessors[targets["POSITION"]]),
|
|
4418
|
+
hasNormal ? _this._getBlendShapeData(context, glTF, accessors[normalTarget]) : null,
|
|
4419
|
+
hasTangent ? _this._getBlendShapeData(context, glTF, accessors[tangentTarget]) : null
|
|
4420
|
+
]).then(function(vertices) {
|
|
4421
|
+
var _tangentData;
|
|
4422
|
+
var positionData = vertices[0], normalData = vertices[1], tangentData = vertices[2];
|
|
4481
4423
|
var blendShape = new engineCore.BlendShape(name);
|
|
4482
|
-
blendShape.addFrame(1.0,
|
|
4483
|
-
|
|
4484
|
-
|
|
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));
|
|
4424
|
+
blendShape.addFrame(1.0, positionData.vertices, hasNormal ? normalData.vertices : null, hasTangent ? tangentData.vertices : null);
|
|
4425
|
+
blendShapeData.blendShape = blendShape;
|
|
4426
|
+
blendShapeData.restoreInfo = new BlendShapeRestoreInfo(blendShape, positionData.restoreInfo, hasNormal ? normalData.restoreInfo : null, hasTangent ? (_tangentData = tangentData) == null ? void 0 : _tangentData.restoreInfo : null);
|
|
4486
4427
|
});
|
|
4487
4428
|
promises.push(promise);
|
|
4488
4429
|
};
|
|
4430
|
+
var glTF = context.glTF;
|
|
4431
|
+
var accessors = glTF.accessors;
|
|
4489
4432
|
var blendShapeNames = glTFMesh.extras ? glTFMesh.extras.targetNames : null;
|
|
4490
4433
|
var promises = new Array();
|
|
4491
|
-
|
|
4492
|
-
|
|
4434
|
+
var blendShapeCount = glTFTargets.length;
|
|
4435
|
+
var blendShapeCollection = new Array(blendShapeCount);
|
|
4436
|
+
for(var i = 0; i < blendShapeCount; i++)_loop(i);
|
|
4437
|
+
return Promise.all(promises).then(function() {
|
|
4438
|
+
for(var _iterator = _create_for_of_iterator_helper_loose(blendShapeCollection), _step; !(_step = _iterator()).done;){
|
|
4439
|
+
var blendShape = _step.value;
|
|
4440
|
+
mesh.addBlendShape(blendShape.blendShape);
|
|
4441
|
+
meshRestoreInfo.blendShapes.push(blendShape.restoreInfo);
|
|
4442
|
+
}
|
|
4443
|
+
});
|
|
4493
4444
|
};
|
|
4494
4445
|
return GLTFMeshParser1;
|
|
4495
4446
|
}(GLTFParser), function() {
|