@galacean/engine-loader 1.2.0-alpha.9 → 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 +160 -219
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +160 -219
- package/dist/module.js +160 -219
- 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 +5 -9
- package/types/gltf/parser/GLTFMeshParser.d.ts +7 -6
- package/types/gltf/parser/GLTFSchemaParser.d.ts +0 -1
- package/types/resource-deserialize/resources/schema/SceneSchema.d.ts +9 -1
package/dist/main.js
CHANGED
|
@@ -1006,9 +1006,9 @@ var HierarchyParser = /*#__PURE__*/ function() {
|
|
|
1006
1006
|
}
|
|
1007
1007
|
components.set(path + ":" + name + "/" + componentIndexMap[name]++, component);
|
|
1008
1008
|
});
|
|
1009
|
-
for(var i = 0
|
|
1009
|
+
for(var i = 0, n = entity.children.length; i < n; i++){
|
|
1010
1010
|
var child = entity.children[i];
|
|
1011
|
-
var childPath = path ? path + "/" +
|
|
1011
|
+
var childPath = path ? path + "/" + i : "" + i;
|
|
1012
1012
|
this._traverseAddEntityToMap(child, context, childPath);
|
|
1013
1013
|
}
|
|
1014
1014
|
};
|
|
@@ -2164,111 +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
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
var
|
|
2175
|
-
var
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
var
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
var
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
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));
|
|
2193
2203
|
}
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
});
|
|
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;
|
|
2208
2218
|
};
|
|
2209
|
-
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(
|
|
2210
|
-
var
|
|
2211
|
-
var
|
|
2212
|
-
var
|
|
2213
|
-
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;
|
|
2214
2224
|
for(var i = 0; i < count; i++){
|
|
2215
|
-
var index =
|
|
2216
|
-
|
|
2225
|
+
var index = baseOffset + i * stride;
|
|
2226
|
+
vertices[i] = new engineMath.Vector3(buffer[index] * factor, buffer[index + 1] * factor, buffer[index + 2] * factor);
|
|
2217
2227
|
}
|
|
2218
|
-
return
|
|
2219
|
-
};
|
|
2220
|
-
/**
|
|
2221
|
-
* @deprecated
|
|
2222
|
-
* Get accessor data.
|
|
2223
|
-
*/ GLTFUtils.getAccessorData = function getAccessorData(glTF, accessor, buffers) {
|
|
2224
|
-
var bufferViews = glTF.bufferViews;
|
|
2225
|
-
var bufferView = bufferViews[accessor.bufferView];
|
|
2226
|
-
var arrayBuffer = buffers[bufferView.buffer];
|
|
2227
|
-
var accessorByteOffset = accessor.hasOwnProperty("byteOffset") ? accessor.byteOffset : 0;
|
|
2228
|
-
var bufferViewByteOffset = bufferView.hasOwnProperty("byteOffset") ? bufferView.byteOffset : 0;
|
|
2229
|
-
var byteOffset = accessorByteOffset + bufferViewByteOffset;
|
|
2230
|
-
var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
2231
|
-
var length = accessorTypeSize * accessor.count;
|
|
2232
|
-
var _bufferView_byteStride;
|
|
2233
|
-
var byteStride = (_bufferView_byteStride = bufferView.byteStride) != null ? _bufferView_byteStride : 0;
|
|
2234
|
-
var arrayType = GLTFUtils.getComponentType(accessor.componentType);
|
|
2235
|
-
var uint8Array;
|
|
2236
|
-
if (byteStride) {
|
|
2237
|
-
var accessorByteSize = accessorTypeSize * arrayType.BYTES_PER_ELEMENT;
|
|
2238
|
-
uint8Array = new Uint8Array(accessor.count * accessorByteSize);
|
|
2239
|
-
var originalBufferView = new Uint8Array(arrayBuffer, bufferViewByteOffset, bufferView.byteLength);
|
|
2240
|
-
for(var i = 0; i < accessor.count; i++){
|
|
2241
|
-
for(var j = 0; j < accessorByteSize; j++){
|
|
2242
|
-
uint8Array[i * accessorByteSize + j] = originalBufferView[i * byteStride + accessorByteOffset + j];
|
|
2243
|
-
}
|
|
2244
|
-
}
|
|
2245
|
-
} else {
|
|
2246
|
-
uint8Array = new Uint8Array(arrayBuffer.slice(byteOffset, byteOffset + length * arrayType.BYTES_PER_ELEMENT));
|
|
2247
|
-
}
|
|
2248
|
-
var typedArray = new arrayType(uint8Array.buffer);
|
|
2249
|
-
if (accessor.sparse) {
|
|
2250
|
-
var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
|
|
2251
|
-
var indicesBufferView = bufferViews[indices.bufferView];
|
|
2252
|
-
var valuesBufferView = bufferViews[values.bufferView];
|
|
2253
|
-
var indicesArrayBuffer = buffers[indicesBufferView.buffer];
|
|
2254
|
-
var valuesArrayBuffer = buffers[valuesBufferView.buffer];
|
|
2255
|
-
var _indices_byteOffset, _indicesBufferView_byteOffset;
|
|
2256
|
-
var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesBufferView_byteOffset = indicesBufferView.byteOffset) != null ? _indicesBufferView_byteOffset : 0);
|
|
2257
|
-
var indicesByteLength = indicesBufferView.byteLength;
|
|
2258
|
-
var _values_byteOffset, _valuesBufferView_byteOffset;
|
|
2259
|
-
var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesBufferView_byteOffset = valuesBufferView.byteOffset) != null ? _valuesBufferView_byteOffset : 0);
|
|
2260
|
-
var valuesByteLength = valuesBufferView.byteLength;
|
|
2261
|
-
var indicesType = GLTFUtils.getComponentType(indices.componentType);
|
|
2262
|
-
var indicesArray = new indicesType(indicesArrayBuffer, indicesByteOffset, indicesByteLength / indicesType.BYTES_PER_ELEMENT);
|
|
2263
|
-
var valuesArray = new arrayType(valuesArrayBuffer, valuesByteOffset, valuesByteLength / arrayType.BYTES_PER_ELEMENT);
|
|
2264
|
-
for(var i1 = 0; i1 < count; i1++){
|
|
2265
|
-
var replaceIndex = indicesArray[i1];
|
|
2266
|
-
for(var j1 = 0; j1 < accessorTypeSize; j1++){
|
|
2267
|
-
typedArray[replaceIndex * accessorTypeSize + j1] = valuesArray[i1 * accessorTypeSize + j1];
|
|
2268
|
-
}
|
|
2269
|
-
}
|
|
2270
|
-
}
|
|
2271
|
-
return typedArray;
|
|
2228
|
+
return vertices;
|
|
2272
2229
|
};
|
|
2273
2230
|
GLTFUtils.getBufferViewData = function getBufferViewData(bufferView, buffers) {
|
|
2274
2231
|
var _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset;
|
|
@@ -2402,7 +2359,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2402
2359
|
};
|
|
2403
2360
|
/**
|
|
2404
2361
|
* Parse the glb format.
|
|
2405
|
-
*/ GLTFUtils.parseGLB = function parseGLB(context,
|
|
2362
|
+
*/ GLTFUtils.parseGLB = function parseGLB(context, originBuffer) {
|
|
2406
2363
|
var UINT32_LENGTH = 4;
|
|
2407
2364
|
var GLB_HEADER_MAGIC = 0x46546c67; // 'glTF'
|
|
2408
2365
|
var GLB_HEADER_LENGTH = 12;
|
|
@@ -2410,7 +2367,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2410
2367
|
JSON: 0x4e4f534a,
|
|
2411
2368
|
BIN: 0x004e4942
|
|
2412
2369
|
};
|
|
2413
|
-
var dataView = new DataView(
|
|
2370
|
+
var dataView = new DataView(originBuffer);
|
|
2414
2371
|
// read header
|
|
2415
2372
|
var header = {
|
|
2416
2373
|
magic: dataView.getUint32(0, true),
|
|
@@ -2418,8 +2375,9 @@ function registerGLTFParser(pipeline) {
|
|
|
2418
2375
|
length: dataView.getUint32(2 * UINT32_LENGTH, true)
|
|
2419
2376
|
};
|
|
2420
2377
|
if (header.magic !== GLB_HEADER_MAGIC) {
|
|
2421
|
-
|
|
2422
|
-
|
|
2378
|
+
return {
|
|
2379
|
+
originBuffer: originBuffer
|
|
2380
|
+
};
|
|
2423
2381
|
}
|
|
2424
2382
|
// read main data
|
|
2425
2383
|
var chunkLength = dataView.getUint32(GLB_HEADER_LENGTH, true);
|
|
@@ -2429,7 +2387,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2429
2387
|
console.error("Invalid glb chunk type. Expected 0x4E4F534A, found 0x" + chunkType.toString(16));
|
|
2430
2388
|
return null;
|
|
2431
2389
|
}
|
|
2432
|
-
var glTFData = new Uint8Array(
|
|
2390
|
+
var glTFData = new Uint8Array(originBuffer, GLB_HEADER_LENGTH + 2 * UINT32_LENGTH, chunkLength);
|
|
2433
2391
|
var glTF = JSON.parse(engineCore.Utils.decodeText(glTFData));
|
|
2434
2392
|
// read all buffers
|
|
2435
2393
|
var buffers = [];
|
|
@@ -2443,7 +2401,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2443
2401
|
return null;
|
|
2444
2402
|
}
|
|
2445
2403
|
var currentOffset = byteOffset + 2 * UINT32_LENGTH;
|
|
2446
|
-
var buffer =
|
|
2404
|
+
var buffer = originBuffer.slice(currentOffset, currentOffset + chunkLength);
|
|
2447
2405
|
buffers.push(buffer);
|
|
2448
2406
|
restoreGLBBufferSlice.push(new engineMath.Vector2(currentOffset, chunkLength));
|
|
2449
2407
|
byteOffset += chunkLength + 2 * UINT32_LENGTH;
|
|
@@ -3582,16 +3540,16 @@ exports.KTX2Transcoder = void 0;
|
|
|
3582
3540
|
var frame = restoreInfo.blendShape.frames[0];
|
|
3583
3541
|
var position = restoreInfo.position;
|
|
3584
3542
|
var positionData = _this._getBufferData(buffers, position.buffer);
|
|
3585
|
-
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.
|
|
3543
|
+
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.byteOffset, position.count, position.normalized, position.componentType);
|
|
3586
3544
|
if (restoreInfo.normal) {
|
|
3587
3545
|
var normal = restoreInfo.normal;
|
|
3588
3546
|
var normalData = _this._getBufferData(buffers, normal.buffer);
|
|
3589
|
-
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.
|
|
3547
|
+
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.byteOffset, normal.count, normal.normalized, normal.componentType);
|
|
3590
3548
|
}
|
|
3591
3549
|
if (restoreInfo.tangent) {
|
|
3592
3550
|
var tangent = restoreInfo.tangent;
|
|
3593
3551
|
var tangentData = _this._getBufferData(buffers, tangent.buffer);
|
|
3594
|
-
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.
|
|
3552
|
+
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.byteOffset, tangent.count, tangent.normalized, tangent.componentType);
|
|
3595
3553
|
}
|
|
3596
3554
|
}
|
|
3597
3555
|
mesh.uploadData(true);
|
|
@@ -3603,8 +3561,13 @@ exports.KTX2Transcoder = void 0;
|
|
|
3603
3561
|
};
|
|
3604
3562
|
_proto._getBufferData = function _getBufferData(buffers, restoreInfo) {
|
|
3605
3563
|
var main = restoreInfo.main;
|
|
3606
|
-
var
|
|
3607
|
-
|
|
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
|
+
}
|
|
3608
3571
|
var sparseCount = restoreInfo.sparseCount;
|
|
3609
3572
|
if (sparseCount) {
|
|
3610
3573
|
var sparseIndex = restoreInfo.sparseIndices;
|
|
@@ -3677,11 +3640,12 @@ exports.KTX2Transcoder = void 0;
|
|
|
3677
3640
|
};
|
|
3678
3641
|
/**
|
|
3679
3642
|
* @internal
|
|
3680
|
-
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer,
|
|
3643
|
+
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer, byteOffset, count, normalized, componentType) {
|
|
3681
3644
|
this.buffer = buffer;
|
|
3682
|
-
this.stride = stride;
|
|
3683
3645
|
this.byteOffset = byteOffset;
|
|
3684
3646
|
this.count = count;
|
|
3647
|
+
this.normalized = normalized;
|
|
3648
|
+
this.componentType = componentType;
|
|
3685
3649
|
};
|
|
3686
3650
|
|
|
3687
3651
|
/**
|
|
@@ -3857,23 +3821,20 @@ exports.GLTFSchemaParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3857
3821
|
var requestConfig = {
|
|
3858
3822
|
type: "arraybuffer"
|
|
3859
3823
|
};
|
|
3860
|
-
|
|
3861
|
-
contentRestorer.isGLB = isGLB;
|
|
3862
|
-
var promise = isGLB ? engineCore.request(url, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(glb) {
|
|
3824
|
+
return engineCore.request(url, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(buffer) {
|
|
3863
3825
|
restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
|
|
3864
|
-
return GLTFUtils.parseGLB(context,
|
|
3865
|
-
}).then(function(
|
|
3866
|
-
var
|
|
3867
|
-
|
|
3868
|
-
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
return url.substring(index + 1, index + 4) === "glb";
|
|
3826
|
+
return GLTFUtils.parseGLB(context, buffer);
|
|
3827
|
+
}).then(function(result) {
|
|
3828
|
+
var _result;
|
|
3829
|
+
if ((_result = result) == null ? void 0 : _result.glTF) {
|
|
3830
|
+
contentRestorer.isGLB = true;
|
|
3831
|
+
context.buffers = result.buffers;
|
|
3832
|
+
return result.glTF;
|
|
3833
|
+
} else {
|
|
3834
|
+
contentRestorer.isGLB = false;
|
|
3835
|
+
return JSON.parse(engineCore.Utils.decodeText(new Uint8Array(result.originBuffer)));
|
|
3836
|
+
}
|
|
3837
|
+
});
|
|
3877
3838
|
};
|
|
3878
3839
|
return GLTFSchemaParser;
|
|
3879
3840
|
}(GLTFParser);
|
|
@@ -3933,13 +3894,13 @@ exports.GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3933
3894
|
break;
|
|
3934
3895
|
}
|
|
3935
3896
|
input[input.length - 1];
|
|
3936
|
-
sampleDataCollection
|
|
3897
|
+
sampleDataCollection[j] = {
|
|
3937
3898
|
type: outputAccessor.type,
|
|
3938
3899
|
interpolation: samplerInterpolation,
|
|
3939
3900
|
input: input,
|
|
3940
3901
|
output: output,
|
|
3941
3902
|
outputSize: outputStride
|
|
3942
|
-
}
|
|
3903
|
+
};
|
|
3943
3904
|
});
|
|
3944
3905
|
promises.push(promise);
|
|
3945
3906
|
};
|
|
@@ -3947,11 +3908,12 @@ exports.GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3947
3908
|
var glTF = context.glTF;
|
|
3948
3909
|
var accessors = glTF.accessors, bufferViews = glTF.bufferViews;
|
|
3949
3910
|
var channels = animationInfo.channels, samplers = animationInfo.samplers;
|
|
3950
|
-
var
|
|
3911
|
+
var len = samplers.length;
|
|
3912
|
+
var sampleDataCollection = new Array(len);
|
|
3951
3913
|
var entities = context.get(exports.GLTFParserType.Entity);
|
|
3952
3914
|
var promises = new Array();
|
|
3953
3915
|
// parse samplers
|
|
3954
|
-
for(var j = 0, m =
|
|
3916
|
+
for(var j = 0, m = len; j < m; j++)_loop(j);
|
|
3955
3917
|
promises.push(context.get(exports.GLTFParserType.Scene));
|
|
3956
3918
|
return Promise.all(promises).then(function() {
|
|
3957
3919
|
for(var j = 0, m = channels.length; j < m; j++){
|
|
@@ -4309,23 +4271,7 @@ exports.GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1)
|
|
|
4309
4271
|
var meshRestoreInfo = new ModelMeshRestoreInfo();
|
|
4310
4272
|
meshRestoreInfo.mesh = mesh1;
|
|
4311
4273
|
context.contentRestorer.meshes.push(meshRestoreInfo);
|
|
4312
|
-
exports.GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF,
|
|
4313
|
-
return null;
|
|
4314
|
-
}, function(attributeName, shapeIndex) {
|
|
4315
|
-
var shapeAccessorIdx = gltfPrimitive.targets[shapeIndex];
|
|
4316
|
-
var attributeAccessorIdx = shapeAccessorIdx[attributeName];
|
|
4317
|
-
if (attributeAccessorIdx) {
|
|
4318
|
-
var accessor = glTF.accessors[attributeAccessorIdx];
|
|
4319
|
-
return GLTFUtils.getAccessorBuffer(context, context.glTF.bufferViews, accessor);
|
|
4320
|
-
} else {
|
|
4321
|
-
return null;
|
|
4322
|
-
}
|
|
4323
|
-
}, function() {
|
|
4324
|
-
var indexAccessor = glTF.accessors[gltfPrimitive.indices];
|
|
4325
|
-
return context.get(exports.GLTFParserType.Buffer).then(function(buffers) {
|
|
4326
|
-
return GLTFUtils.getAccessorData(glTF, indexAccessor, buffers);
|
|
4327
|
-
});
|
|
4328
|
-
}, context.params.keepMeshData).then(resolve);
|
|
4274
|
+
exports.GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve);
|
|
4329
4275
|
}
|
|
4330
4276
|
});
|
|
4331
4277
|
};
|
|
@@ -4338,7 +4284,7 @@ exports.GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1)
|
|
|
4338
4284
|
};
|
|
4339
4285
|
/**
|
|
4340
4286
|
* @internal
|
|
4341
|
-
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf,
|
|
4287
|
+
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, keepMeshData) {
|
|
4342
4288
|
var _loop = function(attribute) {
|
|
4343
4289
|
var accessor = accessors[attributes[attribute]];
|
|
4344
4290
|
var promise = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor).then(function(accessorBuffer) {
|
|
@@ -4433,61 +4379,68 @@ exports.GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1)
|
|
|
4433
4379
|
}
|
|
4434
4380
|
// BlendShapes
|
|
4435
4381
|
if (targets) {
|
|
4436
|
-
promises.push(exports.GLTFMeshParser._createBlendShape(mesh, meshRestoreInfo, gltfMesh,
|
|
4382
|
+
promises.push(exports.GLTFMeshParser._createBlendShape(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, targets));
|
|
4437
4383
|
}
|
|
4438
4384
|
return Promise.all(promises).then(function() {
|
|
4439
4385
|
mesh.uploadData(!keepMeshData);
|
|
4440
|
-
return
|
|
4386
|
+
return mesh;
|
|
4441
4387
|
});
|
|
4442
4388
|
});
|
|
4443
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
|
+
};
|
|
4444
4404
|
/**
|
|
4445
4405
|
* @internal
|
|
4446
|
-
*/ GLTFMeshParser1._createBlendShape = function _createBlendShape(mesh, meshRestoreInfo, glTFMesh,
|
|
4447
|
-
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;
|
|
4448
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;
|
|
4449
4416
|
var promise = Promise.all([
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
]).then(function(
|
|
4454
|
-
var
|
|
4455
|
-
var
|
|
4456
|
-
var tanBufferInfo = infos[2];
|
|
4457
|
-
var target = glTFTargets[i];
|
|
4458
|
-
var posAccessor;
|
|
4459
|
-
var norAccessor;
|
|
4460
|
-
var tanAccessor;
|
|
4461
|
-
var positions = null;
|
|
4462
|
-
if (posBufferInfo) {
|
|
4463
|
-
posAccessor = accessors[target["POSITION"]];
|
|
4464
|
-
var _posAccessor_byteOffset;
|
|
4465
|
-
positions = GLTFUtils.bufferToVector3Array(posBufferInfo.data, posBufferInfo.stride, (_posAccessor_byteOffset = posAccessor.byteOffset) != null ? _posAccessor_byteOffset : 0, posAccessor.count);
|
|
4466
|
-
}
|
|
4467
|
-
var normals = null;
|
|
4468
|
-
if (norBufferInfo) {
|
|
4469
|
-
norAccessor = accessors[target["NORMAL"]];
|
|
4470
|
-
var _norAccessor_byteOffset;
|
|
4471
|
-
normals = GLTFUtils.bufferToVector3Array(norBufferInfo.data, norBufferInfo.stride, (_norAccessor_byteOffset = norAccessor.byteOffset) != null ? _norAccessor_byteOffset : 0, norAccessor.count);
|
|
4472
|
-
}
|
|
4473
|
-
var tangents = null;
|
|
4474
|
-
if (tanBufferInfo) {
|
|
4475
|
-
tanAccessor = accessors[target["NORMAL"]];
|
|
4476
|
-
var _tanAccessor_byteOffset;
|
|
4477
|
-
tangents = GLTFUtils.bufferToVector3Array(tanBufferInfo.data, tanBufferInfo.stride, (_tanAccessor_byteOffset = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset : 0, tanAccessor.count);
|
|
4478
|
-
}
|
|
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];
|
|
4479
4423
|
var blendShape = new engineCore.BlendShape(name);
|
|
4480
|
-
blendShape.addFrame(1.0,
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
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);
|
|
4484
4427
|
});
|
|
4485
4428
|
promises.push(promise);
|
|
4486
4429
|
};
|
|
4430
|
+
var glTF = context.glTF;
|
|
4431
|
+
var accessors = glTF.accessors;
|
|
4487
4432
|
var blendShapeNames = glTFMesh.extras ? glTFMesh.extras.targetNames : null;
|
|
4488
4433
|
var promises = new Array();
|
|
4489
|
-
|
|
4490
|
-
|
|
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
|
+
});
|
|
4491
4444
|
};
|
|
4492
4445
|
return GLTFMeshParser1;
|
|
4493
4446
|
}(GLTFParser), function() {
|
|
@@ -4932,7 +4885,7 @@ var MeshoptDecoder = function() {
|
|
|
4932
4885
|
return worker;
|
|
4933
4886
|
};
|
|
4934
4887
|
var initWorkers = function initWorkers(count) {
|
|
4935
|
-
var source = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" + ".then(function(result) {instance = result.instance; instance.exports.__wasm_call_ctors();})
|
|
4888
|
+
var source = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" + ".then(function(result) {instance = result.instance; instance.exports.__wasm_call_ctors();});\n" + "self.onmessage = workerProcess;\n" + 'function decode(fun, target, count, size, source, filter) {\n const sbrk = instance.exports.sbrk;\n const count4 = (count + 3) & ~3;\n const tp = sbrk(count4 * size);\n const sp = sbrk(source.length);\n const heap = new Uint8Array(instance.exports.memory.buffer);\n heap.set(source, sp);\n const res = fun(tp, count, size, sp, source.length);\n if (res == 0 && filter) {\n filter(tp, count4, size);\n }\n target.set(heap.subarray(tp, tp + count * size));\n sbrk(tp - sbrk(0));\n if (res != 0) {\n throw new Error("Malformed buffer data: " + res);\n }\n }\n' + 'function workerProcess(event) {\n ready.then(function () {\n const data = event.data;\n try {\n const target = new Uint8Array(data.count * data.size);\n decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);\n self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [target.buffer]);\n } catch (error) {\n self.postMessage({\n id: data.id,\n count: data.count,\n action: "reject",\n value: error\n });\n }\n });\n }';
|
|
4936
4889
|
var blob = new Blob([
|
|
4937
4890
|
source
|
|
4938
4891
|
], {
|
|
@@ -4971,30 +4924,6 @@ var MeshoptDecoder = function() {
|
|
|
4971
4924
|
]);
|
|
4972
4925
|
});
|
|
4973
4926
|
};
|
|
4974
|
-
var workerProcess = function workerProcess(event) {
|
|
4975
|
-
ready.then(function() {
|
|
4976
|
-
var data = event.data;
|
|
4977
|
-
try {
|
|
4978
|
-
var target = new Uint8Array(data.count * data.size);
|
|
4979
|
-
decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);
|
|
4980
|
-
self.postMessage({
|
|
4981
|
-
id: data.id,
|
|
4982
|
-
count: data.count,
|
|
4983
|
-
action: "resolve",
|
|
4984
|
-
value: target
|
|
4985
|
-
}, [
|
|
4986
|
-
target.buffer
|
|
4987
|
-
]);
|
|
4988
|
-
} catch (error) {
|
|
4989
|
-
self.postMessage({
|
|
4990
|
-
id: data.id,
|
|
4991
|
-
count: data.count,
|
|
4992
|
-
action: "reject",
|
|
4993
|
-
value: error
|
|
4994
|
-
});
|
|
4995
|
-
}
|
|
4996
|
-
});
|
|
4997
|
-
};
|
|
4998
4927
|
var wasm_base = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";
|
|
4999
4928
|
var wasm_simd = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";
|
|
5000
4929
|
var wasmpack = new Uint8Array([
|
|
@@ -6278,7 +6207,7 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
6278
6207
|
// parse ambient light
|
|
6279
6208
|
var ambient = data.scene.ambient;
|
|
6280
6209
|
if (ambient) {
|
|
6281
|
-
var useCustomAmbient = ambient.specularMode ===
|
|
6210
|
+
var useCustomAmbient = ambient.specularMode === exports.SpecularMode.Custom;
|
|
6282
6211
|
var useSH = ambient.diffuseMode === engineCore.DiffuseMode.SphericalHarmonics;
|
|
6283
6212
|
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
6284
6213
|
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
@@ -6306,6 +6235,7 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
6306
6235
|
}));
|
|
6307
6236
|
}
|
|
6308
6237
|
}
|
|
6238
|
+
// parse background
|
|
6309
6239
|
var background = data.scene.background;
|
|
6310
6240
|
scene.background.mode = background.mode;
|
|
6311
6241
|
switch(scene.background.mode){
|
|
@@ -6349,6 +6279,17 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
6349
6279
|
var _shadow_shadowTwoCascadeSplits;
|
|
6350
6280
|
scene.shadowTwoCascadeSplits = (_shadow_shadowTwoCascadeSplits = shadow.shadowTwoCascadeSplits) != null ? _shadow_shadowTwoCascadeSplits : scene.shadowTwoCascadeSplits;
|
|
6351
6281
|
shadow.shadowFourCascadeSplits && scene.shadowFourCascadeSplits.copyFrom(shadow.shadowFourCascadeSplits);
|
|
6282
|
+
var _shadow_shadowFadeBorder;
|
|
6283
|
+
scene.shadowFadeBorder = (_shadow_shadowFadeBorder = shadow.shadowFadeBorder) != null ? _shadow_shadowFadeBorder : scene.shadowFadeBorder;
|
|
6284
|
+
}
|
|
6285
|
+
// parse fog
|
|
6286
|
+
var fog = data.scene.fog;
|
|
6287
|
+
if (fog) {
|
|
6288
|
+
if (fog.fogMode != undefined) scene.fogMode = fog.fogMode;
|
|
6289
|
+
if (fog.fogStart != undefined) scene.fogStart = fog.fogStart;
|
|
6290
|
+
if (fog.fogEnd != undefined) scene.fogEnd = fog.fogEnd;
|
|
6291
|
+
if (fog.fogDensity != undefined) scene.fogDensity = fog.fogDensity;
|
|
6292
|
+
if (fog.fogColor != undefined) scene.fogColor.copyFrom(fog.fogColor);
|
|
6352
6293
|
}
|
|
6353
6294
|
return Promise.all(promises).then(function() {
|
|
6354
6295
|
resolve(scene);
|