@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/module.js
CHANGED
|
@@ -1002,9 +1002,9 @@ var HierarchyParser = /*#__PURE__*/ function() {
|
|
|
1002
1002
|
}
|
|
1003
1003
|
components.set(path + ":" + name + "/" + componentIndexMap[name]++, component);
|
|
1004
1004
|
});
|
|
1005
|
-
for(var i = 0
|
|
1005
|
+
for(var i = 0, n = entity.children.length; i < n; i++){
|
|
1006
1006
|
var child = entity.children[i];
|
|
1007
|
-
var childPath = path ? path + "/" +
|
|
1007
|
+
var childPath = path ? path + "/" + i : "" + i;
|
|
1008
1008
|
this._traverseAddEntityToMap(child, context, childPath);
|
|
1009
1009
|
}
|
|
1010
1010
|
};
|
|
@@ -2160,111 +2160,68 @@ function registerGLTFParser(pipeline) {
|
|
|
2160
2160
|
};
|
|
2161
2161
|
GLTFUtils.getAccessorBuffer = function getAccessorBuffer(context, bufferViews, accessor) {
|
|
2162
2162
|
var componentType = accessor.componentType;
|
|
2163
|
-
var
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
var
|
|
2171
|
-
var
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
var
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
var
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2163
|
+
var TypedArray = GLTFUtils.getComponentType(componentType);
|
|
2164
|
+
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
2165
|
+
var dataElementBytes = TypedArray.BYTES_PER_ELEMENT;
|
|
2166
|
+
var elementStride = dataElementSize * dataElementBytes;
|
|
2167
|
+
var accessorCount = accessor.count;
|
|
2168
|
+
var promise;
|
|
2169
|
+
if (accessor.bufferView !== undefined) {
|
|
2170
|
+
var bufferViewIndex = accessor.bufferView;
|
|
2171
|
+
var bufferView = bufferViews[bufferViewIndex];
|
|
2172
|
+
promise = context.get(GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
|
|
2173
|
+
var bufferIndex = bufferView.buffer;
|
|
2174
|
+
var _bufferViewData_byteOffset;
|
|
2175
|
+
var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
|
|
2176
|
+
var _accessor_byteOffset;
|
|
2177
|
+
var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
|
|
2178
|
+
var bufferStride = bufferView.byteStride;
|
|
2179
|
+
var bufferInfo;
|
|
2180
|
+
// According to the glTF official documentation only byteStride not undefined is allowed
|
|
2181
|
+
if (bufferStride !== undefined && bufferStride !== elementStride) {
|
|
2182
|
+
var bufferSlice = Math.floor(byteOffset / bufferStride);
|
|
2183
|
+
var bufferCacheKey = bufferViewIndex + ":" + componentType + ":" + bufferSlice + ":" + accessorCount;
|
|
2184
|
+
var accessorBufferCache = context.accessorBufferCache;
|
|
2185
|
+
bufferInfo = accessorBufferCache[bufferCacheKey];
|
|
2186
|
+
if (!bufferInfo) {
|
|
2187
|
+
var offset = bufferByteOffset + bufferSlice * bufferStride;
|
|
2188
|
+
var count = accessorCount * (bufferStride / dataElementBytes);
|
|
2189
|
+
var data = new TypedArray(bufferViewData.buffer, offset, count);
|
|
2190
|
+
accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
|
|
2191
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
|
|
2192
|
+
}
|
|
2193
|
+
} else {
|
|
2194
|
+
var offset1 = bufferByteOffset + byteOffset;
|
|
2195
|
+
var count1 = accessorCount * dataElementSize;
|
|
2196
|
+
var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
|
|
2197
|
+
bufferInfo = new BufferInfo(data1, false, elementStride);
|
|
2198
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
|
|
2189
2199
|
}
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
});
|
|
2200
|
+
return bufferInfo;
|
|
2201
|
+
});
|
|
2202
|
+
} else {
|
|
2203
|
+
var count = accessorCount * dataElementSize;
|
|
2204
|
+
var data = new TypedArray(count);
|
|
2205
|
+
var bufferInfo = new BufferInfo(data, false, elementStride);
|
|
2206
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(undefined, TypedArray, undefined, count));
|
|
2207
|
+
promise = Promise.resolve(bufferInfo);
|
|
2208
|
+
}
|
|
2209
|
+
return accessor.sparse ? promise.then(function(bufferInfo) {
|
|
2210
|
+
return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
|
|
2211
|
+
return bufferInfo;
|
|
2212
|
+
});
|
|
2213
|
+
}) : promise;
|
|
2204
2214
|
};
|
|
2205
|
-
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(
|
|
2206
|
-
var
|
|
2207
|
-
var
|
|
2208
|
-
var
|
|
2209
|
-
var
|
|
2215
|
+
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(buffer, byteOffset, count, normalized, componentType) {
|
|
2216
|
+
var baseOffset = byteOffset / buffer.BYTES_PER_ELEMENT;
|
|
2217
|
+
var stride = buffer.length / count;
|
|
2218
|
+
var vertices = new Array(count);
|
|
2219
|
+
var factor = normalized ? GLTFUtils.getNormalizedComponentScale(componentType) : 1;
|
|
2210
2220
|
for(var i = 0; i < count; i++){
|
|
2211
|
-
var index =
|
|
2212
|
-
|
|
2221
|
+
var index = baseOffset + i * stride;
|
|
2222
|
+
vertices[i] = new Vector3(buffer[index] * factor, buffer[index + 1] * factor, buffer[index + 2] * factor);
|
|
2213
2223
|
}
|
|
2214
|
-
return
|
|
2215
|
-
};
|
|
2216
|
-
/**
|
|
2217
|
-
* @deprecated
|
|
2218
|
-
* Get accessor data.
|
|
2219
|
-
*/ GLTFUtils.getAccessorData = function getAccessorData(glTF, accessor, buffers) {
|
|
2220
|
-
var bufferViews = glTF.bufferViews;
|
|
2221
|
-
var bufferView = bufferViews[accessor.bufferView];
|
|
2222
|
-
var arrayBuffer = buffers[bufferView.buffer];
|
|
2223
|
-
var accessorByteOffset = accessor.hasOwnProperty("byteOffset") ? accessor.byteOffset : 0;
|
|
2224
|
-
var bufferViewByteOffset = bufferView.hasOwnProperty("byteOffset") ? bufferView.byteOffset : 0;
|
|
2225
|
-
var byteOffset = accessorByteOffset + bufferViewByteOffset;
|
|
2226
|
-
var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
2227
|
-
var length = accessorTypeSize * accessor.count;
|
|
2228
|
-
var _bufferView_byteStride;
|
|
2229
|
-
var byteStride = (_bufferView_byteStride = bufferView.byteStride) != null ? _bufferView_byteStride : 0;
|
|
2230
|
-
var arrayType = GLTFUtils.getComponentType(accessor.componentType);
|
|
2231
|
-
var uint8Array;
|
|
2232
|
-
if (byteStride) {
|
|
2233
|
-
var accessorByteSize = accessorTypeSize * arrayType.BYTES_PER_ELEMENT;
|
|
2234
|
-
uint8Array = new Uint8Array(accessor.count * accessorByteSize);
|
|
2235
|
-
var originalBufferView = new Uint8Array(arrayBuffer, bufferViewByteOffset, bufferView.byteLength);
|
|
2236
|
-
for(var i = 0; i < accessor.count; i++){
|
|
2237
|
-
for(var j = 0; j < accessorByteSize; j++){
|
|
2238
|
-
uint8Array[i * accessorByteSize + j] = originalBufferView[i * byteStride + accessorByteOffset + j];
|
|
2239
|
-
}
|
|
2240
|
-
}
|
|
2241
|
-
} else {
|
|
2242
|
-
uint8Array = new Uint8Array(arrayBuffer.slice(byteOffset, byteOffset + length * arrayType.BYTES_PER_ELEMENT));
|
|
2243
|
-
}
|
|
2244
|
-
var typedArray = new arrayType(uint8Array.buffer);
|
|
2245
|
-
if (accessor.sparse) {
|
|
2246
|
-
var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
|
|
2247
|
-
var indicesBufferView = bufferViews[indices.bufferView];
|
|
2248
|
-
var valuesBufferView = bufferViews[values.bufferView];
|
|
2249
|
-
var indicesArrayBuffer = buffers[indicesBufferView.buffer];
|
|
2250
|
-
var valuesArrayBuffer = buffers[valuesBufferView.buffer];
|
|
2251
|
-
var _indices_byteOffset, _indicesBufferView_byteOffset;
|
|
2252
|
-
var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesBufferView_byteOffset = indicesBufferView.byteOffset) != null ? _indicesBufferView_byteOffset : 0);
|
|
2253
|
-
var indicesByteLength = indicesBufferView.byteLength;
|
|
2254
|
-
var _values_byteOffset, _valuesBufferView_byteOffset;
|
|
2255
|
-
var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesBufferView_byteOffset = valuesBufferView.byteOffset) != null ? _valuesBufferView_byteOffset : 0);
|
|
2256
|
-
var valuesByteLength = valuesBufferView.byteLength;
|
|
2257
|
-
var indicesType = GLTFUtils.getComponentType(indices.componentType);
|
|
2258
|
-
var indicesArray = new indicesType(indicesArrayBuffer, indicesByteOffset, indicesByteLength / indicesType.BYTES_PER_ELEMENT);
|
|
2259
|
-
var valuesArray = new arrayType(valuesArrayBuffer, valuesByteOffset, valuesByteLength / arrayType.BYTES_PER_ELEMENT);
|
|
2260
|
-
for(var i1 = 0; i1 < count; i1++){
|
|
2261
|
-
var replaceIndex = indicesArray[i1];
|
|
2262
|
-
for(var j1 = 0; j1 < accessorTypeSize; j1++){
|
|
2263
|
-
typedArray[replaceIndex * accessorTypeSize + j1] = valuesArray[i1 * accessorTypeSize + j1];
|
|
2264
|
-
}
|
|
2265
|
-
}
|
|
2266
|
-
}
|
|
2267
|
-
return typedArray;
|
|
2224
|
+
return vertices;
|
|
2268
2225
|
};
|
|
2269
2226
|
GLTFUtils.getBufferViewData = function getBufferViewData(bufferView, buffers) {
|
|
2270
2227
|
var _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset;
|
|
@@ -2398,7 +2355,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2398
2355
|
};
|
|
2399
2356
|
/**
|
|
2400
2357
|
* Parse the glb format.
|
|
2401
|
-
*/ GLTFUtils.parseGLB = function parseGLB(context,
|
|
2358
|
+
*/ GLTFUtils.parseGLB = function parseGLB(context, originBuffer) {
|
|
2402
2359
|
var UINT32_LENGTH = 4;
|
|
2403
2360
|
var GLB_HEADER_MAGIC = 0x46546c67; // 'glTF'
|
|
2404
2361
|
var GLB_HEADER_LENGTH = 12;
|
|
@@ -2406,7 +2363,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2406
2363
|
JSON: 0x4e4f534a,
|
|
2407
2364
|
BIN: 0x004e4942
|
|
2408
2365
|
};
|
|
2409
|
-
var dataView = new DataView(
|
|
2366
|
+
var dataView = new DataView(originBuffer);
|
|
2410
2367
|
// read header
|
|
2411
2368
|
var header = {
|
|
2412
2369
|
magic: dataView.getUint32(0, true),
|
|
@@ -2414,8 +2371,9 @@ function registerGLTFParser(pipeline) {
|
|
|
2414
2371
|
length: dataView.getUint32(2 * UINT32_LENGTH, true)
|
|
2415
2372
|
};
|
|
2416
2373
|
if (header.magic !== GLB_HEADER_MAGIC) {
|
|
2417
|
-
|
|
2418
|
-
|
|
2374
|
+
return {
|
|
2375
|
+
originBuffer: originBuffer
|
|
2376
|
+
};
|
|
2419
2377
|
}
|
|
2420
2378
|
// read main data
|
|
2421
2379
|
var chunkLength = dataView.getUint32(GLB_HEADER_LENGTH, true);
|
|
@@ -2425,7 +2383,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2425
2383
|
console.error("Invalid glb chunk type. Expected 0x4E4F534A, found 0x" + chunkType.toString(16));
|
|
2426
2384
|
return null;
|
|
2427
2385
|
}
|
|
2428
|
-
var glTFData = new Uint8Array(
|
|
2386
|
+
var glTFData = new Uint8Array(originBuffer, GLB_HEADER_LENGTH + 2 * UINT32_LENGTH, chunkLength);
|
|
2429
2387
|
var glTF = JSON.parse(Utils.decodeText(glTFData));
|
|
2430
2388
|
// read all buffers
|
|
2431
2389
|
var buffers = [];
|
|
@@ -2439,7 +2397,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2439
2397
|
return null;
|
|
2440
2398
|
}
|
|
2441
2399
|
var currentOffset = byteOffset + 2 * UINT32_LENGTH;
|
|
2442
|
-
var buffer =
|
|
2400
|
+
var buffer = originBuffer.slice(currentOffset, currentOffset + chunkLength);
|
|
2443
2401
|
buffers.push(buffer);
|
|
2444
2402
|
restoreGLBBufferSlice.push(new Vector2(currentOffset, chunkLength));
|
|
2445
2403
|
byteOffset += chunkLength + 2 * UINT32_LENGTH;
|
|
@@ -3578,16 +3536,16 @@ var KTX2Transcoder;
|
|
|
3578
3536
|
var frame = restoreInfo.blendShape.frames[0];
|
|
3579
3537
|
var position = restoreInfo.position;
|
|
3580
3538
|
var positionData = _this._getBufferData(buffers, position.buffer);
|
|
3581
|
-
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.
|
|
3539
|
+
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.byteOffset, position.count, position.normalized, position.componentType);
|
|
3582
3540
|
if (restoreInfo.normal) {
|
|
3583
3541
|
var normal = restoreInfo.normal;
|
|
3584
3542
|
var normalData = _this._getBufferData(buffers, normal.buffer);
|
|
3585
|
-
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.
|
|
3543
|
+
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.byteOffset, normal.count, normal.normalized, normal.componentType);
|
|
3586
3544
|
}
|
|
3587
3545
|
if (restoreInfo.tangent) {
|
|
3588
3546
|
var tangent = restoreInfo.tangent;
|
|
3589
3547
|
var tangentData = _this._getBufferData(buffers, tangent.buffer);
|
|
3590
|
-
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.
|
|
3548
|
+
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.byteOffset, tangent.count, tangent.normalized, tangent.componentType);
|
|
3591
3549
|
}
|
|
3592
3550
|
}
|
|
3593
3551
|
mesh.uploadData(true);
|
|
@@ -3599,8 +3557,13 @@ var KTX2Transcoder;
|
|
|
3599
3557
|
};
|
|
3600
3558
|
_proto._getBufferData = function _getBufferData(buffers, restoreInfo) {
|
|
3601
3559
|
var main = restoreInfo.main;
|
|
3602
|
-
var
|
|
3603
|
-
|
|
3560
|
+
var data;
|
|
3561
|
+
if (main) {
|
|
3562
|
+
var buffer = buffers[main.bufferIndex];
|
|
3563
|
+
data = new main.TypedArray(buffer, main.byteOffset, main.length);
|
|
3564
|
+
} else {
|
|
3565
|
+
data = new main.TypedArray(main.length);
|
|
3566
|
+
}
|
|
3604
3567
|
var sparseCount = restoreInfo.sparseCount;
|
|
3605
3568
|
if (sparseCount) {
|
|
3606
3569
|
var sparseIndex = restoreInfo.sparseIndices;
|
|
@@ -3673,11 +3636,12 @@ var KTX2Transcoder;
|
|
|
3673
3636
|
};
|
|
3674
3637
|
/**
|
|
3675
3638
|
* @internal
|
|
3676
|
-
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer,
|
|
3639
|
+
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer, byteOffset, count, normalized, componentType) {
|
|
3677
3640
|
this.buffer = buffer;
|
|
3678
|
-
this.stride = stride;
|
|
3679
3641
|
this.byteOffset = byteOffset;
|
|
3680
3642
|
this.count = count;
|
|
3643
|
+
this.normalized = normalized;
|
|
3644
|
+
this.componentType = componentType;
|
|
3681
3645
|
};
|
|
3682
3646
|
|
|
3683
3647
|
/**
|
|
@@ -3853,23 +3817,20 @@ var GLTFSchemaParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3853
3817
|
var requestConfig = {
|
|
3854
3818
|
type: "arraybuffer"
|
|
3855
3819
|
};
|
|
3856
|
-
|
|
3857
|
-
contentRestorer.isGLB = isGLB;
|
|
3858
|
-
var promise = isGLB ? request(url, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(glb) {
|
|
3820
|
+
return request(url, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(buffer) {
|
|
3859
3821
|
restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
|
|
3860
|
-
return GLTFUtils.parseGLB(context,
|
|
3861
|
-
}).then(function(
|
|
3862
|
-
var
|
|
3863
|
-
|
|
3864
|
-
|
|
3865
|
-
|
|
3866
|
-
|
|
3867
|
-
|
|
3868
|
-
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
return url.substring(index + 1, index + 4) === "glb";
|
|
3822
|
+
return GLTFUtils.parseGLB(context, buffer);
|
|
3823
|
+
}).then(function(result) {
|
|
3824
|
+
var _result;
|
|
3825
|
+
if ((_result = result) == null ? void 0 : _result.glTF) {
|
|
3826
|
+
contentRestorer.isGLB = true;
|
|
3827
|
+
context.buffers = result.buffers;
|
|
3828
|
+
return result.glTF;
|
|
3829
|
+
} else {
|
|
3830
|
+
contentRestorer.isGLB = false;
|
|
3831
|
+
return JSON.parse(Utils.decodeText(new Uint8Array(result.originBuffer)));
|
|
3832
|
+
}
|
|
3833
|
+
});
|
|
3873
3834
|
};
|
|
3874
3835
|
return GLTFSchemaParser;
|
|
3875
3836
|
}(GLTFParser);
|
|
@@ -3929,13 +3890,13 @@ var GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3929
3890
|
break;
|
|
3930
3891
|
}
|
|
3931
3892
|
input[input.length - 1];
|
|
3932
|
-
sampleDataCollection
|
|
3893
|
+
sampleDataCollection[j] = {
|
|
3933
3894
|
type: outputAccessor.type,
|
|
3934
3895
|
interpolation: samplerInterpolation,
|
|
3935
3896
|
input: input,
|
|
3936
3897
|
output: output,
|
|
3937
3898
|
outputSize: outputStride
|
|
3938
|
-
}
|
|
3899
|
+
};
|
|
3939
3900
|
});
|
|
3940
3901
|
promises.push(promise);
|
|
3941
3902
|
};
|
|
@@ -3943,11 +3904,12 @@ var GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3943
3904
|
var glTF = context.glTF;
|
|
3944
3905
|
var accessors = glTF.accessors, bufferViews = glTF.bufferViews;
|
|
3945
3906
|
var channels = animationInfo.channels, samplers = animationInfo.samplers;
|
|
3946
|
-
var
|
|
3907
|
+
var len = samplers.length;
|
|
3908
|
+
var sampleDataCollection = new Array(len);
|
|
3947
3909
|
var entities = context.get(GLTFParserType.Entity);
|
|
3948
3910
|
var promises = new Array();
|
|
3949
3911
|
// parse samplers
|
|
3950
|
-
for(var j = 0, m =
|
|
3912
|
+
for(var j = 0, m = len; j < m; j++)_loop(j);
|
|
3951
3913
|
promises.push(context.get(GLTFParserType.Scene));
|
|
3952
3914
|
return Promise.all(promises).then(function() {
|
|
3953
3915
|
for(var j = 0, m = channels.length; j < m; j++){
|
|
@@ -4305,23 +4267,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
4305
4267
|
var meshRestoreInfo = new ModelMeshRestoreInfo();
|
|
4306
4268
|
meshRestoreInfo.mesh = mesh1;
|
|
4307
4269
|
context.contentRestorer.meshes.push(meshRestoreInfo);
|
|
4308
|
-
GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF,
|
|
4309
|
-
return null;
|
|
4310
|
-
}, function(attributeName, shapeIndex) {
|
|
4311
|
-
var shapeAccessorIdx = gltfPrimitive.targets[shapeIndex];
|
|
4312
|
-
var attributeAccessorIdx = shapeAccessorIdx[attributeName];
|
|
4313
|
-
if (attributeAccessorIdx) {
|
|
4314
|
-
var accessor = glTF.accessors[attributeAccessorIdx];
|
|
4315
|
-
return GLTFUtils.getAccessorBuffer(context, context.glTF.bufferViews, accessor);
|
|
4316
|
-
} else {
|
|
4317
|
-
return null;
|
|
4318
|
-
}
|
|
4319
|
-
}, function() {
|
|
4320
|
-
var indexAccessor = glTF.accessors[gltfPrimitive.indices];
|
|
4321
|
-
return context.get(GLTFParserType.Buffer).then(function(buffers) {
|
|
4322
|
-
return GLTFUtils.getAccessorData(glTF, indexAccessor, buffers);
|
|
4323
|
-
});
|
|
4324
|
-
}, context.params.keepMeshData).then(resolve);
|
|
4270
|
+
GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve);
|
|
4325
4271
|
}
|
|
4326
4272
|
});
|
|
4327
4273
|
};
|
|
@@ -4334,7 +4280,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
4334
4280
|
};
|
|
4335
4281
|
/**
|
|
4336
4282
|
* @internal
|
|
4337
|
-
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf,
|
|
4283
|
+
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, keepMeshData) {
|
|
4338
4284
|
var _loop = function(attribute) {
|
|
4339
4285
|
var accessor = accessors[attributes[attribute]];
|
|
4340
4286
|
var promise = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor).then(function(accessorBuffer) {
|
|
@@ -4429,61 +4375,68 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
4429
4375
|
}
|
|
4430
4376
|
// BlendShapes
|
|
4431
4377
|
if (targets) {
|
|
4432
|
-
promises.push(GLTFMeshParser._createBlendShape(mesh, meshRestoreInfo, gltfMesh,
|
|
4378
|
+
promises.push(GLTFMeshParser._createBlendShape(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, targets));
|
|
4433
4379
|
}
|
|
4434
4380
|
return Promise.all(promises).then(function() {
|
|
4435
4381
|
mesh.uploadData(!keepMeshData);
|
|
4436
|
-
return
|
|
4382
|
+
return mesh;
|
|
4437
4383
|
});
|
|
4438
4384
|
});
|
|
4439
4385
|
};
|
|
4386
|
+
GLTFMeshParser1._getBlendShapeData = function _getBlendShapeData(context, glTF, accessor) {
|
|
4387
|
+
return GLTFUtils.getAccessorBuffer(context, glTF.bufferViews, accessor).then(function(bufferInfo) {
|
|
4388
|
+
var buffer = bufferInfo.data;
|
|
4389
|
+
var _accessor_byteOffset;
|
|
4390
|
+
var byteOffset = bufferInfo.interleaved ? ((_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0) % bufferInfo.stride : 0;
|
|
4391
|
+
var count = accessor.count, normalized = accessor.normalized, componentType = accessor.componentType;
|
|
4392
|
+
var vertices = GLTFUtils.bufferToVector3Array(buffer, byteOffset, count, normalized, componentType);
|
|
4393
|
+
var restoreInfo = new BlendShapeDataRestoreInfo(bufferInfo.restoreInfo, byteOffset, count, normalized, componentType);
|
|
4394
|
+
return {
|
|
4395
|
+
vertices: vertices,
|
|
4396
|
+
restoreInfo: restoreInfo
|
|
4397
|
+
};
|
|
4398
|
+
});
|
|
4399
|
+
};
|
|
4440
4400
|
/**
|
|
4441
4401
|
* @internal
|
|
4442
|
-
*/ GLTFMeshParser1._createBlendShape = function _createBlendShape(mesh, meshRestoreInfo, glTFMesh,
|
|
4443
|
-
var _loop = function(i
|
|
4402
|
+
*/ GLTFMeshParser1._createBlendShape = function _createBlendShape(context, mesh, meshRestoreInfo, glTFMesh, gltfPrimitive, glTFTargets) {
|
|
4403
|
+
var _this = this, _loop = function(i) {
|
|
4404
|
+
var blendShapeData = {};
|
|
4405
|
+
blendShapeCollection[i] = blendShapeData;
|
|
4444
4406
|
var name = blendShapeNames ? blendShapeNames[i] : "blendShape" + i;
|
|
4407
|
+
var targets = gltfPrimitive.targets[i];
|
|
4408
|
+
var normalTarget = targets["NORMAL"];
|
|
4409
|
+
var tangentTarget = targets["TANGENT"];
|
|
4410
|
+
var hasNormal = normalTarget !== undefined;
|
|
4411
|
+
var hasTangent = tangentTarget !== undefined;
|
|
4445
4412
|
var promise = Promise.all([
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
]).then(function(
|
|
4450
|
-
var
|
|
4451
|
-
var
|
|
4452
|
-
var tanBufferInfo = infos[2];
|
|
4453
|
-
var target = glTFTargets[i];
|
|
4454
|
-
var posAccessor;
|
|
4455
|
-
var norAccessor;
|
|
4456
|
-
var tanAccessor;
|
|
4457
|
-
var positions = null;
|
|
4458
|
-
if (posBufferInfo) {
|
|
4459
|
-
posAccessor = accessors[target["POSITION"]];
|
|
4460
|
-
var _posAccessor_byteOffset;
|
|
4461
|
-
positions = GLTFUtils.bufferToVector3Array(posBufferInfo.data, posBufferInfo.stride, (_posAccessor_byteOffset = posAccessor.byteOffset) != null ? _posAccessor_byteOffset : 0, posAccessor.count);
|
|
4462
|
-
}
|
|
4463
|
-
var normals = null;
|
|
4464
|
-
if (norBufferInfo) {
|
|
4465
|
-
norAccessor = accessors[target["NORMAL"]];
|
|
4466
|
-
var _norAccessor_byteOffset;
|
|
4467
|
-
normals = GLTFUtils.bufferToVector3Array(norBufferInfo.data, norBufferInfo.stride, (_norAccessor_byteOffset = norAccessor.byteOffset) != null ? _norAccessor_byteOffset : 0, norAccessor.count);
|
|
4468
|
-
}
|
|
4469
|
-
var tangents = null;
|
|
4470
|
-
if (tanBufferInfo) {
|
|
4471
|
-
tanAccessor = accessors[target["NORMAL"]];
|
|
4472
|
-
var _tanAccessor_byteOffset;
|
|
4473
|
-
tangents = GLTFUtils.bufferToVector3Array(tanBufferInfo.data, tanBufferInfo.stride, (_tanAccessor_byteOffset = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset : 0, tanAccessor.count);
|
|
4474
|
-
}
|
|
4413
|
+
_this._getBlendShapeData(context, glTF, accessors[targets["POSITION"]]),
|
|
4414
|
+
hasNormal ? _this._getBlendShapeData(context, glTF, accessors[normalTarget]) : null,
|
|
4415
|
+
hasTangent ? _this._getBlendShapeData(context, glTF, accessors[tangentTarget]) : null
|
|
4416
|
+
]).then(function(vertices) {
|
|
4417
|
+
var _tangentData;
|
|
4418
|
+
var positionData = vertices[0], normalData = vertices[1], tangentData = vertices[2];
|
|
4475
4419
|
var blendShape = new BlendShape(name);
|
|
4476
|
-
blendShape.addFrame(1.0,
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
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));
|
|
4420
|
+
blendShape.addFrame(1.0, positionData.vertices, hasNormal ? normalData.vertices : null, hasTangent ? tangentData.vertices : null);
|
|
4421
|
+
blendShapeData.blendShape = blendShape;
|
|
4422
|
+
blendShapeData.restoreInfo = new BlendShapeRestoreInfo(blendShape, positionData.restoreInfo, hasNormal ? normalData.restoreInfo : null, hasTangent ? (_tangentData = tangentData) == null ? void 0 : _tangentData.restoreInfo : null);
|
|
4480
4423
|
});
|
|
4481
4424
|
promises.push(promise);
|
|
4482
4425
|
};
|
|
4426
|
+
var glTF = context.glTF;
|
|
4427
|
+
var accessors = glTF.accessors;
|
|
4483
4428
|
var blendShapeNames = glTFMesh.extras ? glTFMesh.extras.targetNames : null;
|
|
4484
4429
|
var promises = new Array();
|
|
4485
|
-
|
|
4486
|
-
|
|
4430
|
+
var blendShapeCount = glTFTargets.length;
|
|
4431
|
+
var blendShapeCollection = new Array(blendShapeCount);
|
|
4432
|
+
for(var i = 0; i < blendShapeCount; i++)_loop(i);
|
|
4433
|
+
return Promise.all(promises).then(function() {
|
|
4434
|
+
for(var _iterator = _create_for_of_iterator_helper_loose(blendShapeCollection), _step; !(_step = _iterator()).done;){
|
|
4435
|
+
var blendShape = _step.value;
|
|
4436
|
+
mesh.addBlendShape(blendShape.blendShape);
|
|
4437
|
+
meshRestoreInfo.blendShapes.push(blendShape.restoreInfo);
|
|
4438
|
+
}
|
|
4439
|
+
});
|
|
4487
4440
|
};
|
|
4488
4441
|
return GLTFMeshParser1;
|
|
4489
4442
|
}(GLTFParser), function() {
|
|
@@ -4928,7 +4881,7 @@ var MeshoptDecoder = function() {
|
|
|
4928
4881
|
return worker;
|
|
4929
4882
|
};
|
|
4930
4883
|
var initWorkers = function initWorkers(count) {
|
|
4931
|
-
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();})
|
|
4884
|
+
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 }';
|
|
4932
4885
|
var blob = new Blob([
|
|
4933
4886
|
source
|
|
4934
4887
|
], {
|
|
@@ -4967,30 +4920,6 @@ var MeshoptDecoder = function() {
|
|
|
4967
4920
|
]);
|
|
4968
4921
|
});
|
|
4969
4922
|
};
|
|
4970
|
-
var workerProcess = function workerProcess(event) {
|
|
4971
|
-
ready.then(function() {
|
|
4972
|
-
var data = event.data;
|
|
4973
|
-
try {
|
|
4974
|
-
var target = new Uint8Array(data.count * data.size);
|
|
4975
|
-
decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);
|
|
4976
|
-
self.postMessage({
|
|
4977
|
-
id: data.id,
|
|
4978
|
-
count: data.count,
|
|
4979
|
-
action: "resolve",
|
|
4980
|
-
value: target
|
|
4981
|
-
}, [
|
|
4982
|
-
target.buffer
|
|
4983
|
-
]);
|
|
4984
|
-
} catch (error) {
|
|
4985
|
-
self.postMessage({
|
|
4986
|
-
id: data.id,
|
|
4987
|
-
count: data.count,
|
|
4988
|
-
action: "reject",
|
|
4989
|
-
value: error
|
|
4990
|
-
});
|
|
4991
|
-
}
|
|
4992
|
-
});
|
|
4993
|
-
};
|
|
4994
4923
|
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";
|
|
4995
4924
|
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";
|
|
4996
4925
|
var wasmpack = new Uint8Array([
|
|
@@ -6274,7 +6203,7 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
6274
6203
|
// parse ambient light
|
|
6275
6204
|
var ambient = data.scene.ambient;
|
|
6276
6205
|
if (ambient) {
|
|
6277
|
-
var useCustomAmbient = ambient.specularMode ===
|
|
6206
|
+
var useCustomAmbient = ambient.specularMode === SpecularMode.Custom;
|
|
6278
6207
|
var useSH = ambient.diffuseMode === DiffuseMode.SphericalHarmonics;
|
|
6279
6208
|
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
6280
6209
|
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
@@ -6302,6 +6231,7 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
6302
6231
|
}));
|
|
6303
6232
|
}
|
|
6304
6233
|
}
|
|
6234
|
+
// parse background
|
|
6305
6235
|
var background = data.scene.background;
|
|
6306
6236
|
scene.background.mode = background.mode;
|
|
6307
6237
|
switch(scene.background.mode){
|
|
@@ -6345,6 +6275,17 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
6345
6275
|
var _shadow_shadowTwoCascadeSplits;
|
|
6346
6276
|
scene.shadowTwoCascadeSplits = (_shadow_shadowTwoCascadeSplits = shadow.shadowTwoCascadeSplits) != null ? _shadow_shadowTwoCascadeSplits : scene.shadowTwoCascadeSplits;
|
|
6347
6277
|
shadow.shadowFourCascadeSplits && scene.shadowFourCascadeSplits.copyFrom(shadow.shadowFourCascadeSplits);
|
|
6278
|
+
var _shadow_shadowFadeBorder;
|
|
6279
|
+
scene.shadowFadeBorder = (_shadow_shadowFadeBorder = shadow.shadowFadeBorder) != null ? _shadow_shadowFadeBorder : scene.shadowFadeBorder;
|
|
6280
|
+
}
|
|
6281
|
+
// parse fog
|
|
6282
|
+
var fog = data.scene.fog;
|
|
6283
|
+
if (fog) {
|
|
6284
|
+
if (fog.fogMode != undefined) scene.fogMode = fog.fogMode;
|
|
6285
|
+
if (fog.fogStart != undefined) scene.fogStart = fog.fogStart;
|
|
6286
|
+
if (fog.fogEnd != undefined) scene.fogEnd = fog.fogEnd;
|
|
6287
|
+
if (fog.fogDensity != undefined) scene.fogDensity = fog.fogDensity;
|
|
6288
|
+
if (fog.fogColor != undefined) scene.fogColor.copyFrom(fog.fogColor);
|
|
6348
6289
|
}
|
|
6349
6290
|
return Promise.all(promises).then(function() {
|
|
6350
6291
|
resolve(scene);
|