@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/module.js
CHANGED
|
@@ -981,10 +981,11 @@ var HierarchyParser = /*#__PURE__*/ function() {
|
|
|
981
981
|
entity.isActive = (_entityConfig_isActive = entityConfig.isActive) != null ? _entityConfig_isActive : entity.isActive;
|
|
982
982
|
var _entityConfig_name;
|
|
983
983
|
entity.name = (_entityConfig_name = entityConfig.name) != null ? _entityConfig_name : entity.name;
|
|
984
|
-
var position = entityConfig.position, rotation = entityConfig.rotation, scale = entityConfig.scale;
|
|
984
|
+
var position = entityConfig.position, rotation = entityConfig.rotation, scale = entityConfig.scale, layer = entityConfig.layer;
|
|
985
985
|
if (position) entity.transform.position.copyFrom(position);
|
|
986
986
|
if (rotation) entity.transform.rotation.copyFrom(rotation);
|
|
987
987
|
if (scale) entity.transform.scale.copyFrom(scale);
|
|
988
|
+
if (layer) entity.layer = layer;
|
|
988
989
|
return entity;
|
|
989
990
|
};
|
|
990
991
|
_proto._traverseAddEntityToMap = function _traverseAddEntityToMap(entity, context, path) {
|
|
@@ -2160,114 +2161,68 @@ function registerGLTFParser(pipeline) {
|
|
|
2160
2161
|
};
|
|
2161
2162
|
GLTFUtils.getAccessorBuffer = function getAccessorBuffer(context, bufferViews, accessor) {
|
|
2162
2163
|
var componentType = accessor.componentType;
|
|
2163
|
-
var
|
|
2164
|
-
var
|
|
2165
|
-
var
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
var
|
|
2171
|
-
var
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2164
|
+
var TypedArray = GLTFUtils.getComponentType(componentType);
|
|
2165
|
+
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
2166
|
+
var dataElementBytes = TypedArray.BYTES_PER_ELEMENT;
|
|
2167
|
+
var elementStride = dataElementSize * dataElementBytes;
|
|
2168
|
+
var accessorCount = accessor.count;
|
|
2169
|
+
var promise;
|
|
2170
|
+
if (accessor.bufferView !== undefined) {
|
|
2171
|
+
var bufferViewIndex = accessor.bufferView;
|
|
2172
|
+
var bufferView = bufferViews[bufferViewIndex];
|
|
2173
|
+
promise = context.get(GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
|
|
2174
|
+
var bufferIndex = bufferView.buffer;
|
|
2175
|
+
var _bufferViewData_byteOffset;
|
|
2176
|
+
var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
|
|
2177
|
+
var _accessor_byteOffset;
|
|
2178
|
+
var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
|
|
2179
|
+
var bufferStride = bufferView.byteStride;
|
|
2180
|
+
var bufferInfo;
|
|
2181
|
+
// According to the glTF official documentation only byteStride not undefined is allowed
|
|
2182
|
+
if (bufferStride !== undefined && bufferStride !== elementStride) {
|
|
2183
|
+
var bufferSlice = Math.floor(byteOffset / bufferStride);
|
|
2184
|
+
var bufferCacheKey = bufferViewIndex + ":" + componentType + ":" + bufferSlice + ":" + accessorCount;
|
|
2185
|
+
var accessorBufferCache = context.accessorBufferCache;
|
|
2186
|
+
bufferInfo = accessorBufferCache[bufferCacheKey];
|
|
2187
|
+
if (!bufferInfo) {
|
|
2188
|
+
var offset = bufferByteOffset + bufferSlice * bufferStride;
|
|
2189
|
+
var count = accessorCount * (bufferStride / dataElementBytes);
|
|
2190
|
+
var data = new TypedArray(bufferViewData.buffer, offset, count);
|
|
2191
|
+
accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
|
|
2192
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
|
|
2193
|
+
}
|
|
2194
|
+
} else {
|
|
2195
|
+
var offset1 = bufferByteOffset + byteOffset;
|
|
2196
|
+
var count1 = accessorCount * dataElementSize;
|
|
2197
|
+
var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
|
|
2198
|
+
bufferInfo = new BufferInfo(data1, false, elementStride);
|
|
2199
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
|
|
2191
2200
|
}
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
});
|
|
2201
|
+
return bufferInfo;
|
|
2202
|
+
});
|
|
2203
|
+
} else {
|
|
2204
|
+
var count = accessorCount * dataElementSize;
|
|
2205
|
+
var data = new TypedArray(count);
|
|
2206
|
+
var bufferInfo = new BufferInfo(data, false, elementStride);
|
|
2207
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(undefined, TypedArray, undefined, count));
|
|
2208
|
+
promise = Promise.resolve(bufferInfo);
|
|
2209
|
+
}
|
|
2210
|
+
return accessor.sparse ? promise.then(function(bufferInfo) {
|
|
2211
|
+
return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
|
|
2212
|
+
return bufferInfo;
|
|
2213
|
+
});
|
|
2214
|
+
}) : promise;
|
|
2206
2215
|
};
|
|
2207
|
-
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(
|
|
2208
|
-
var
|
|
2209
|
-
var
|
|
2210
|
-
var
|
|
2211
|
-
var
|
|
2216
|
+
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(buffer, byteOffset, count, normalized, componentType) {
|
|
2217
|
+
var baseOffset = byteOffset / buffer.BYTES_PER_ELEMENT;
|
|
2218
|
+
var stride = buffer.length / count;
|
|
2219
|
+
var vertices = new Array(count);
|
|
2220
|
+
var factor = normalized ? GLTFUtils.getNormalizedComponentScale(componentType) : 1;
|
|
2212
2221
|
for(var i = 0; i < count; i++){
|
|
2213
|
-
var index =
|
|
2214
|
-
|
|
2222
|
+
var index = baseOffset + i * stride;
|
|
2223
|
+
vertices[i] = new Vector3(buffer[index] * factor, buffer[index + 1] * factor, buffer[index + 2] * factor);
|
|
2215
2224
|
}
|
|
2216
|
-
return
|
|
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;
|
|
2225
|
+
return vertices;
|
|
2271
2226
|
};
|
|
2272
2227
|
GLTFUtils.getBufferViewData = function getBufferViewData(bufferView, buffers) {
|
|
2273
2228
|
var _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset;
|
|
@@ -3582,16 +3537,16 @@ var KTX2Transcoder;
|
|
|
3582
3537
|
var frame = restoreInfo.blendShape.frames[0];
|
|
3583
3538
|
var position = restoreInfo.position;
|
|
3584
3539
|
var positionData = _this._getBufferData(buffers, position.buffer);
|
|
3585
|
-
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.
|
|
3540
|
+
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.byteOffset, position.count, position.normalized, position.componentType);
|
|
3586
3541
|
if (restoreInfo.normal) {
|
|
3587
3542
|
var normal = restoreInfo.normal;
|
|
3588
3543
|
var normalData = _this._getBufferData(buffers, normal.buffer);
|
|
3589
|
-
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.
|
|
3544
|
+
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.byteOffset, normal.count, normal.normalized, normal.componentType);
|
|
3590
3545
|
}
|
|
3591
3546
|
if (restoreInfo.tangent) {
|
|
3592
3547
|
var tangent = restoreInfo.tangent;
|
|
3593
3548
|
var tangentData = _this._getBufferData(buffers, tangent.buffer);
|
|
3594
|
-
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.
|
|
3549
|
+
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.byteOffset, tangent.count, tangent.normalized, tangent.componentType);
|
|
3595
3550
|
}
|
|
3596
3551
|
}
|
|
3597
3552
|
mesh.uploadData(true);
|
|
@@ -3603,8 +3558,13 @@ var KTX2Transcoder;
|
|
|
3603
3558
|
};
|
|
3604
3559
|
_proto._getBufferData = function _getBufferData(buffers, restoreInfo) {
|
|
3605
3560
|
var main = restoreInfo.main;
|
|
3606
|
-
var
|
|
3607
|
-
|
|
3561
|
+
var data;
|
|
3562
|
+
if (main) {
|
|
3563
|
+
var buffer = buffers[main.bufferIndex];
|
|
3564
|
+
data = new main.TypedArray(buffer, main.byteOffset, main.length);
|
|
3565
|
+
} else {
|
|
3566
|
+
data = new main.TypedArray(main.length);
|
|
3567
|
+
}
|
|
3608
3568
|
var sparseCount = restoreInfo.sparseCount;
|
|
3609
3569
|
if (sparseCount) {
|
|
3610
3570
|
var sparseIndex = restoreInfo.sparseIndices;
|
|
@@ -3677,11 +3637,12 @@ var KTX2Transcoder;
|
|
|
3677
3637
|
};
|
|
3678
3638
|
/**
|
|
3679
3639
|
* @internal
|
|
3680
|
-
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer,
|
|
3640
|
+
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer, byteOffset, count, normalized, componentType) {
|
|
3681
3641
|
this.buffer = buffer;
|
|
3682
|
-
this.stride = stride;
|
|
3683
3642
|
this.byteOffset = byteOffset;
|
|
3684
3643
|
this.count = count;
|
|
3644
|
+
this.normalized = normalized;
|
|
3645
|
+
this.componentType = componentType;
|
|
3685
3646
|
};
|
|
3686
3647
|
|
|
3687
3648
|
/**
|
|
@@ -4307,23 +4268,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
4307
4268
|
var meshRestoreInfo = new ModelMeshRestoreInfo();
|
|
4308
4269
|
meshRestoreInfo.mesh = mesh1;
|
|
4309
4270
|
context.contentRestorer.meshes.push(meshRestoreInfo);
|
|
4310
|
-
GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF,
|
|
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);
|
|
4271
|
+
GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve);
|
|
4327
4272
|
}
|
|
4328
4273
|
});
|
|
4329
4274
|
};
|
|
@@ -4336,7 +4281,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
4336
4281
|
};
|
|
4337
4282
|
/**
|
|
4338
4283
|
* @internal
|
|
4339
|
-
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf,
|
|
4284
|
+
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, keepMeshData) {
|
|
4340
4285
|
var _loop = function(attribute) {
|
|
4341
4286
|
var accessor = accessors[attributes[attribute]];
|
|
4342
4287
|
var promise = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor).then(function(accessorBuffer) {
|
|
@@ -4431,61 +4376,68 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
4431
4376
|
}
|
|
4432
4377
|
// BlendShapes
|
|
4433
4378
|
if (targets) {
|
|
4434
|
-
promises.push(GLTFMeshParser._createBlendShape(mesh, meshRestoreInfo, gltfMesh,
|
|
4379
|
+
promises.push(GLTFMeshParser._createBlendShape(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, targets));
|
|
4435
4380
|
}
|
|
4436
4381
|
return Promise.all(promises).then(function() {
|
|
4437
4382
|
mesh.uploadData(!keepMeshData);
|
|
4438
|
-
return
|
|
4383
|
+
return mesh;
|
|
4439
4384
|
});
|
|
4440
4385
|
});
|
|
4441
4386
|
};
|
|
4387
|
+
GLTFMeshParser1._getBlendShapeData = function _getBlendShapeData(context, glTF, accessor) {
|
|
4388
|
+
return GLTFUtils.getAccessorBuffer(context, glTF.bufferViews, accessor).then(function(bufferInfo) {
|
|
4389
|
+
var buffer = bufferInfo.data;
|
|
4390
|
+
var _accessor_byteOffset;
|
|
4391
|
+
var byteOffset = bufferInfo.interleaved ? ((_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0) % bufferInfo.stride : 0;
|
|
4392
|
+
var count = accessor.count, normalized = accessor.normalized, componentType = accessor.componentType;
|
|
4393
|
+
var vertices = GLTFUtils.bufferToVector3Array(buffer, byteOffset, count, normalized, componentType);
|
|
4394
|
+
var restoreInfo = new BlendShapeDataRestoreInfo(bufferInfo.restoreInfo, byteOffset, count, normalized, componentType);
|
|
4395
|
+
return {
|
|
4396
|
+
vertices: vertices,
|
|
4397
|
+
restoreInfo: restoreInfo
|
|
4398
|
+
};
|
|
4399
|
+
});
|
|
4400
|
+
};
|
|
4442
4401
|
/**
|
|
4443
4402
|
* @internal
|
|
4444
|
-
*/ GLTFMeshParser1._createBlendShape = function _createBlendShape(mesh, meshRestoreInfo, glTFMesh,
|
|
4445
|
-
var _loop = function(i
|
|
4403
|
+
*/ GLTFMeshParser1._createBlendShape = function _createBlendShape(context, mesh, meshRestoreInfo, glTFMesh, gltfPrimitive, glTFTargets) {
|
|
4404
|
+
var _this = this, _loop = function(i) {
|
|
4405
|
+
var blendShapeData = {};
|
|
4406
|
+
blendShapeCollection[i] = blendShapeData;
|
|
4446
4407
|
var name = blendShapeNames ? blendShapeNames[i] : "blendShape" + i;
|
|
4408
|
+
var targets = gltfPrimitive.targets[i];
|
|
4409
|
+
var normalTarget = targets["NORMAL"];
|
|
4410
|
+
var tangentTarget = targets["TANGENT"];
|
|
4411
|
+
var hasNormal = normalTarget !== undefined;
|
|
4412
|
+
var hasTangent = tangentTarget !== undefined;
|
|
4447
4413
|
var promise = Promise.all([
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
]).then(function(
|
|
4452
|
-
var
|
|
4453
|
-
var
|
|
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
|
-
}
|
|
4414
|
+
_this._getBlendShapeData(context, glTF, accessors[targets["POSITION"]]),
|
|
4415
|
+
hasNormal ? _this._getBlendShapeData(context, glTF, accessors[normalTarget]) : null,
|
|
4416
|
+
hasTangent ? _this._getBlendShapeData(context, glTF, accessors[tangentTarget]) : null
|
|
4417
|
+
]).then(function(vertices) {
|
|
4418
|
+
var _tangentData;
|
|
4419
|
+
var positionData = vertices[0], normalData = vertices[1], tangentData = vertices[2];
|
|
4477
4420
|
var blendShape = new BlendShape(name);
|
|
4478
|
-
blendShape.addFrame(1.0,
|
|
4479
|
-
|
|
4480
|
-
|
|
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));
|
|
4421
|
+
blendShape.addFrame(1.0, positionData.vertices, hasNormal ? normalData.vertices : null, hasTangent ? tangentData.vertices : null);
|
|
4422
|
+
blendShapeData.blendShape = blendShape;
|
|
4423
|
+
blendShapeData.restoreInfo = new BlendShapeRestoreInfo(blendShape, positionData.restoreInfo, hasNormal ? normalData.restoreInfo : null, hasTangent ? (_tangentData = tangentData) == null ? void 0 : _tangentData.restoreInfo : null);
|
|
4482
4424
|
});
|
|
4483
4425
|
promises.push(promise);
|
|
4484
4426
|
};
|
|
4427
|
+
var glTF = context.glTF;
|
|
4428
|
+
var accessors = glTF.accessors;
|
|
4485
4429
|
var blendShapeNames = glTFMesh.extras ? glTFMesh.extras.targetNames : null;
|
|
4486
4430
|
var promises = new Array();
|
|
4487
|
-
|
|
4488
|
-
|
|
4431
|
+
var blendShapeCount = glTFTargets.length;
|
|
4432
|
+
var blendShapeCollection = new Array(blendShapeCount);
|
|
4433
|
+
for(var i = 0; i < blendShapeCount; i++)_loop(i);
|
|
4434
|
+
return Promise.all(promises).then(function() {
|
|
4435
|
+
for(var _iterator = _create_for_of_iterator_helper_loose(blendShapeCollection), _step; !(_step = _iterator()).done;){
|
|
4436
|
+
var blendShape = _step.value;
|
|
4437
|
+
mesh.addBlendShape(blendShape.blendShape);
|
|
4438
|
+
meshRestoreInfo.blendShapes.push(blendShape.restoreInfo);
|
|
4439
|
+
}
|
|
4440
|
+
});
|
|
4489
4441
|
};
|
|
4490
4442
|
return GLTFMeshParser1;
|
|
4491
4443
|
}(GLTFParser), function() {
|