@galacean/engine 1.3.0-alpha.3 → 1.3.0-beta.6

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/browser.js CHANGED
@@ -8293,7 +8293,7 @@
8293
8293
  var velocity_over_lifetime_module = "#define GLSLIFY 1\n#if defined(RENDERER_VOL_CONSTANT) || defined(RENDERER_VOL_CURVE) || defined(RENDERER_VOL_RANDOM_CONSTANT) || defined(RENDERER_VOL_RANDOM_CURVE)\nuniform int renderer_VOLSpace;\n#if defined(RENDERER_VOL_CONSTANT) || defined(RENDERER_VOL_RANDOM_CONSTANT)\nuniform vec3 renderer_VOLMaxConst;\n#ifdef RENDERER_VOL_RANDOM_CONSTANT\nuniform vec3 renderer_VOLMinConst;\n#endif\n#endif\n#if defined(RENDERER_VOL_CURVE) || defined(RENDERER_VOL_RANDOM_CURVE)\nuniform vec2 renderer_VOLMaxGradientX[4];uniform vec2 renderer_VOLMaxGradientY[4];uniform vec2 renderer_VOLMaxGradientZ[4];\n#ifdef RENDERER_VOL_RANDOM_CURVE\nuniform vec2 renderer_VOLMinGradientX[4];uniform vec2 renderer_VOLMinGradientY[4];uniform vec2 renderer_VOLMinGradientZ[4];\n#endif\n#endif\n#endif\n#if defined(RENDERER_VOL_CONSTANT) || defined(RENDERER_VOL_CURVE) || defined(RENDERER_VOL_RANDOM_CONSTANT) || defined(RENDERER_VOL_RANDOM_CURVE)\nvec3 computeParticleLifeVelocity(in float normalizedAge){vec3 velocity;\n#if defined(RENDERER_VOL_CONSTANT) || defined(RENDERER_VOL_RANDOM_CONSTANT)\nvelocity=renderer_VOLMaxConst;\n#ifdef RENDERER_VOL_RANDOM_CONSTANT\nvelocity=mix(renderer_VOLMinConst,velocity,vec3(a_Random1.y,a_Random1.z,a_Random1.w));\n#endif\n#endif\n#if defined(RENDERER_VOL_CURVE) || defined(RENDERER_VOL_RANDOM_CURVE)\nvelocity=vec3(evaluateParticleCurve(renderer_VOLMaxGradientX,normalizedAge),evaluateParticleCurve(renderer_VOLMaxGradientY,normalizedAge),evaluateParticleCurve(renderer_VOLMaxGradientZ,normalizedAge));\n#endif\n#ifdef RENDERER_VOL_RANDOM_CURVE\nvelocity=vec3(mix(velocity.x,evaluateParticleCurve(renderer_VOLMinGradientX,normalizedAge),a_Random1.y),mix(velocity.y,evaluateParticleCurve(renderer_VOLMinGradientY,normalizedAge),a_Random1.z),mix(velocity.z,evaluateParticleCurve(renderer_VOLMinGradientZ,normalizedAge),a_Random1.w));\n#endif\nreturn velocity;}\n#endif\nvec3 getStartPosition(vec3 startVelocity,float age,vec3 dragData){vec3 startPosition;float lastTime=min(startVelocity.x/dragData.x,age);startPosition=lastTime*(startVelocity-0.5*dragData*lastTime);return startPosition;}vec3 computeParticlePosition(in vec3 startVelocity,in vec3 lifeVelocity,in float age,in float normalizedAge,vec3 gravityVelocity,vec4 worldRotation,vec3 dragData){vec3 startPosition=getStartPosition(startVelocity,age,dragData);vec3 lifePosition;\n#if defined(RENDERER_VOL_CONSTANT) || defined(RENDERER_VOL_CURVE) || defined(RENDERER_VOL_RANDOM_CONSTANT) || defined(RENDERER_VOL_RANDOM_CURVE)\n#if defined(RENDERER_VOL_CONSTANT)|| defined(RENDERER_VOL_RANDOM_CONSTANT)\nlifePosition=lifeVelocity*age;\n#endif\n#if defined(RENDERER_VOL_CURVE) || defined(RENDERER_VOL_RANDOM_CURVE)\nlifePosition=vec3(evaluateParticleCurveCumulative(renderer_VOLMaxGradientX,normalizedAge)evaluateParticleCurveCumulative(renderer_VOLMaxGradientY,normalizedAge),evaluateParticleCurveCumulative(renderer_VOLMaxGradientZ,normalizedAge));\n#ifdef RENDERER_VOL_RANDOM_CURVE\nlifePosition=vec3(mix(evaluateParticleCurveCumulative(renderer_VOLMinGradientX,normalizedAge),lifePosition.x,a_Random1.y),mix(evaluateParticleCurveCumulative(renderer_VOLMinGradientY,normalizedAge),lifePosition.y,a_Random1.z),mix(evaluateParticleCurveCumulative(renderer_VOLMinGradientZ,normalizedAge),lifePosition.z,a_Random1.w));\n#endif\nlifePosition*=vec3(a_ShapePositionStartLifeTime.w);\n#endif\nvec3 finalPosition;if(renderer_VOLSpace==0){finalPosition=rotationByQuaternions(a_ShapePositionStartLifeTime.xyz+startPosition+lifePosition,worldRotation);}else{finalPosition=rotationByQuaternions(a_ShapePositionStartLifeTime.xyz+startPosition,worldRotation)+lifePosition;}\n#else\nvec3 finalPosition=rotationByQuaternions(a_ShapePositionStartLifeTime.xyz+startPosition,worldRotation);\n#endif\nif(renderer_SimulationSpace==0){finalPosition=finalPosition+renderer_WorldPosition;}else if(renderer_SimulationSpace==1){finalPosition=finalPosition+a_SimulationWorldPosition;}finalPosition+=0.5*gravityVelocity*age;return finalPosition;}"; // eslint-disable-line
8294
8294
  var rotation_over_lifetime_module = "#define GLSLIFY 1\n#if defined(RENDERER_ROL_CONSTANT_MODE) || defined(RENDERER_ROL_CURVE_MODE)\n#ifdef RENDERER_ROL_CURVE_MODE\nuniform vec2 renderer_ROLMaxCurveZ[4];\n#ifdef RENDERER_ROL_IS_RANDOM_TWO\nuniform vec2 renderer_ROLMinCurveZ[4];\n#endif\n#else\nuniform vec3 renderer_ROLMaxConst;\n#ifdef RENDERER_ROL_IS_RANDOM_TWO\nuniform vec3 renderer_ROLMinConst;\n#endif\n#endif\n#endif\nfloat computeParticleRotationFloat(in float rotation,in float age,in float normalizedAge){\n#if defined(RENDERER_ROL_CONSTANT_MODE) || defined(RENDERER_ROL_CURVE_MODE)\n#ifdef RENDERER_ROL_CURVE_MODE\nfloat lifeRotation=evaluateParticleCurveCumulative(renderer_ROLMaxCurveZ,normalizedAge);\n#ifdef RENDERER_ROL_IS_RANDOM_TWO\nlifeRotation=mix(evaluateParticleCurveCumulative(renderer_ROLMinCurveZ,normalizedAge),lifeRotation,a_Random0.w);\n#endif\nrotation+=lifeRotation*a_ShapePositionStartLifeTime.w;\n#else\nfloat lifeRotation=renderer_ROLMaxConst.z;\n#ifdef RENDERER_ROL_IS_RANDOM_TWO\nlifeRotation=mix(renderer_ROLMinConst.z,lifeRotation,a_Random0.w);\n#endif\nrotation+=lifeRotation*age;\n#endif\n#endif\nreturn rotation;}\n#if defined(RENDERER_MODE_MESH) && (defined(ROTATION_OVER_LIFETIME) || defined(ROTATION_OVER_LIFETIME_SEPARATE))\nvec3 computeParticleRotationVec3(in vec3 rotation,in float age,in float normalizedAge){\n#ifdef ROTATION_OVER_LIFETIME\n#ifdef ROTATION_OVER_LIFETIME_CONSTANT\nfloat ageRot=u_ROLAngularVelocityConst*age;rotation+=ageRot;\n#endif\n#ifdef ROTATION_OVER_LIFETIME_CURVE\nrotation+=getTotalValueFromGradientFloat(u_ROLAngularVelocityGradient,normalizedAge);\n#endif\n#ifdef ROTATION_OVER_LIFETIME_RANDOM_CONSTANTS\nfloat ageRot=mix(u_ROLAngularVelocityConst,u_ROLAngularVelocityConstMax,a_Random0.w)*age;rotation+=ageRot;\n#endif\n#ifdef ROTATION_OVER_LIFETIME_RANDOM_CURVES\nrotation+=mix(getTotalValueFromGradientFloat(u_ROLAngularVelocityGradient,normalizedAge),getTotalValueFromGradientFloat(u_ROLAngularVelocityGradientMax,normalizedAge),a_Random0.w);\n#endif\n#endif\n#ifdef ROTATION_OVER_LIFETIME_SEPARATE\n#ifdef ROTATION_OVER_LIFETIME_CONSTANT\nvec3 ageRot=u_ROLAngularVelocityConstSeparate*age;rotation+=ageRot;\n#endif\n#ifdef ROTATION_OVER_LIFETIME_CURVE\nrotation+=vec3(getTotalValueFromGradientFloat(u_ROLAngularVelocityGradientX,normalizedAge),getTotalValueFromGradientFloat(u_ROLAngularVelocityGradientY,normalizedAge),getTotalValueFromGradientFloat(u_ROLAngularVelocityGradientZ,normalizedAge));\n#endif\n#ifdef ROTATION_OVER_LIFETIME_RANDOM_CONSTANTS\nvec3 ageRot=mix(u_ROLAngularVelocityConstSeparate,renderer_ROLMaxConst,a_Random0.w)*age;rotation+=ageRot;\n#endif\n#ifdef ROTATION_OVER_LIFETIME_RANDOM_CURVES\nrotation+=vec3(mix(getTotalValueFromGradientFloat(u_ROLAngularVelocityGradientX,normalizedAge),getTotalValueFromGradientFloat(renderer_ROLMaxCurveX,normalizedAge),a_Random0.w),mix(getTotalValueFromGradientFloat(u_ROLAngularVelocityGradientY,normalizedAge),getTotalValueFromGradientFloat(renderer_ROLMaxCurveY,normalizedAge),a_Random0.w),mix(getTotalValueFromGradientFloat(u_ROLAngularVelocityGradientZ,normalizedAge),getTotalValueFromGradientFloat(renderer_ROLMaxCurveZ,normalizedAge),a_Random0.w));\n#endif\n#endif\nreturn rotation;}\n#endif\n"; // eslint-disable-line
8295
8295
  var size_over_lifetime_module = "#define GLSLIFY 1\n#ifdef RENDERER_SOL_CURVE_MODE\nuniform vec2 renderer_SOLMaxCurveX[4];\n#ifdef RENDERER_SOL_IS_SEPARATE\nuniform vec2 renderer_SOLMaxCurveY[4];uniform vec2 renderer_SOLMaxCurveZ[4];\n#endif\n#ifdef RENDERER_SOL_IS_RANDOM_TWO\nuniform vec2 renderer_SOLMinCurveX[4];\n#ifdef RENDERER_SOL_IS_SEPARATE\nuniform vec2 renderer_SOLMinCurveY[4];uniform vec2 renderer_SOLMinCurveZ[4];\n#endif\n#endif\n#endif\nvec2 computeParticleSizeBillboard(in vec2 size,in float normalizedAge){\n#ifdef RENDERER_SOL_CURVE_MODE\nfloat lifeSizeX=evaluateParticleCurve(renderer_SOLMaxCurveX,normalizedAge);\n#ifdef RENDERER_SOL_IS_RANDOM_TWO\nlifeSizeX=mix(evaluateParticleCurve(renderer_SOLMinCurveX,normalizedAge),lifeSizeX,a_Random0.z);\n#endif\n#ifdef RENDERER_SOL_IS_SEPARATE\nfloat lifeSizeY=evaluateParticleCurve(renderer_SOLMaxCurveY,normalizedAge);\n#ifdef RENDERER_SOL_IS_RANDOM_TWO\nlifeSizeY=mix(evaluateParticleCurve(renderer_SOLMinCurveY,normalizedAge),lifeSizeY,a_Random0.z);\n#endif\nsize*=vec2(lifeSizeX,lifeSizeY);\n#else\nsize*=lifeSizeX;\n#endif\n#endif\nreturn size;}\n#ifdef RENDERER_MODE_MESH\nvec3 computeParticleSizeMesh(in vec3 size,in float normalizedAge){\n#ifdef RENDERER_SOL_CURVE\nsize*=evaluateParticleCurve(renderer_SOLMaxCurveX,normalizedAge);\n#endif\n#ifdef RENDERER_SOL_RANDOM_CURVES\nsize*=mix(evaluateParticleCurve(renderer_SOLMaxCurveX,normalizedAge),evaluateParticleCurve(u_SOLSizeGradientMax,normalizedAge),a_Random0.z);\n#endif\n#ifdef RENDERER_SOL_CURVE_SEPARATE\nsize*=vec3(evaluateParticleCurve(renderer_SOLMinCurveX,normalizedAge),evaluateParticleCurve(renderer_SOLMinCurveY,normalizedAge),evaluateParticleCurve(renderer_SOLMinCurveZ,normalizedAge));\n#endif\n#ifdef RENDERER_SOL_RANDOM_CURVES_SEPARATE\nsize*=vec3(mix(evaluateParticleCurve(renderer_SOLMinCurveX,normalizedAge),evaluateParticleCurve(renderer_SOLMaxCurveX,normalizedAge),a_Random0.z),mix(evaluateParticleCurve(renderer_SOLMinCurveY,normalizedAge),evaluateParticleCurve(renderer_SOLMaxCurveY,normalizedAge),a_Random0.z),mix(evaluateParticleCurve(renderer_SOLMinCurveZ,normalizedAge),evaluateParticleCurve(renderer_SOLMaxCurveZ,normalizedAge),a_Random0.z));\n#endif\nreturn size;}\n#endif\n"; // eslint-disable-line
8296
- var color_over_lifetime_module = "#define GLSLIFY 1\n#if defined(RENDERER_COL_GRADIENT) || defined(RENDERER_COL_RANDOM_GRADIENTS)\nuniform vec4 renderer_COLMaxGradientColor[4];uniform vec2 renderer_COLMaxGradientAlpha[4];\n#ifdef RENDERER_COL_RANDOM_GRADIENTS\nuniform vec4 renderer_COLMinGradientColor[4];uniform vec2 renderer_COLMinGradientAlpha[4];\n#endif\nuniform vec4 renderer_COLGradientKeysMaxTime;\n#endif\n#if defined(RENDERER_COL_GRADIENT) || defined(RENDERER_COL_RANDOM_GRADIENTS)\nvec4 evaluateParticleGradient(in vec4 colorKeys[4],in float colorKeysMaxTime,in vec2 alphaKeys[4],in float alphaKeysMaxTime,in float normalizedAge){vec4 value;float alphaAge=min(normalizedAge,alphaKeysMaxTime);for(int i=0;i<4;i++){vec2 key=alphaKeys[i];float time=key.x;if(alphaAge<=time){if(i==0){value.a=colorKeys[0].y;}else{vec2 lastKey=alphaKeys[i-1];float lastTime=lastKey.x;float age=(alphaAge-lastTime)/(time-lastTime);value.a=mix(lastKey.y,key.y,age);}break;}}float colorAge=min(normalizedAge,colorKeysMaxTime);for(int i=0;i<4;i++){vec4 key=colorKeys[i];float time=key.x;if(colorAge<=time){if(i==0){value.rgb=colorKeys[0].yzw;}else{vec4 lastKey=colorKeys[i-1];float lastTime=lastKey.x;float age=(colorAge-lastTime)/(time-lastTime);value.rgb=mix(lastKey.yzw,key.yzw,age);}break;}}return value;}\n#endif\nvec4 computeParticleColor(in vec4 color,in float normalizedAge){\n#if defined(RENDERER_COL_GRADIENT) || defined(RENDERER_COL_RANDOM_GRADIENTS)\nvec4 gradientColor=evaluateParticleGradient(renderer_COLMaxGradientColor,renderer_COLGradientKeysMaxTime.z,renderer_COLMaxGradientAlpha,renderer_COLGradientKeysMaxTime.w,normalizedAge);\n#endif\n#ifdef RENDERER_COL_RANDOM_GRADIENTS\ngradientColor=mix(evaluateParticleGradient(renderer_COLMinGradientColor,renderer_COLGradientKeysMaxTime.x,renderer_COLMinGradientAlpha,renderer_COLGradientKeysMaxTime.y,normalizedAge),gradientColor,a_Random0.y);\n#endif\n#if defined(RENDERER_COL_GRADIENT) || defined(RENDERER_COL_RANDOM_GRADIENTS)\ncolor*=gradientColor;\n#endif\nreturn color;}"; // eslint-disable-line
8296
+ var color_over_lifetime_module = "#define GLSLIFY 1\n#if defined(RENDERER_COL_GRADIENT) || defined(RENDERER_COL_RANDOM_GRADIENTS)\nuniform vec4 renderer_COLMaxGradientColor[4];uniform vec2 renderer_COLMaxGradientAlpha[4];\n#ifdef RENDERER_COL_RANDOM_GRADIENTS\nuniform vec4 renderer_COLMinGradientColor[4];uniform vec2 renderer_COLMinGradientAlpha[4];\n#endif\nuniform vec4 renderer_COLGradientKeysMaxTime;\n#endif\n#if defined(RENDERER_COL_GRADIENT) || defined(RENDERER_COL_RANDOM_GRADIENTS)\nvec4 evaluateParticleGradient(in vec4 colorKeys[4],in float colorKeysMaxTime,in vec2 alphaKeys[4],in float alphaKeysMaxTime,in float normalizedAge){vec4 value;float alphaAge=min(normalizedAge,alphaKeysMaxTime);for(int i=0;i<4;i++){vec2 key=alphaKeys[i];float time=key.x;if(alphaAge<=time){if(i==0){value.a=alphaKeys[0].y;}else{vec2 lastKey=alphaKeys[i-1];float lastTime=lastKey.x;float age=(alphaAge-lastTime)/(time-lastTime);value.a=mix(lastKey.y,key.y,age);}break;}}float colorAge=min(normalizedAge,colorKeysMaxTime);for(int i=0;i<4;i++){vec4 key=colorKeys[i];float time=key.x;if(colorAge<=time){if(i==0){value.rgb=colorKeys[0].yzw;}else{vec4 lastKey=colorKeys[i-1];float lastTime=lastKey.x;float age=(colorAge-lastTime)/(time-lastTime);value.rgb=mix(lastKey.yzw,key.yzw,age);}break;}}return value;}\n#endif\nvec4 computeParticleColor(in vec4 color,in float normalizedAge){\n#if defined(RENDERER_COL_GRADIENT) || defined(RENDERER_COL_RANDOM_GRADIENTS)\nvec4 gradientColor=evaluateParticleGradient(renderer_COLMaxGradientColor,renderer_COLGradientKeysMaxTime.z,renderer_COLMaxGradientAlpha,renderer_COLGradientKeysMaxTime.w,normalizedAge);\n#endif\n#ifdef RENDERER_COL_RANDOM_GRADIENTS\ngradientColor=mix(evaluateParticleGradient(renderer_COLMinGradientColor,renderer_COLGradientKeysMaxTime.x,renderer_COLMinGradientAlpha,renderer_COLGradientKeysMaxTime.y,normalizedAge),gradientColor,a_Random0.y);\n#endif\n#if defined(RENDERER_COL_GRADIENT) || defined(RENDERER_COL_RANDOM_GRADIENTS)\ncolor*=gradientColor;\n#endif\nreturn color;}"; // eslint-disable-line
8297
8297
  var texture_sheet_animation_module = "#define GLSLIFY 1\n#if defined(RENDERER_TSA_FRAME_CURVE) || defined(RENDERER_TSA_FRAME_RANDOM_CURVES)\nuniform float renderer_TSACycles;uniform vec3 renderer_TSATillingParams;uniform vec2 renderer_TSAFrameMaxCurve[4];\n#endif\n#ifdef RENDERER_TSA_FRAME_RANDOM_CURVES\nuniform vec2 renderer_TSAFrameMinCurve[4];\n#endif\nvec2 computeParticleUV(in vec2 uv,in float normalizedAge){\n#if defined(RENDERER_TSA_FRAME_CURVE) || defined(RENDERER_TSA_FRAME_RANDOM_CURVES)\nfloat scaledNormalizedAge=normalizedAge*renderer_TSACycles;float cycleNormalizedAge=scaledNormalizedAge-floor(scaledNormalizedAge);float normalizedFrame=evaluateParticleCurve(renderer_TSAFrameMaxCurve,cycleNormalizedAge);\n#ifdef RENDERER_TSA_FRAME_RANDOM_CURVES\nnormalizedFrame=mix(evaluateParticleCurve(renderer_TSAFrameMinCurve,cycleNormalizedAge),normalizedFrame,a_Random1.x);\n#endif\nfloat frame=floor(normalizedFrame*renderer_TSATillingParams.z);float totalULength=frame*renderer_TSATillingParams.x;float floorTotalULength=floor(totalULength);uv.x+=totalULength-floorTotalULength;uv.y+=floorTotalULength*renderer_TSATillingParams.y;\n#endif\nreturn uv;}"; // eslint-disable-line
8298
8298
  var sphere_billboard = "#define GLSLIFY 1\n#ifdef RENDERER_MODE_SPHERE_BILLBOARD\nvec2 corner=a_CornerTextureCoordinate.xy+renderer_PivotOffset.xy;vec3 sideVector=normalize(cross(camera_Forward,camera_Up));vec3 upVector=normalize(cross(sideVector,camera_Forward));corner*=computeParticleSizeBillboard(a_StartSize.xy,normalizedAge);\n#if defined(RENDERER_ROL_CONSTANT_MODE) || defined(RENDERER_ROL_CURVE_MODE)\nif(renderer_ThreeDStartRotation){vec3 rotation=vec3(a_StartRotation0.xy,computeParticleRotationFloat(a_StartRotation0.z,age,normalizedAge));center+=renderer_SizeScale.xzy*rotationByEuler(corner.x*sideVector+corner.y*upVector,rotation);}else{float rot=computeParticleRotationFloat(a_StartRotation0.x,age,normalizedAge);float c=cos(rot);float s=sin(rot);mat2 rotation=mat2(c,-s,s,c);corner=rotation*corner;center+=renderer_SizeScale.xzy*(corner.x*sideVector+corner.y*upVector);}\n#else\nif(renderer_ThreeDStartRotation){center+=renderer_SizeScale.xzy*rotationByEuler(corner.x*sideVector+corner.y*upVector,a_StartRotation0);}else{float c=cos(a_StartRotation0.x);float s=sin(a_StartRotation0.x);mat2 rotation=mat2(c,-s,s,c);corner=rotation*corner;center+=renderer_SizeScale.xzy*(corner.x*sideVector+corner.y*upVector);}\n#endif\n#endif\n"; // eslint-disable-line
8299
8299
  var stretched_billboard = "#define GLSLIFY 1\n#ifdef RENDERER_MODE_STRETCHED_BILLBOARD\nvec2 corner=a_CornerTextureCoordinate.xy+renderer_PivotOffset.xy;vec3 velocity;\n#if defined(RENDERER_VOL_CONSTANT) || defined(RENDERER_VOL_CURVE) || defined(RENDERER_VOL_RANDOM_CONSTANT) || defined(RENDERER_VOL_RANDOM_CURVE)\nif(renderer_VOLSpace==0){velocity=rotationByQuaternions(renderer_SizeScale*(startVelocity+lifeVelocity),worldRotation)+gravityVelocity;}else{velocity=rotationByQuaternions(renderer_SizeScale*startVelocity,worldRotation)+lifeVelocity+gravityVelocity;}\n#else\nvelocity=rotationByQuaternions(renderer_SizeScale*startVelocity,worldRotation)+gravityVelocity;\n#endif\nvec3 cameraUpVector=normalize(velocity);vec3 direction=normalize(center-camera_Position);vec3 sideVector=normalize(cross(direction,normalize(velocity)));sideVector=renderer_SizeScale.xzy*sideVector;cameraUpVector=length(vec3(renderer_SizeScale.x,0.0,0.0))*cameraUpVector;vec2 size=computeParticleSizeBillboard(a_StartSize.xy,normalizedAge);const mat2 rotationZHalfPI=mat2(0.0,-1.0,1.0,0.0);corner=rotationZHalfPI*corner;corner.y=corner.y-abs(corner.y);float speed=length(velocity);center+=sign(renderer_SizeScale.x)*(sign(renderer_StretchedBillboardLengthScale)*size.x*corner.x*sideVector+(speed*renderer_StretchedBillboardSpeedScale+size.y*renderer_StretchedBillboardLengthScale)*corner.y*cameraUpVector);\n#endif\n"; // eslint-disable-line
@@ -10831,6 +10831,9 @@
10831
10831
  /**
10832
10832
  * @internal
10833
10833
  */ _proto._prepareRender = function _prepareRender(context) {
10834
+ if (this._renderFrameCount !== this.engine.time.frameCount) {
10835
+ this._update(context);
10836
+ }
10834
10837
  var virtualCamera = context.virtualCamera;
10835
10838
  var cameraPosition = virtualCamera.position;
10836
10839
  var boundsCenter = this.bounds.getCenter(exports.Renderer._tempVector0);
@@ -10840,10 +10843,6 @@
10840
10843
  } else {
10841
10844
  this._distanceForSort = Vector3.distanceSquared(boundsCenter, cameraPosition);
10842
10845
  }
10843
- // Update once per frame per renderer, not influenced by batched
10844
- if (this._renderFrameCount !== this.engine.time.frameCount) {
10845
- this._updateRendererShaderData(context);
10846
- }
10847
10846
  this._render(context);
10848
10847
  // union camera global macro and renderer macro.
10849
10848
  ShaderMacroCollection.unionCollection(context.camera._globalShaderMacro, this.shaderData._macroCollection, this._globalShaderMacro);
@@ -10897,7 +10896,9 @@
10897
10896
  /**
10898
10897
  * @internal
10899
10898
  */ _proto._batch = function _batch(elementA, elementB) {};
10900
- _proto._updateRendererShaderData = function _updateRendererShaderData(context) {
10899
+ /**
10900
+ * Update once per frame per renderer, not influenced by batched.
10901
+ */ _proto._update = function _update(context) {
10901
10902
  var layer = this.entity.layer;
10902
10903
  this._rendererLayer.set(layer & 65535, layer >>> 16 & 65535, 0, 0);
10903
10904
  };
@@ -15124,14 +15125,17 @@
15124
15125
  var replacementSubShaders = replacementShader.subShaders;
15125
15126
  var replacementTag = context.replacementTag;
15126
15127
  if (replacementTag) {
15128
+ var replacementSuccess = false;
15127
15129
  for(var j = 0, m = replacementSubShaders.length; j < m; j++){
15128
15130
  var subShader = replacementSubShaders[j];
15129
15131
  if (subShader.getTagValue(replacementTag) === materialSubShader.getTagValue(replacementTag)) {
15130
15132
  this.pushRenderElementByType(renderElement, subRenderElement, subShader.passes, renderStates);
15131
- break;
15133
+ replacementSuccess = true;
15132
15134
  }
15133
15135
  }
15134
- context.replacementFailureStrategy === exports.ReplacementFailureStrategy.KeepOriginalShader && this.pushRenderElementByType(renderElement, subRenderElement, materialSubShader.passes, renderStates);
15136
+ if (!replacementSuccess && context.replacementFailureStrategy === exports.ReplacementFailureStrategy.KeepOriginalShader) {
15137
+ this.pushRenderElementByType(renderElement, subRenderElement, materialSubShader.passes, renderStates);
15138
+ }
15135
15139
  } else {
15136
15140
  this.pushRenderElementByType(renderElement, subRenderElement, replacementSubShaders[0].passes, renderStates);
15137
15141
  }
@@ -15709,7 +15713,7 @@
15709
15713
  if (info) {
15710
15714
  return info;
15711
15715
  }
15712
- info = TextUtils._measureFontOrChar(fontString);
15716
+ info = TextUtils._measureFontOrChar(fontString, TextUtils._measureString, false);
15713
15717
  fontSizeInfoCache[fontString] = info;
15714
15718
  return info;
15715
15719
  };
@@ -15730,7 +15734,7 @@
15730
15734
  return str;
15731
15735
  };
15732
15736
  TextUtils.measureChar = function measureChar(char, fontString) {
15733
- return TextUtils._measureFontOrChar(fontString, char);
15737
+ return TextUtils._measureFontOrChar(fontString, char, true);
15734
15738
  };
15735
15739
  TextUtils.measureTextWithWrap = function measureTextWithWrap(renderer) {
15736
15740
  var subFont = renderer._getSubFont();
@@ -15949,15 +15953,15 @@
15949
15953
  };
15950
15954
  /**
15951
15955
  * @internal
15952
- */ TextUtils._measureFontOrChar = function _measureFontOrChar(fontString, char) {
15953
- if (char === void 0) char = "";
15956
+ */ TextUtils._measureFontOrChar = function _measureFontOrChar(fontString, measureString, isChar) {
15954
15957
  var _TextUtils_textContext = TextUtils.textContext(), canvas = _TextUtils_textContext.canvas, context = _TextUtils_textContext.context;
15955
15958
  context.font = fontString;
15956
- var measureString = char || TextUtils._measureString;
15957
15959
  // Safari gets data confusion through getImageData when the canvas width is not an integer.
15958
15960
  // The measure text width of some special invisible characters may be 0, so make sure the width is at least 1.
15959
15961
  // @todo: Text layout may vary from standard and not support emoji.
15960
- var width = Math.max(1, Math.round(context.measureText(measureString).width));
15962
+ var textMetrics = context.measureText(measureString);
15963
+ // In some case (ex: " "), actualBoundingBoxRight and actualBoundingBoxLeft will be 0, so use width.
15964
+ var width = Math.max(1, Math.round(textMetrics.actualBoundingBoxRight - textMetrics.actualBoundingBoxLeft || textMetrics.width));
15961
15965
  var baseline = Math.ceil(context.measureText(TextUtils._measureBaseline).width);
15962
15966
  var height = baseline * TextUtils._heightMultiplier;
15963
15967
  baseline = TextUtils._baselineMultiplier * baseline | 0;
@@ -16002,12 +16006,7 @@
16002
16006
  descent = bottom - baseline + 1;
16003
16007
  size = ascent + descent;
16004
16008
  }
16005
- var sizeInfo = {
16006
- ascent: ascent,
16007
- descent: descent,
16008
- size: size
16009
- };
16010
- if (char) {
16009
+ if (isChar) {
16011
16010
  var data = null;
16012
16011
  if (size > 0) {
16013
16012
  var lineIntegerW = integerW * 4;
@@ -16015,7 +16014,7 @@
16015
16014
  data = new Uint8Array(colorData.buffer, top * lineIntegerW, size * lineIntegerW);
16016
16015
  }
16017
16016
  return {
16018
- char: char,
16017
+ char: measureString,
16019
16018
  x: 0,
16020
16019
  y: 0,
16021
16020
  w: width,
@@ -16035,7 +16034,11 @@
16035
16034
  data: data
16036
16035
  };
16037
16036
  } else {
16038
- return sizeInfo;
16037
+ return {
16038
+ ascent: ascent,
16039
+ descent: descent,
16040
+ size: size
16041
+ };
16039
16042
  }
16040
16043
  };
16041
16044
  /**
@@ -22184,6 +22187,33 @@
22184
22187
  (function() {
22185
22188
  PrimitiveMesh._spherePoleIdx = 0;
22186
22189
  })();
22190
+ function _is_native_reflect_construct$1() {
22191
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
22192
+ if (Reflect.construct.sham) return false;
22193
+ if (typeof Proxy === "function") return true;
22194
+ try {
22195
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
22196
+ return true;
22197
+ } catch (e) {
22198
+ return false;
22199
+ }
22200
+ }
22201
+ function _construct$1(Parent, args, Class) {
22202
+ if (_is_native_reflect_construct$1()) _construct$1 = Reflect.construct;
22203
+ else {
22204
+ _construct$1 = function construct(Parent, args, Class) {
22205
+ var a = [
22206
+ null
22207
+ ];
22208
+ a.push.apply(a, args);
22209
+ var Constructor = Function.bind.apply(Parent, a);
22210
+ var instance = new Constructor();
22211
+ if (Class) _set_prototype_of$2(instance, Class.prototype);
22212
+ return instance;
22213
+ };
22214
+ }
22215
+ return _construct$1.apply(null, arguments);
22216
+ }
22187
22217
  var ComponentCloner = /*#__PURE__*/ function() {
22188
22218
  var ComponentCloner = function ComponentCloner() {};
22189
22219
  /**
@@ -22230,10 +22260,14 @@
22230
22260
  /**
22231
22261
  * Add component based on the component type.
22232
22262
  * @param type - The type of the component
22263
+ * @param args - The arguments of the component
22233
22264
  * @returns The component which has been added
22234
22265
  */ _proto.addComponent = function addComponent(type) {
22266
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
22267
+ args[_key - 1] = arguments[_key];
22268
+ }
22235
22269
  ComponentsDependencies._addCheck(this, type);
22236
- var component = new type(this);
22270
+ var component = _construct$1(type, [].concat(this, args));
22237
22271
  this._components.push(component);
22238
22272
  component._setActive(true, ActiveChangeFlag.All);
22239
22273
  return component;
@@ -23011,7 +23045,7 @@
23011
23045
  }
23012
23046
  this._blendShapeWeights && (target._blendShapeWeights = this._blendShapeWeights.slice());
23013
23047
  };
23014
- _proto._updateRendererShaderData = function _updateRendererShaderData(context) {
23048
+ _proto._update = function _update(context) {
23015
23049
  var _skin, _skin1;
23016
23050
  var skin = this.skin;
23017
23051
  if (((_skin = skin) == null ? void 0 : _skin.bones.length) > 0) {
@@ -23060,7 +23094,7 @@
23060
23094
  this._jointTexture.setPixelBuffer(skin._skinMatrices);
23061
23095
  }
23062
23096
  }
23063
- MeshRenderer1.prototype._updateRendererShaderData.call(this, context);
23097
+ MeshRenderer1.prototype._update.call(this, context);
23064
23098
  };
23065
23099
  /**
23066
23100
  * @internal
@@ -23747,6 +23781,15 @@
23747
23781
  this._loopArrayDirty = true;
23748
23782
  };
23749
23783
  /**
23784
+ * Remove item from array that pass the specified comparison function.
23785
+ * @param filter - The comparison function
23786
+ */ _proto.findAndRemove = function findAndRemove(filter) {
23787
+ var array = this._array;
23788
+ for(var i = array.length - 1; i >= 0; i--){
23789
+ filter(array[i]) && this.removeByIndex(i);
23790
+ }
23791
+ };
23792
+ /**
23750
23793
  * The index of the item.
23751
23794
  * @param item - The item which want to get the index
23752
23795
  * @returns Index of the item
@@ -24176,17 +24219,33 @@
24176
24219
  };
24177
24220
  /**
24178
24221
  * @internal
24179
- */ _proto._onSubAssetSuccess = function _onSubAssetSuccess(assetURL, value) {
24180
- var _this__subAssetPromiseCallbacks_assetURL;
24181
- (_this__subAssetPromiseCallbacks_assetURL = this._subAssetPromiseCallbacks[assetURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetURL.resolve(value);
24182
- delete this._subAssetPromiseCallbacks[assetURL];
24222
+ */ _proto._onSubAssetSuccess = function _onSubAssetSuccess(assetBaseURL, assetSubPath, value) {
24223
+ var _this__subAssetPromiseCallbacks_assetBaseURL;
24224
+ var subPromiseCallback = (_this__subAssetPromiseCallbacks_assetBaseURL = this._subAssetPromiseCallbacks[assetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetBaseURL[assetSubPath];
24225
+ if (subPromiseCallback) {
24226
+ // Already resolved
24227
+ subPromiseCallback.resolve(value);
24228
+ } else {
24229
+ var _this__subAssetPromiseCallbacks, _assetBaseURL;
24230
+ ((_this__subAssetPromiseCallbacks = this._subAssetPromiseCallbacks)[_assetBaseURL = assetBaseURL] || (_this__subAssetPromiseCallbacks[_assetBaseURL] = {}))[assetSubPath] = {
24231
+ resolve: value
24232
+ };
24233
+ }
24183
24234
  };
24184
24235
  /**
24185
24236
  * @internal
24186
- */ _proto._onSubAssetFail = function _onSubAssetFail(assetURL, value) {
24187
- var _this__subAssetPromiseCallbacks_assetURL;
24188
- (_this__subAssetPromiseCallbacks_assetURL = this._subAssetPromiseCallbacks[assetURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetURL.reject(value);
24189
- delete this._subAssetPromiseCallbacks[assetURL];
24237
+ */ _proto._onSubAssetFail = function _onSubAssetFail(assetBaseURL, assetSubPath, value) {
24238
+ var _this__subAssetPromiseCallbacks_assetBaseURL;
24239
+ var subPromiseCallback = (_this__subAssetPromiseCallbacks_assetBaseURL = this._subAssetPromiseCallbacks[assetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetBaseURL[assetSubPath];
24240
+ if (subPromiseCallback) {
24241
+ // Already rejected
24242
+ subPromiseCallback.reject(value);
24243
+ } else {
24244
+ var _this__subAssetPromiseCallbacks, _assetBaseURL;
24245
+ ((_this__subAssetPromiseCallbacks = this._subAssetPromiseCallbacks)[_assetBaseURL = assetBaseURL] || (_this__subAssetPromiseCallbacks[_assetBaseURL] = {}))[assetSubPath] = {
24246
+ reject: value
24247
+ };
24248
+ }
24190
24249
  };
24191
24250
  /**
24192
24251
  * @internal
@@ -24331,8 +24390,21 @@
24331
24390
  if (!loader) {
24332
24391
  throw "loader not found: " + item.type;
24333
24392
  }
24334
- // Load asset
24393
+ // Check sub asset
24394
+ if (queryPath) {
24395
+ // Check whether load main asset
24396
+ var mainPromise = loadingPromises[assetBaseURL] || this._loadMainAsset(loader, item, assetBaseURL);
24397
+ mainPromise.catch(function(e) {
24398
+ _this._onSubAssetFail(assetBaseURL, queryPath, e);
24399
+ });
24400
+ return this._createSubAssetPromiseCallback(assetBaseURL, assetURL, queryPath);
24401
+ }
24402
+ return this._loadMainAsset(loader, item, assetBaseURL);
24403
+ };
24404
+ _proto._loadMainAsset = function _loadMainAsset(loader, item, assetBaseURL) {
24405
+ var _this = this;
24335
24406
  item.url = assetBaseURL;
24407
+ var loadingPromises = this._loadingPromises;
24336
24408
  var promise = loader.load(item, this);
24337
24409
  loadingPromises[assetBaseURL] = promise;
24338
24410
  promise.then(function(resource) {
@@ -24340,32 +24412,46 @@
24340
24412
  _this._addAsset(assetBaseURL, resource);
24341
24413
  }
24342
24414
  delete loadingPromises[assetBaseURL];
24415
+ _this._releaseSubAssetPromiseCallback(assetBaseURL);
24343
24416
  }, function() {
24344
- return delete loadingPromises[assetBaseURL];
24417
+ delete loadingPromises[assetBaseURL];
24418
+ _this._releaseSubAssetPromiseCallback(assetBaseURL);
24345
24419
  });
24346
- if (queryPath) {
24347
- var subPromise = new AssetPromise(function(resolve, reject) {
24348
- _this._pushSubAssetPromiseCallback(assetURL, resolve, reject);
24349
- });
24350
- loadingPromises[assetURL] = subPromise;
24351
- subPromise.then(function() {
24420
+ return promise;
24421
+ };
24422
+ _proto._createSubAssetPromiseCallback = function _createSubAssetPromiseCallback(assetBaseURL, assetURL, assetSubPath) {
24423
+ var _this = this;
24424
+ var _this__subAssetPromiseCallbacks_assetBaseURL, _subPromiseCallback, _subPromiseCallback1;
24425
+ var loadingPromises = this._loadingPromises;
24426
+ var subPromiseCallback = (_this__subAssetPromiseCallbacks_assetBaseURL = this._subAssetPromiseCallbacks[assetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetBaseURL[assetSubPath];
24427
+ var resolvedValue = (_subPromiseCallback = subPromiseCallback) == null ? void 0 : _subPromiseCallback.resolve;
24428
+ var rejectedValue = (_subPromiseCallback1 = subPromiseCallback) == null ? void 0 : _subPromiseCallback1.reject;
24429
+ var promise = new AssetPromise(function(resolve, reject) {
24430
+ if (resolvedValue) {
24431
+ // Already resolved
24432
+ resolve(resolvedValue);
24433
+ } else if (rejectedValue) {
24434
+ // Already rejected
24435
+ reject(rejectedValue);
24436
+ } else {
24437
+ var _this__subAssetPromiseCallbacks, _assetBaseURL;
24438
+ // Pending
24439
+ loadingPromises[assetURL] = promise;
24440
+ ((_this__subAssetPromiseCallbacks = _this._subAssetPromiseCallbacks)[_assetBaseURL = assetBaseURL] || (_this__subAssetPromiseCallbacks[_assetBaseURL] = {}))[assetSubPath] = {
24441
+ resolve: resolve,
24442
+ reject: reject
24443
+ };
24444
+ }
24445
+ });
24446
+ if (!resolvedValue && !rejectedValue) {
24447
+ promise.then(function() {
24352
24448
  delete loadingPromises[assetURL];
24353
24449
  }, function() {
24354
24450
  return delete loadingPromises[assetURL];
24355
24451
  });
24356
- promise.catch(function(e) {
24357
- _this._onSubAssetFail(assetURL, e);
24358
- });
24359
- return subPromise;
24360
24452
  }
24361
24453
  return promise;
24362
24454
  };
24363
- _proto._pushSubAssetPromiseCallback = function _pushSubAssetPromiseCallback(assetURL, resolve, reject) {
24364
- this._subAssetPromiseCallbacks[assetURL] = {
24365
- resolve: resolve,
24366
- reject: reject
24367
- };
24368
- };
24369
24455
  _proto._gc = function _gc(forceDestroy) {
24370
24456
  var objects = Utils.objectValues(this._referResourcePool);
24371
24457
  for(var i = 0, n = objects.length; i < n; i++){
@@ -24422,6 +24508,9 @@
24422
24508
  });
24423
24509
  return result;
24424
24510
  };
24511
+ _proto._releaseSubAssetPromiseCallback = function _releaseSubAssetPromiseCallback(assetBaseURL) {
24512
+ delete this._subAssetPromiseCallbacks[assetBaseURL];
24513
+ };
24425
24514
  /**
24426
24515
  * @internal
24427
24516
  * @beta Just for internal editor, not recommended for developers.
@@ -32923,10 +33012,7 @@
32923
33012
  /**
32924
33013
  * @internal
32925
33014
  */ _proto._onEnable = function _onEnable() {
32926
- var layersData = this._animatorLayersData;
32927
- for(var i = 0, n = layersData.length; i < n; i++){
32928
- layersData[i].layerState = LayerState.Standby;
32929
- }
33015
+ this._reset();
32930
33016
  this._entity.getComponentsIncludeChildren(exports.Renderer, this._controlledRenderers);
32931
33017
  };
32932
33018
  /**
@@ -33476,8 +33562,11 @@
33476
33562
  if (exitTime >= lastClipTime) {
33477
33563
  playState.currentTransitionIndex = Math.min(transitionIndex + 1, n - 1);
33478
33564
  if (this._checkConditions(state, transition)) {
33479
- this._applyTransition(layerIndex, layerData, stateMachine, transition);
33480
- return transition;
33565
+ if (this._applyTransition(layerIndex, layerData, stateMachine, transition)) {
33566
+ return transition;
33567
+ } else {
33568
+ return null;
33569
+ }
33481
33570
  }
33482
33571
  }
33483
33572
  }
@@ -33496,8 +33585,11 @@
33496
33585
  if (exitTime <= lastClipTime) {
33497
33586
  playState.currentTransitionIndex = Math.max(transitionIndex - 1, 0);
33498
33587
  if (this._checkConditions(state, transition)) {
33499
- this._applyTransition(layerIndex, layerData, stateMachine, transition);
33500
- return transition;
33588
+ if (this._applyTransition(layerIndex, layerData, stateMachine, transition)) {
33589
+ return transition;
33590
+ } else {
33591
+ return null;
33592
+ }
33501
33593
  }
33502
33594
  }
33503
33595
  }
@@ -33507,8 +33599,11 @@
33507
33599
  for(var i = 0, n = transitions.length; i < n; i++){
33508
33600
  var transition = transitions[i];
33509
33601
  if (this._checkConditions(state, transition)) {
33510
- this._applyTransition(layerIndex, layerData, stateMachine, transition);
33511
- return transition;
33602
+ if (this._applyTransition(layerIndex, layerData, stateMachine, transition)) {
33603
+ return transition;
33604
+ } else {
33605
+ return null;
33606
+ }
33512
33607
  }
33513
33608
  }
33514
33609
  };
@@ -33528,11 +33623,12 @@
33528
33623
  };
33529
33624
  _proto._applyTransition = function _applyTransition(layerIndex, layerData, stateMachine, transition) {
33530
33625
  // Need prepare first, it should crossFade when to exit
33531
- this._prepareCrossFadeByTransition(transition, layerIndex);
33626
+ var success = this._prepareCrossFadeByTransition(transition, layerIndex);
33532
33627
  if (transition.isExit) {
33533
33628
  this._checkAnyAndEntryState(layerIndex, layerData, stateMachine);
33534
- return;
33629
+ return true;
33535
33630
  }
33631
+ return success;
33536
33632
  };
33537
33633
  _proto._checkConditions = function _checkConditions(state, transition) {
33538
33634
  var _state;
@@ -33544,6 +33640,9 @@
33544
33640
  var pass = false;
33545
33641
  var _conditions_i = conditions[i], mode = _conditions_i.mode, name1 = _conditions_i.parameterName, threshold = _conditions_i.threshold;
33546
33642
  var parameter = this.getParameter(name1);
33643
+ if (!parameter) {
33644
+ return false;
33645
+ }
33547
33646
  switch(mode){
33548
33647
  case exports.AnimatorConditionMode.Equals:
33549
33648
  if (parameter.value === threshold) {
@@ -34645,12 +34744,6 @@
34645
34744
  if (!this._supportInstancedArrays) {
34646
34745
  return;
34647
34746
  }
34648
- var generator = this.generator;
34649
- generator._update(this.engine.time.deltaTime);
34650
- // No particles to render
34651
- if (generator._firstActiveElement === generator._firstFreeElement) {
34652
- return;
34653
- }
34654
34747
  Renderer1.prototype._prepareRender.call(this, context);
34655
34748
  };
34656
34749
  /**
@@ -34680,7 +34773,13 @@
34680
34773
  generator._updateBoundsSimulationWorld(worldBounds);
34681
34774
  }
34682
34775
  };
34683
- _proto._updateRendererShaderData = function _updateRendererShaderData(context) {
34776
+ _proto._update = function _update(context) {
34777
+ var generator = this.generator;
34778
+ generator._update(this.engine.time.deltaTime);
34779
+ // No particles to render
34780
+ if (generator._firstActiveElement === generator._firstFreeElement) {
34781
+ return;
34782
+ }
34684
34783
  var shaderData = this.shaderData;
34685
34784
  shaderData.setFloat(ParticleRenderer._lengthScale, this.lengthScale);
34686
34785
  shaderData.setFloat(ParticleRenderer._speedScale, this.velocityScale);
@@ -38806,9 +38905,11 @@
38806
38905
  get AnimationVector3Curve () { return exports.AnimationVector3Curve; },
38807
38906
  get AnimationVector4Curve () { return exports.AnimationVector4Curve; },
38808
38907
  Animator: Animator,
38908
+ AnimatorCondition: AnimatorCondition,
38809
38909
  get AnimatorConditionMode () { return exports.AnimatorConditionMode; },
38810
38910
  AnimatorController: AnimatorController,
38811
38911
  AnimatorControllerLayer: AnimatorControllerLayer,
38912
+ AnimatorControllerParameter: AnimatorControllerParameter,
38812
38913
  get AnimatorCullingMode () { return exports.AnimatorCullingMode; },
38813
38914
  get AnimatorLayerBlendingMode () { return exports.AnimatorLayerBlendingMode; },
38814
38915
  AnimatorLayerMask: AnimatorLayerMask,
@@ -38900,6 +39001,7 @@
38900
39001
  Keyframe: Keyframe,
38901
39002
  get Keys () { return exports.Keys; },
38902
39003
  get Layer () { return exports.Layer; },
39004
+ LayerPathMask: LayerPathMask,
38903
39005
  Light: Light,
38904
39006
  Loader: Loader,
38905
39007
  Logger: Logger,
@@ -38957,6 +39059,7 @@
38957
39059
  ResourceManager: ResourceManager,
38958
39060
  ReturnableObjectPool: ReturnableObjectPool,
38959
39061
  RotationOverLifetimeModule: RotationOverLifetimeModule,
39062
+ SafeLoopArray: SafeLoopArray,
38960
39063
  Scene: Scene,
38961
39064
  SceneManager: SceneManager,
38962
39065
  Script: Script,
@@ -42425,9 +42528,9 @@
42425
42528
  _proto.load = function load(item, resourceManager) {
42426
42529
  var _this = this;
42427
42530
  return new AssetPromise(function(resolve, reject) {
42428
- _this.request(item.url, {
42531
+ _this.request(item.url, _extends({}, item, {
42429
42532
  type: "arraybuffer"
42430
- }).then(function(data) {
42533
+ })).then(function(data) {
42431
42534
  decode(data, resourceManager.engine).then(function(mesh) {
42432
42535
  resolve(mesh);
42433
42536
  });
@@ -42450,9 +42553,9 @@
42450
42553
  _proto.load = function load(item, resourceManager) {
42451
42554
  var _this = this;
42452
42555
  return new AssetPromise(function(resolve, reject) {
42453
- _this.request(item.url, {
42556
+ _this.request(item.url, _extends({}, item, {
42454
42557
  type: "arraybuffer"
42455
- }).then(function(data) {
42558
+ })).then(function(data) {
42456
42559
  decode(data, resourceManager.engine).then(function(texture) {
42457
42560
  resolve(texture);
42458
42561
  });
@@ -42543,7 +42646,7 @@
42543
42646
  type: "json"
42544
42647
  })).then(function(data) {
42545
42648
  var animatorController = new AnimatorController();
42546
- var layers = data.layers;
42649
+ var layers = data.layers, parameters = data.parameters;
42547
42650
  var promises = [];
42548
42651
  layers.forEach(function(layerData, layerIndex) {
42549
42652
  var name = layerData.name, blendingMode = layerData.blendingMode, weight = layerData.weight, stateMachineData = layerData.stateMachine;
@@ -42551,21 +42654,21 @@
42551
42654
  layer.blendingMode = blendingMode;
42552
42655
  layer.weight = weight;
42553
42656
  if (stateMachineData) {
42554
- var states = stateMachineData.states;
42555
- var stateMachine = layer.stateMachine = new AnimatorStateMachine();
42657
+ var states = stateMachineData.states, transitions = stateMachineData.transitions, entryTransitions = stateMachineData.entryTransitions, anyTransitions = stateMachineData.anyTransitions;
42658
+ var stateMachine = layer.stateMachine;
42659
+ var statesMap = {};
42660
+ var transitionsMap = {};
42556
42661
  states.forEach(function(stateData, stateIndex) {
42557
- var _scriptsObject;
42558
- var name = stateData.name, speed = stateData.speed, wrapMode = stateData.wrapMode, clipStartNormalizedTime = stateData.clipStartNormalizedTime, clipEndNormalizedTime = stateData.clipEndNormalizedTime, isDefaultState = stateData.isDefaultState, clipData = stateData.clip, scripts = stateData.scripts;
42662
+ var id = stateData.id, name = stateData.name, speed = stateData.speed, wrapMode = stateData.wrapMode, clipStartNormalizedTime = stateData.clipStartNormalizedTime, clipEndNormalizedTime = stateData.clipEndNormalizedTime, clipData = stateData.clip, scripts = stateData.scripts;
42559
42663
  var state = stateMachine.addState(name);
42560
- isDefaultState && (stateMachine.defaultState = state);
42561
42664
  state.speed = speed;
42562
42665
  state.wrapMode = wrapMode;
42563
42666
  state.clipStartTime = clipStartNormalizedTime;
42564
42667
  state.clipEndTime = clipEndNormalizedTime;
42565
- var scriptsObject = JSON.parse(scripts);
42566
- (_scriptsObject = scriptsObject) == null ? void 0 : _scriptsObject.forEach(function(script) {
42668
+ scripts.forEach(function(script) {
42567
42669
  state.addStateMachineScript(Loader.getClass(script));
42568
42670
  });
42671
+ statesMap[id] = state;
42569
42672
  if (clipData) {
42570
42673
  promises.push(new Promise(function(resolve) {
42571
42674
  //@ts-ignore
@@ -42579,23 +42682,32 @@
42579
42682
  }));
42580
42683
  }
42581
42684
  });
42685
+ transitions.forEach(function(transitionData) {
42686
+ var transition = _this._createTransition(transitionData, statesMap[transitionData.destinationStateId]);
42687
+ transitionsMap[transitionData.id] = transition;
42688
+ });
42582
42689
  states.forEach(function(stateData) {
42583
- var name = stateData.name, transitions = stateData.transitions;
42584
- transitions.forEach(function(transitionData) {
42585
- var targetStateName = transitionData.targetStateName, duration = transitionData.duration, offset = transitionData.offset, exitTime = transitionData.exitTime;
42586
- var sourceState = stateMachine.findStateByName(name);
42587
- var destState = stateMachine.findStateByName(targetStateName);
42588
- var transition = new AnimatorStateTransition();
42589
- transition.destinationState = destState;
42590
- transition.duration = duration;
42591
- transition.exitTime = exitTime;
42592
- transition.offset = offset;
42593
- sourceState.addTransition(transition);
42690
+ var id = stateData.id, transitions = stateData.transitions;
42691
+ transitions.forEach(function(transitionId) {
42692
+ var transition = transitionsMap[transitionId];
42693
+ transition && statesMap[id].addTransition(transition);
42594
42694
  });
42595
42695
  });
42696
+ entryTransitions.forEach(function(entryTransitionData) {
42697
+ stateMachine.addEntryStateTransition(_this._createTransition(entryTransitionData, statesMap[entryTransitionData.destinationStateId]));
42698
+ });
42699
+ anyTransitions.forEach(function(anyTransitionData) {
42700
+ stateMachine.addAnyStateTransition(_this._createTransition(anyTransitionData, statesMap[anyTransitionData.destinationStateId]));
42701
+ });
42596
42702
  }
42597
42703
  animatorController.addLayer(layer);
42598
42704
  });
42705
+ parameters.forEach(function(parameterData) {
42706
+ var parameter = new AnimatorControllerParameter();
42707
+ parameter.name = parameterData.name;
42708
+ parameter.value = parameterData.value;
42709
+ animatorController.addParameter(parameter);
42710
+ });
42599
42711
  Promise.all(promises).then(function(clipData) {
42600
42712
  clipData.forEach(function(data) {
42601
42713
  var layerIndex = data.layerIndex, stateIndex = data.stateIndex, clip = data.clip;
@@ -42606,6 +42718,21 @@
42606
42718
  }).catch(reject);
42607
42719
  });
42608
42720
  };
42721
+ _proto._createTransition = function _createTransition(transitionData, destinationState) {
42722
+ var transition = new AnimatorStateTransition();
42723
+ transition.duration = transitionData.duration;
42724
+ transition.offset = transitionData.offset;
42725
+ transition.exitTime = transitionData.exitTime;
42726
+ transition.solo = transitionData.solo;
42727
+ transition.mute = transitionData.mute;
42728
+ // @ts-ignore
42729
+ transition._isExit = transitionData.isExit;
42730
+ transition.destinationState = destinationState;
42731
+ transitionData.conditions.forEach(function(conditionData) {
42732
+ transition.addCondition(conditionData.mode, conditionData.parameterName, conditionData.threshold);
42733
+ });
42734
+ return transition;
42735
+ };
42609
42736
  return AnimatorControllerLoader;
42610
42737
  }(Loader);
42611
42738
  AnimatorControllerLoader = __decorate([
@@ -42654,9 +42781,9 @@
42654
42781
  _proto.load = function load(item, resourceManager) {
42655
42782
  var _this = this;
42656
42783
  return new AssetPromise(function(resolve, reject) {
42657
- _this.request(item.url, {
42784
+ _this.request(item.url, _extends({}, item, {
42658
42785
  type: "arraybuffer"
42659
- }).then(function(arraybuffer) {
42786
+ })).then(function(arraybuffer) {
42660
42787
  var _this;
42661
42788
  var shArray = new Float32Array(arraybuffer, 0, 27);
42662
42789
  var shByteLength = 27 * 4;
@@ -42730,9 +42857,9 @@
42730
42857
  _proto.load = function load(item, resourceManager) {
42731
42858
  var _this = this;
42732
42859
  return new AssetPromise(function(resolve, reject) {
42733
- _this.request(item.url, {
42860
+ _this.request(item.url, _extends({}, item, {
42734
42861
  type: "json"
42735
- }).then(function(data) {
42862
+ })).then(function(data) {
42736
42863
  var fontName = data.fontName, fontUrl = data.fontUrl;
42737
42864
  if (fontUrl) {
42738
42865
  _this._registerFont(fontName, fontUrl).then(function() {
@@ -43114,15 +43241,15 @@
43114
43241
  for(var i = 0, length = item.length; i < length; i++){
43115
43242
  var mesh = item[i];
43116
43243
  // @ts-ignore
43117
- _this.resourceManager._onSubAssetSuccess(url + "?q=" + glTFResourceKey + "[" + index + "][" + i + "]", mesh);
43244
+ _this.resourceManager._onSubAssetSuccess(url, glTFResourceKey + "[" + index + "][" + i + "]", mesh);
43118
43245
  }
43119
43246
  } else {
43120
43247
  // @ts-ignore
43121
- _this.resourceManager._onSubAssetSuccess(url + "?q=" + glTFResourceKey + "[" + index + "]", item);
43248
+ _this.resourceManager._onSubAssetSuccess(url, "" + glTFResourceKey + (index === undefined ? "" : "[" + index + "]"), item);
43122
43249
  var _this_glTF_scene;
43123
43250
  if (type === 2 && ((_this_glTF_scene = _this.glTF.scene) != null ? _this_glTF_scene : 0) === index) {
43124
43251
  // @ts-ignore
43125
- _this.resourceManager._onSubAssetSuccess("" + url + "?q=defaultSceneRoot", item);
43252
+ _this.resourceManager._onSubAssetSuccess(url, "defaultSceneRoot", item);
43126
43253
  }
43127
43254
  }
43128
43255
  });
@@ -45544,6 +45671,8 @@
45544
45671
  sceneRoot = context.get(exports.GLTFParserType.Entity, sceneNodes[0]);
45545
45672
  } else {
45546
45673
  sceneRoot = new Entity(engine, "GLTF_ROOT");
45674
+ // @ts-ignore
45675
+ sceneRoot._markAsTemplate(glTFResource);
45547
45676
  for(var i = 0; i < sceneNodes.length; i++){
45548
45677
  var childEntity = context.get(exports.GLTFParserType.Entity, sceneNodes[i]);
45549
45678
  sceneRoot.addChild(childEntity);
@@ -45951,7 +46080,8 @@
45951
46080
  registerGLTFParser(exports.GLTFParserType.AnimatorController)
45952
46081
  ], exports.GLTFAnimatorControllerParser);
45953
46082
  // Source: https://github.com/zeux/meshoptimizer/blob/master/js/meshopt_decoder.js
45954
- var MeshoptDecoder = function() {
46083
+ var ready;
46084
+ function getMeshoptDecoder() {
45955
46085
  var unpack = function unpack(data) {
45956
46086
  var result = new Uint8Array(data.length);
45957
46087
  for(var i = 0; i < data.length; ++i){
@@ -45996,7 +46126,7 @@
45996
46126
  return worker;
45997
46127
  };
45998
46128
  var initWorkers = function initWorkers(count) {
45999
- 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 }';
46129
+ 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 }';
46000
46130
  var blob = new Blob([
46001
46131
  source
46002
46132
  ], {
@@ -46035,6 +46165,7 @@
46035
46165
  ]);
46036
46166
  });
46037
46167
  };
46168
+ if (ready) return ready;
46038
46169
  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";
46039
46170
  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";
46040
46171
  var wasmpack = new Uint8Array([
@@ -46102,9 +46233,32 @@
46102
46233
  // @ts-ignore
46103
46234
  var wasm = SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
46104
46235
  var instance;
46105
- var ready = WebAssembly.instantiate(unpack(wasm), {}).then(function(result) {
46236
+ ready = WebAssembly.instantiate(unpack(wasm)).then(function(result) {
46106
46237
  instance = result.instance;
46107
46238
  instance.exports.__wasm_call_ctors();
46239
+ }).then(function() {
46240
+ return {
46241
+ workerCount: 4,
46242
+ ready: ready,
46243
+ useWorkers: function useWorkers(workerCount) {
46244
+ this.workerCount = workerCount != null ? workerCount : this.workerCount;
46245
+ initWorkers(this.workerCount);
46246
+ },
46247
+ decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
46248
+ if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
46249
+ if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
46250
+ return ready.then(function() {
46251
+ var target = new Uint8Array(count * stride);
46252
+ decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
46253
+ return target;
46254
+ });
46255
+ },
46256
+ release: function release() {
46257
+ for(var i = 0; i < workers.length; i++){
46258
+ workers[i].object.terminate();
46259
+ }
46260
+ }
46261
+ };
46108
46262
  });
46109
46263
  var filters = {
46110
46264
  NONE: "",
@@ -46119,28 +46273,8 @@
46119
46273
  };
46120
46274
  var workers = [];
46121
46275
  var requestId = 0;
46122
- return {
46123
- workerCount: 4,
46124
- ready: ready,
46125
- useWorkers: function useWorkers() {
46126
- initWorkers(this.workerCount);
46127
- },
46128
- decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
46129
- if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
46130
- if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
46131
- return ready.then(function() {
46132
- var target = new Uint8Array(count * stride);
46133
- decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
46134
- return target;
46135
- });
46136
- },
46137
- release: function release() {
46138
- for(var i = 0; i < workers.length; i++){
46139
- workers[i].object.terminate();
46140
- }
46141
- }
46142
- };
46143
- }();
46276
+ return ready;
46277
+ }
46144
46278
  exports.GLTFLoader = /*#__PURE__*/ function(Loader1) {
46145
46279
  var GLTFLoader = function GLTFLoader() {
46146
46280
  return Loader1.apply(this, arguments);
@@ -46148,11 +46282,13 @@
46148
46282
  _inherits(GLTFLoader, Loader1);
46149
46283
  var _proto = GLTFLoader.prototype;
46150
46284
  _proto.initialize = function initialize(_, configuration) {
46151
- var _configuration_glTF;
46152
- var meshOptOptions = (_configuration_glTF = configuration.glTF) == null ? void 0 : _configuration_glTF.meshOpt;
46285
+ var _configuration_glTFLoader, _configuration_glTF;
46286
+ var _configuration_glTFLoader_meshOpt;
46287
+ var meshOptOptions = (_configuration_glTFLoader_meshOpt = (_configuration_glTFLoader = configuration.glTFLoader) == null ? void 0 : _configuration_glTFLoader.meshOpt) != null ? _configuration_glTFLoader_meshOpt : (_configuration_glTF = configuration.glTF) == null ? void 0 : _configuration_glTF.meshOpt;
46153
46288
  if (meshOptOptions) {
46154
- MeshoptDecoder.workerCount = meshOptOptions.workerCount;
46155
- MeshoptDecoder.useWorkers();
46289
+ return getMeshoptDecoder().then(function(meshoptDecoder) {
46290
+ meshoptDecoder.useWorkers(meshOptOptions.workerCount);
46291
+ });
46156
46292
  }
46157
46293
  return Promise.resolve();
46158
46294
  };
@@ -46173,7 +46309,11 @@
46173
46309
  * Release glTF loader memory(includes meshopt workers).
46174
46310
  * @remarks If use loader after releasing, we should release again.
46175
46311
  */ GLTFLoader.release = function release() {
46176
- MeshoptDecoder.release();
46312
+ if (ready) {
46313
+ getMeshoptDecoder().then(function(meshoptDecoder) {
46314
+ meshoptDecoder.release();
46315
+ });
46316
+ }
46177
46317
  };
46178
46318
  return GLTFLoader;
46179
46319
  }(Loader);
@@ -46210,7 +46350,7 @@
46210
46350
  };
46211
46351
  return PrefabParser;
46212
46352
  }(HierarchyParser);
46213
- exports.PrefabLoader = /*#__PURE__*/ function(Loader1) {
46353
+ var PrefabLoader = /*#__PURE__*/ function(Loader1) {
46214
46354
  var PrefabLoader = function PrefabLoader() {
46215
46355
  return Loader1.apply(this, arguments);
46216
46356
  };
@@ -46229,11 +46369,11 @@
46229
46369
  };
46230
46370
  return PrefabLoader;
46231
46371
  }(Loader);
46232
- exports.PrefabLoader = __decorate([
46372
+ PrefabLoader = __decorate([
46233
46373
  resourceLoader(exports.AssetType.Prefab, [
46234
46374
  "prefab"
46235
46375
  ])
46236
- ], exports.PrefabLoader);
46376
+ ], PrefabLoader);
46237
46377
  var _HDRLoader;
46238
46378
  var PI = Math.PI;
46239
46379
  var HDRLoader = (_HDRLoader = /*#__PURE__*/ function(Loader1) {
@@ -46246,9 +46386,9 @@
46246
46386
  var _this = this;
46247
46387
  return new AssetPromise(function(resolve, reject) {
46248
46388
  var engine = resourceManager.engine;
46249
- _this.request(item.url, {
46389
+ _this.request(item.url, _extends({}, item, {
46250
46390
  type: "arraybuffer"
46251
- }).then(function(buffer) {
46391
+ })).then(function(buffer) {
46252
46392
  var uint8Array = new Uint8Array(buffer);
46253
46393
  var _HDRLoader__parseHeader = HDRLoader._parseHeader(uint8Array), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
46254
46394
  var pixels = HDRLoader._readPixels(uint8Array.subarray(dataPosition), width, height);
@@ -46986,9 +47126,9 @@
46986
47126
  var _this = this;
46987
47127
  var engine = resourceManager.engine;
46988
47128
  return new AssetPromise(function(resolve, reject) {
46989
- _this.request(item.url, {
47129
+ _this.request(item.url, _extends({}, item, {
46990
47130
  type: "json"
46991
- }).then(function(data) {
47131
+ })).then(function(data) {
46992
47132
  // @ts-ignore
46993
47133
  engine.resourceManager.initVirtualResources(data.files);
46994
47134
  return resourceManager.load({
@@ -47346,9 +47486,9 @@
47346
47486
  var _this = this;
47347
47487
  var engine = resourceManager.engine;
47348
47488
  return new AssetPromise(function(resolve, reject) {
47349
- _this.request(item.url, {
47489
+ _this.request(item.url, _extends({}, item, {
47350
47490
  type: "json"
47351
- }).then(function(data) {
47491
+ })).then(function(data) {
47352
47492
  return SceneParser.parse(engine, data).then(function(scene) {
47353
47493
  var promises = [];
47354
47494
  // parse ambient light
@@ -47447,6 +47587,7 @@
47447
47587
  var tonemappingEffect = postProcessManager._tonemappingEffect;
47448
47588
  postProcessManager.isActive = postProcessData.isActive;
47449
47589
  bloomEffect.enabled = postProcessData.bloom.enabled;
47590
+ bloomEffect.downScale = postProcessData.bloom.downScale;
47450
47591
  bloomEffect.threshold = postProcessData.bloom.threshold;
47451
47592
  bloomEffect.scatter = postProcessData.bloom.scatter;
47452
47593
  bloomEffect.intensity = postProcessData.bloom.intensity;
@@ -47820,7 +47961,9 @@
47820
47961
  var _proto = EXT_meshopt_compression.prototype;
47821
47962
  _proto.createAndParse = function createAndParse(context, schema) {
47822
47963
  return context.get(exports.GLTFParserType.Buffer, schema.buffer).then(function(arrayBuffer) {
47823
- return MeshoptDecoder.decodeGltfBuffer(schema.count, schema.byteStride, new Uint8Array(arrayBuffer, schema.byteOffset, schema.byteLength), schema.mode, schema.filter);
47964
+ return getMeshoptDecoder().then(function(decoder) {
47965
+ return decoder.decodeGltfBuffer(schema.count, schema.byteStride, new Uint8Array(arrayBuffer, schema.byteOffset, schema.byteLength), schema.mode, schema.filter);
47966
+ });
47824
47967
  });
47825
47968
  };
47826
47969
  return EXT_meshopt_compression;
@@ -47852,7 +47995,7 @@
47852
47995
  ], KHR_materials_anisotropy);
47853
47996
 
47854
47997
  //@ts-ignore
47855
- var version = "1.3.0-alpha.3";
47998
+ var version = "1.3.0-beta.6";
47856
47999
  console.log("Galacean engine version: " + version);
47857
48000
  for(var key in CoreObjects){
47858
48001
  Loader.registerClass(key, CoreObjects[key]);
@@ -47864,8 +48007,10 @@
47864
48007
  exports.AnimationCurve = AnimationCurve;
47865
48008
  exports.AnimationEvent = AnimationEvent;
47866
48009
  exports.Animator = Animator;
48010
+ exports.AnimatorCondition = AnimatorCondition;
47867
48011
  exports.AnimatorController = AnimatorController;
47868
48012
  exports.AnimatorControllerLayer = AnimatorControllerLayer;
48013
+ exports.AnimatorControllerParameter = AnimatorControllerParameter;
47869
48014
  exports.AnimatorLayerMask = AnimatorLayerMask;
47870
48015
  exports.AnimatorState = AnimatorState;
47871
48016
  exports.AnimatorStateMachine = AnimatorStateMachine;
@@ -47888,6 +48033,7 @@
47888
48033
  exports.Buffer = Buffer;
47889
48034
  exports.BufferInfo = BufferInfo;
47890
48035
  exports.BufferMesh = BufferMesh;
48036
+ exports.BufferReader = BufferReader;
47891
48037
  exports.BufferUtil = BufferUtil;
47892
48038
  exports.Burst = Burst;
47893
48039
  exports.Canvas = Canvas;
@@ -47913,6 +48059,7 @@
47913
48059
  exports.EngineObject = EngineObject;
47914
48060
  exports.Entity = Entity;
47915
48061
  exports.EventDispatcher = EventDispatcher;
48062
+ exports.FileHeader = FileHeader;
47916
48063
  exports.FixedJoint = FixedJoint;
47917
48064
  exports.Font = Font;
47918
48065
  exports.GLTFExtensionParser = GLTFExtensionParser;
@@ -47930,6 +48077,7 @@
47930
48077
  exports.JointLimits = JointLimits;
47931
48078
  exports.JointMotor = JointMotor;
47932
48079
  exports.Keyframe = Keyframe;
48080
+ exports.LayerPathMask = LayerPathMask;
47933
48081
  exports.Light = Light;
47934
48082
  exports.Loader = Loader;
47935
48083
  exports.Logger = Logger;
@@ -47976,6 +48124,7 @@
47976
48124
  exports.ResourceManager = ResourceManager;
47977
48125
  exports.ReturnableObjectPool = ReturnableObjectPool;
47978
48126
  exports.RotationOverLifetimeModule = RotationOverLifetimeModule;
48127
+ exports.SafeLoopArray = SafeLoopArray;
47979
48128
  exports.Scene = Scene;
47980
48129
  exports.SceneManager = SceneManager;
47981
48130
  exports.SceneParser = SceneParser;
@@ -48038,6 +48187,8 @@
48038
48187
  exports._PostProcessManager = _PostProcessManager;
48039
48188
  exports.assignmentClone = assignmentClone;
48040
48189
  exports.decode = decode;
48190
+ exports.decoder = decoder;
48191
+ exports.decoderMap = decoderMap;
48041
48192
  exports.deepClone = deepClone;
48042
48193
  exports.dependentComponents = dependentComponents;
48043
48194
  exports.ignoreClone = ignoreClone;