babylonjs-materials
Version:
Babylon.js Materials Library =====================
929 lines (833 loc) • 137 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("babylonjs"));
else if(typeof define === 'function' && define.amd)
define("babylonjs-materials", ["babylonjs"], factory);
else if(typeof exports === 'object')
exports["babylonjs-materials"] = factory(require("babylonjs"));
else
root["MATERIALS"] = factory(root["BABYLON"]);
})((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this), (__WEBPACK_EXTERNAL_MODULE_babylonjs_Materials_effect__) => {
return /******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "../../../dev/materials/src/mix/index.ts":
/*!***********************************************!*\
!*** ../../../dev/materials/src/mix/index.ts ***!
\***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ MixMaterial: () => (/* reexport safe */ _mixMaterial__WEBPACK_IMPORTED_MODULE_0__.MixMaterial)
/* harmony export */ });
/* harmony import */ var _mixMaterial__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mixMaterial */ "../../../dev/materials/src/mix/mixMaterial.ts");
/***/ }),
/***/ "../../../dev/materials/src/mix/mix.fragment.ts":
/*!******************************************************!*\
!*** ../../../dev/materials/src/mix/mix.fragment.ts ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ mixPixelShader: () => (/* binding */ mixPixelShader)
/* harmony export */ });
/* harmony import */ var babylonjs_Engines_shaderStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility */ "babylonjs/Materials/effect");
/* harmony import */ var babylonjs_Engines_shaderStore__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babylonjs_Engines_shaderStore__WEBPACK_IMPORTED_MODULE_0__);
// Do not edit.
var name = "mixPixelShader";
var shader = "precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;\n#ifdef SPECULARTERM\nuniform vec4 vSpecularColor;\n#endif\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include<helperFunctions>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#ifdef DIFFUSE\nvarying vec2 vTextureUV;uniform sampler2D mixMap1Sampler;uniform vec2 vTextureInfos;\n#ifdef MIXMAP2\nuniform sampler2D mixMap2Sampler;\n#endif\nuniform sampler2D diffuse1Sampler;uniform sampler2D diffuse2Sampler;uniform sampler2D diffuse3Sampler;uniform sampler2D diffuse4Sampler;uniform vec2 diffuse1Infos;uniform vec2 diffuse2Infos;uniform vec2 diffuse3Infos;uniform vec2 diffuse4Infos;\n#ifdef MIXMAP2\nuniform sampler2D diffuse5Sampler;uniform sampler2D diffuse6Sampler;uniform sampler2D diffuse7Sampler;uniform sampler2D diffuse8Sampler;uniform vec2 diffuse5Infos;uniform vec2 diffuse6Infos;uniform vec2 diffuse7Infos;uniform vec2 diffuse8Infos;\n#endif\n#endif\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n#include<clipPlaneFragmentDeclaration>\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include<logDepthDeclaration>\n#include<fogFragmentDeclaration>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 finalMixColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;\n#ifdef MIXMAP2\nvec4 mixColor2=vec4(1.,1.,1.,1.);\n#endif\n#ifdef SPECULARTERM\nfloat glossiness=vSpecularColor.a;vec3 specularColor=vSpecularColor.rgb;\n#else\nfloat glossiness=0.;\n#endif\nfloat alpha=vDiffuseColor.a;\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\n#endif\n#ifdef DIFFUSE\nvec4 mixColor=texture2D(mixMap1Sampler,vTextureUV);\n#include<depthPrePass>\nmixColor.rgb*=vTextureInfos.y;vec4 diffuse1Color=texture2D(diffuse1Sampler,vTextureUV*diffuse1Infos);vec4 diffuse2Color=texture2D(diffuse2Sampler,vTextureUV*diffuse2Infos);vec4 diffuse3Color=texture2D(diffuse3Sampler,vTextureUV*diffuse3Infos);vec4 diffuse4Color=texture2D(diffuse4Sampler,vTextureUV*diffuse4Infos);diffuse1Color.rgb*=mixColor.r;diffuse2Color.rgb=mix(diffuse1Color.rgb,diffuse2Color.rgb,mixColor.g);diffuse3Color.rgb=mix(diffuse2Color.rgb,diffuse3Color.rgb,mixColor.b);finalMixColor.rgb=mix(diffuse3Color.rgb,diffuse4Color.rgb,1.0-mixColor.a);\n#ifdef MIXMAP2\nmixColor=texture2D(mixMap2Sampler,vTextureUV);mixColor.rgb*=vTextureInfos.y;vec4 diffuse5Color=texture2D(diffuse5Sampler,vTextureUV*diffuse5Infos);vec4 diffuse6Color=texture2D(diffuse6Sampler,vTextureUV*diffuse6Infos);vec4 diffuse7Color=texture2D(diffuse7Sampler,vTextureUV*diffuse7Infos);vec4 diffuse8Color=texture2D(diffuse8Sampler,vTextureUV*diffuse8Infos);diffuse5Color.rgb=mix(finalMixColor.rgb,diffuse5Color.rgb,mixColor.r);diffuse6Color.rgb=mix(diffuse5Color.rgb,diffuse6Color.rgb,mixColor.g);diffuse7Color.rgb=mix(diffuse6Color.rgb,diffuse7Color.rgb,mixColor.b);finalMixColor.rgb=mix(diffuse7Color.rgb,diffuse8Color.rgb,1.0-mixColor.a);\n#endif\n#endif\n#ifdef VERTEXCOLOR\nfinalMixColor.rgb*=vColor.rgb;\n#endif\nvec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float aggShadow=0.;float numLights=0.;\n#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\n#endif\n#include<lightFragment>[0..maxSimultaneousLights]\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\n#ifdef SPECULARTERM\nvec3 finalSpecular=specularBase*specularColor;\n#else\nvec3 finalSpecular=vec3(0.0);\n#endif\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor*finalMixColor.rgb,0.0,1.0);vec4 color=vec4(finalDiffuse+finalSpecular,alpha);\n#include<logDepthFragment>\n#include<fogFragment>\ngl_FragColor=color;\n#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n";
// Sideeffect
babylonjs_Engines_shaderStore__WEBPACK_IMPORTED_MODULE_0__.ShaderStore.ShadersStore[name] = shader;
/** @internal */
var mixPixelShader = { name: name, shader: shader };
/***/ }),
/***/ "../../../dev/materials/src/mix/mix.vertex.ts":
/*!****************************************************!*\
!*** ../../../dev/materials/src/mix/mix.vertex.ts ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ mixVertexShader: () => (/* binding */ mixVertexShader)
/* harmony export */ });
/* harmony import */ var babylonjs_Engines_shaderStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babylonjs/Shaders/ShadersInclude/logDepthVertex */ "babylonjs/Materials/effect");
/* harmony import */ var babylonjs_Engines_shaderStore__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babylonjs_Engines_shaderStore__WEBPACK_IMPORTED_MODULE_0__);
// Do not edit.
var name = "mixVertexShader";
var shader = "precision highp float;attribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\nuniform mat4 view;uniform mat4 viewProjection;\n#ifdef DIFFUSE\nvarying vec2 vTextureUV;uniform mat4 textureMatrix;uniform vec2 vTextureInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<logDepthDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);\n#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\n#endif\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef DIFFUSE\nif (vTextureInfos.x==0.)\n{vTextureUV=vec2(textureMatrix*vec4(uv,1.0,0.0));}\nelse\n{vTextureUV=vec2(textureMatrix*vec4(uv2,1.0,0.0));}\n#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#include<vertexColorMixing>\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\n#endif\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}\n";
// Sideeffect
babylonjs_Engines_shaderStore__WEBPACK_IMPORTED_MODULE_0__.ShaderStore.ShadersStore[name] = shader;
/** @internal */
var mixVertexShader = { name: name, shader: shader };
/***/ }),
/***/ "../../../dev/materials/src/mix/mixMaterial.ts":
/*!*****************************************************!*\
!*** ../../../dev/materials/src/mix/mixMaterial.ts ***!
\*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ MixMaterial: () => (/* binding */ MixMaterial)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ "../../../../node_modules/tslib/tslib.es6.mjs");
/* harmony import */ var babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babylonjs/Materials/materialHelper.functions */ "babylonjs/Materials/effect");
/* harmony import */ var babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _mix_fragment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mix.fragment */ "../../../dev/materials/src/mix/mix.fragment.ts");
/* harmony import */ var _mix_vertex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mix.vertex */ "../../../dev/materials/src/mix/mix.vertex.ts");
var MixMaterialDefines = /** @class */ (function (_super) {
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__extends)(MixMaterialDefines, _super);
function MixMaterialDefines() {
var _this = _super.call(this) || this;
_this.DIFFUSE = false;
_this.CLIPPLANE = false;
_this.CLIPPLANE2 = false;
_this.CLIPPLANE3 = false;
_this.CLIPPLANE4 = false;
_this.CLIPPLANE5 = false;
_this.CLIPPLANE6 = false;
_this.ALPHATEST = false;
_this.DEPTHPREPASS = false;
_this.POINTSIZE = false;
_this.FOG = false;
_this.SPECULARTERM = false;
_this.NORMAL = false;
_this.UV1 = false;
_this.UV2 = false;
_this.VERTEXCOLOR = false;
_this.VERTEXALPHA = false;
_this.NUM_BONE_INFLUENCERS = 0;
_this.BonesPerMesh = 0;
_this.INSTANCES = false;
_this.INSTANCESCOLOR = false;
_this.MIXMAP2 = false;
_this.IMAGEPROCESSINGPOSTPROCESS = false;
_this.SKIPFINALCOLORCLAMP = false;
_this.LOGARITHMICDEPTH = false;
_this.rebuild();
return _this;
}
return MixMaterialDefines;
}(babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.MaterialDefines));
var MixMaterial = /** @class */ (function (_super) {
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__extends)(MixMaterial, _super);
function MixMaterial(name, scene) {
var _this = _super.call(this, name, scene) || this;
/**
* Uniforms
*/
_this.diffuseColor = new babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.Color3(1, 1, 1);
_this.specularColor = new babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.Color3(0, 0, 0);
_this.specularPower = 64;
_this._disableLighting = false;
_this._maxSimultaneousLights = 4;
return _this;
}
MixMaterial.prototype.needAlphaBlending = function () {
return this.alpha < 1.0;
};
MixMaterial.prototype.needAlphaTesting = function () {
return false;
};
MixMaterial.prototype.getAlphaTestTexture = function () {
return null;
};
// Methods
MixMaterial.prototype.isReadyForSubMesh = function (mesh, subMesh, useInstances) {
var drawWrapper = subMesh._drawWrapper;
if (this.isFrozen) {
if (drawWrapper.effect && drawWrapper._wasPreviouslyReady && drawWrapper._wasPreviouslyUsingInstances === useInstances) {
return true;
}
}
if (!subMesh.materialDefines) {
subMesh.materialDefines = new MixMaterialDefines();
}
var defines = subMesh.materialDefines;
var scene = this.getScene();
if (this._isReadyForSubMesh(subMesh)) {
return true;
}
var engine = scene.getEngine();
// Textures
if (scene.texturesEnabled) {
if (!this._mixTexture1 || !this._mixTexture1.isReady()) {
return false;
}
defines._needUVs = true;
if (babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.MaterialFlags.DiffuseTextureEnabled) {
if (!this._diffuseTexture1 || !this._diffuseTexture1.isReady()) {
return false;
}
defines.DIFFUSE = true;
if (!this._diffuseTexture2 || !this._diffuseTexture2.isReady()) {
return false;
}
if (!this._diffuseTexture3 || !this._diffuseTexture3.isReady()) {
return false;
}
if (!this._diffuseTexture4 || !this._diffuseTexture4.isReady()) {
return false;
}
if (this._mixTexture2) {
if (!this._mixTexture2.isReady()) {
return false;
}
defines.MIXMAP2 = true;
if (!this._diffuseTexture5 || !this._diffuseTexture5.isReady()) {
return false;
}
if (!this._diffuseTexture6 || !this._diffuseTexture6.isReady()) {
return false;
}
if (!this._diffuseTexture7 || !this._diffuseTexture7.isReady()) {
return false;
}
if (!this._diffuseTexture8 || !this._diffuseTexture8.isReady()) {
return false;
}
}
}
}
// Misc.
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.PrepareDefinesForMisc)(mesh, scene, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);
// Lights
defines._needNormals = (0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.PrepareDefinesForLights)(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);
// Values that need to be evaluated on every frame
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.PrepareDefinesForFrameBoundValues)(scene, engine, this, defines, useInstances ? true : false);
// Attribs
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.PrepareDefinesForAttributes)(mesh, defines, true, true);
// Get correct effect
if (defines.isDirty) {
defines.markAsProcessed();
scene.resetCachedMaterial();
// Fallbacks
var fallbacks = new babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.EffectFallbacks();
if (defines.FOG) {
fallbacks.addFallback(1, "FOG");
}
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.HandleFallbacksForShadows)(defines, fallbacks, this.maxSimultaneousLights);
if (defines.NUM_BONE_INFLUENCERS > 0) {
fallbacks.addCPUSkinningFallback(0, mesh);
}
defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
//Attributes
var attribs = [babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.VertexBuffer.PositionKind];
if (defines.NORMAL) {
attribs.push(babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.VertexBuffer.NormalKind);
}
if (defines.UV1) {
attribs.push(babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.VertexBuffer.UVKind);
}
if (defines.UV2) {
attribs.push(babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.VertexBuffer.UV2Kind);
}
if (defines.VERTEXCOLOR) {
attribs.push(babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.VertexBuffer.ColorKind);
}
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.PrepareAttributesForBones)(attribs, mesh, defines, fallbacks);
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.PrepareAttributesForInstances)(attribs, defines);
// Legacy browser patch
var shaderName = "mix";
var join = defines.toString();
var uniforms = [
"world",
"view",
"viewProjection",
"vEyePosition",
"vLightsType",
"vDiffuseColor",
"vSpecularColor",
"vFogInfos",
"vFogColor",
"pointSize",
"vTextureInfos",
"mBones",
"textureMatrix",
"logarithmicDepthConstant",
"diffuse1Infos",
"diffuse2Infos",
"diffuse3Infos",
"diffuse4Infos",
"diffuse5Infos",
"diffuse6Infos",
"diffuse7Infos",
"diffuse8Infos",
];
var samplers = [
"mixMap1Sampler",
"mixMap2Sampler",
"diffuse1Sampler",
"diffuse2Sampler",
"diffuse3Sampler",
"diffuse4Sampler",
"diffuse5Sampler",
"diffuse6Sampler",
"diffuse7Sampler",
"diffuse8Sampler",
];
var uniformBuffers = [];
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.addClipPlaneUniforms)(uniforms);
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.PrepareUniformsAndSamplersList)({
uniformsNames: uniforms,
uniformBuffersNames: uniformBuffers,
samplers: samplers,
defines: defines,
maxSimultaneousLights: this.maxSimultaneousLights,
});
subMesh.setEffect(scene.getEngine().createEffect(shaderName, {
attributes: attribs,
uniformsNames: uniforms,
uniformBuffersNames: uniformBuffers,
samplers: samplers,
defines: join,
fallbacks: fallbacks,
onCompiled: this.onCompiled,
onError: this.onError,
indexParameters: { maxSimultaneousLights: this.maxSimultaneousLights },
}, engine), defines, this._materialContext);
}
if (!subMesh.effect || !subMesh.effect.isReady()) {
return false;
}
defines._renderId = scene.getRenderId();
drawWrapper._wasPreviouslyReady = true;
drawWrapper._wasPreviouslyUsingInstances = !!useInstances;
return true;
};
MixMaterial.prototype.bindForSubMesh = function (world, mesh, subMesh) {
var scene = this.getScene();
var defines = subMesh.materialDefines;
if (!defines) {
return;
}
var effect = subMesh.effect;
if (!effect) {
return;
}
this._activeEffect = effect;
// Matrices
this.bindOnlyWorldMatrix(world);
this._activeEffect.setMatrix("viewProjection", scene.getTransformMatrix());
// Bones
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.BindBonesParameters)(mesh, this._activeEffect);
if (this._mustRebind(scene, effect, subMesh)) {
// Textures
if (this._mixTexture1) {
this._activeEffect.setTexture("mixMap1Sampler", this._mixTexture1);
this._activeEffect.setFloat2("vTextureInfos", this._mixTexture1.coordinatesIndex, this._mixTexture1.level);
this._activeEffect.setMatrix("textureMatrix", this._mixTexture1.getTextureMatrix());
if (babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.MaterialFlags.DiffuseTextureEnabled) {
if (this._diffuseTexture1) {
this._activeEffect.setTexture("diffuse1Sampler", this._diffuseTexture1);
this._activeEffect.setFloat2("diffuse1Infos", this._diffuseTexture1.uScale, this._diffuseTexture1.vScale);
}
if (this._diffuseTexture2) {
this._activeEffect.setTexture("diffuse2Sampler", this._diffuseTexture2);
this._activeEffect.setFloat2("diffuse2Infos", this._diffuseTexture2.uScale, this._diffuseTexture2.vScale);
}
if (this._diffuseTexture3) {
this._activeEffect.setTexture("diffuse3Sampler", this._diffuseTexture3);
this._activeEffect.setFloat2("diffuse3Infos", this._diffuseTexture3.uScale, this._diffuseTexture3.vScale);
}
if (this._diffuseTexture4) {
this._activeEffect.setTexture("diffuse4Sampler", this._diffuseTexture4);
this._activeEffect.setFloat2("diffuse4Infos", this._diffuseTexture4.uScale, this._diffuseTexture4.vScale);
}
}
}
if (this._mixTexture2) {
this._activeEffect.setTexture("mixMap2Sampler", this._mixTexture2);
if (babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.MaterialFlags.DiffuseTextureEnabled) {
if (this._diffuseTexture5) {
this._activeEffect.setTexture("diffuse5Sampler", this._diffuseTexture5);
this._activeEffect.setFloat2("diffuse5Infos", this._diffuseTexture5.uScale, this._diffuseTexture5.vScale);
}
if (this._diffuseTexture6) {
this._activeEffect.setTexture("diffuse6Sampler", this._diffuseTexture6);
this._activeEffect.setFloat2("diffuse6Infos", this._diffuseTexture6.uScale, this._diffuseTexture6.vScale);
}
if (this._diffuseTexture7) {
this._activeEffect.setTexture("diffuse7Sampler", this._diffuseTexture7);
this._activeEffect.setFloat2("diffuse7Infos", this._diffuseTexture7.uScale, this._diffuseTexture7.vScale);
}
if (this._diffuseTexture8) {
this._activeEffect.setTexture("diffuse8Sampler", this._diffuseTexture8);
this._activeEffect.setFloat2("diffuse8Infos", this._diffuseTexture8.uScale, this._diffuseTexture8.vScale);
}
}
}
// Clip plane
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.bindClipPlane)(effect, this, scene);
// Point size
if (this.pointsCloud) {
this._activeEffect.setFloat("pointSize", this.pointSize);
}
// Log. depth
if (this._useLogarithmicDepth) {
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.BindLogDepth)(defines, effect, scene);
}
scene.bindEyePosition(effect);
}
this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
if (defines.SPECULARTERM) {
this._activeEffect.setColor4("vSpecularColor", this.specularColor, this.specularPower);
}
if (scene.lightsEnabled && !this.disableLighting) {
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.BindLights)(scene, mesh, this._activeEffect, defines, this.maxSimultaneousLights);
}
// View
if (scene.fogEnabled && mesh.applyFog && scene.fogMode !== babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.Scene.FOGMODE_NONE) {
this._activeEffect.setMatrix("view", scene.getViewMatrix());
}
// Fog
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.BindFogParameters)(scene, mesh, this._activeEffect);
this._afterBind(mesh, this._activeEffect, subMesh);
};
MixMaterial.prototype.getAnimatables = function () {
var results = [];
if (this._mixTexture1 && this._mixTexture1.animations && this._mixTexture1.animations.length > 0) {
results.push(this._mixTexture1);
}
if (this._mixTexture2 && this._mixTexture2.animations && this._mixTexture2.animations.length > 0) {
results.push(this._mixTexture2);
}
return results;
};
MixMaterial.prototype.getActiveTextures = function () {
var activeTextures = _super.prototype.getActiveTextures.call(this);
// Mix map 1
if (this._mixTexture1) {
activeTextures.push(this._mixTexture1);
}
if (this._diffuseTexture1) {
activeTextures.push(this._diffuseTexture1);
}
if (this._diffuseTexture2) {
activeTextures.push(this._diffuseTexture2);
}
if (this._diffuseTexture3) {
activeTextures.push(this._diffuseTexture3);
}
if (this._diffuseTexture4) {
activeTextures.push(this._diffuseTexture4);
}
// Mix map 2
if (this._mixTexture2) {
activeTextures.push(this._mixTexture2);
}
if (this._diffuseTexture5) {
activeTextures.push(this._diffuseTexture5);
}
if (this._diffuseTexture6) {
activeTextures.push(this._diffuseTexture6);
}
if (this._diffuseTexture7) {
activeTextures.push(this._diffuseTexture7);
}
if (this._diffuseTexture8) {
activeTextures.push(this._diffuseTexture8);
}
return activeTextures;
};
MixMaterial.prototype.hasTexture = function (texture) {
if (_super.prototype.hasTexture.call(this, texture)) {
return true;
}
// Mix map 1
if (this._mixTexture1 === texture) {
return true;
}
if (this._diffuseTexture1 === texture) {
return true;
}
if (this._diffuseTexture2 === texture) {
return true;
}
if (this._diffuseTexture3 === texture) {
return true;
}
if (this._diffuseTexture4 === texture) {
return true;
}
// Mix map 2
if (this._mixTexture2 === texture) {
return true;
}
if (this._diffuseTexture5 === texture) {
return true;
}
if (this._diffuseTexture6 === texture) {
return true;
}
if (this._diffuseTexture7 === texture) {
return true;
}
if (this._diffuseTexture8 === texture) {
return true;
}
return false;
};
MixMaterial.prototype.dispose = function (forceDisposeEffect) {
if (this._mixTexture1) {
this._mixTexture1.dispose();
}
_super.prototype.dispose.call(this, forceDisposeEffect);
};
MixMaterial.prototype.clone = function (name) {
var _this = this;
return babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.SerializationHelper.Clone(function () { return new MixMaterial(name, _this.getScene()); }, this);
};
MixMaterial.prototype.serialize = function () {
var serializationObject = _super.prototype.serialize.call(this);
serializationObject.customType = "BABYLON.MixMaterial";
return serializationObject;
};
MixMaterial.prototype.getClassName = function () {
return "MixMaterial";
};
// Statics
MixMaterial.Parse = function (source, scene, rootUrl) {
return babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.SerializationHelper.Parse(function () { return new MixMaterial(source.name, scene); }, source, scene, rootUrl);
};
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsTexture)("mixTexture1")
], MixMaterial.prototype, "_mixTexture1", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsTexturesDirty")
], MixMaterial.prototype, "mixTexture1", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsTexture)("mixTexture2")
], MixMaterial.prototype, "_mixTexture2", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsTexturesDirty")
], MixMaterial.prototype, "mixTexture2", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsTexture)("diffuseTexture1")
], MixMaterial.prototype, "_diffuseTexture1", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsTexturesDirty")
], MixMaterial.prototype, "diffuseTexture1", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsTexture)("diffuseTexture2")
], MixMaterial.prototype, "_diffuseTexture2", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsTexturesDirty")
], MixMaterial.prototype, "diffuseTexture2", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsTexture)("diffuseTexture3")
], MixMaterial.prototype, "_diffuseTexture3", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsTexturesDirty")
], MixMaterial.prototype, "diffuseTexture3", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsTexture)("diffuseTexture4")
], MixMaterial.prototype, "_diffuseTexture4", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsTexturesDirty")
], MixMaterial.prototype, "diffuseTexture4", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsTexture)("diffuseTexture1")
], MixMaterial.prototype, "_diffuseTexture5", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsTexturesDirty")
], MixMaterial.prototype, "diffuseTexture5", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsTexture)("diffuseTexture2")
], MixMaterial.prototype, "_diffuseTexture6", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsTexturesDirty")
], MixMaterial.prototype, "diffuseTexture6", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsTexture)("diffuseTexture3")
], MixMaterial.prototype, "_diffuseTexture7", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsTexturesDirty")
], MixMaterial.prototype, "diffuseTexture7", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsTexture)("diffuseTexture4")
], MixMaterial.prototype, "_diffuseTexture8", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsTexturesDirty")
], MixMaterial.prototype, "diffuseTexture8", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsColor3)()
], MixMaterial.prototype, "diffuseColor", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serializeAsColor3)()
], MixMaterial.prototype, "specularColor", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serialize)()
], MixMaterial.prototype, "specularPower", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serialize)("disableLighting")
], MixMaterial.prototype, "_disableLighting", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsLightsDirty")
], MixMaterial.prototype, "disableLighting", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.serialize)("maxSimultaneousLights")
], MixMaterial.prototype, "_maxSimultaneousLights", void 0);
(0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.expandToProperty)("_markAllSubMeshesAsLightsDirty")
], MixMaterial.prototype, "maxSimultaneousLights", void 0);
return MixMaterial;
}(babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.PushMaterial));
(0,babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_0__.RegisterClass)("BABYLON.MixMaterial", MixMaterial);
/***/ }),
/***/ "../../../lts/materials/src/legacy/legacy-mix.ts":
/*!*******************************************************!*\
!*** ../../../lts/materials/src/legacy/legacy-mix.ts ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ MixMaterial: () => (/* reexport safe */ materials_mix_index__WEBPACK_IMPORTED_MODULE_0__.MixMaterial)
/* harmony export */ });
/* harmony import */ var materials_mix_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! materials/mix/index */ "../../../dev/materials/src/mix/index.ts");
/* eslint-disable import/no-internal-modules */
/**
* This is the entry point for the UMD module.
* The entry point for a future ESM package should be index.ts
*/
var globalObject = typeof __webpack_require__.g !== "undefined" ? __webpack_require__.g : typeof window !== "undefined" ? window : undefined;
if (typeof globalObject !== "undefined") {
for (var key in materials_mix_index__WEBPACK_IMPORTED_MODULE_0__) {
globalObject.BABYLON[key] = materials_mix_index__WEBPACK_IMPORTED_MODULE_0__[key];
}
}
/***/ }),
/***/ "babylonjs/Materials/effect":
/*!****************************************************************************************************!*\
!*** external {"root":"BABYLON","commonjs":"babylonjs","commonjs2":"babylonjs","amd":"babylonjs"} ***!
\****************************************************************************************************/
/***/ ((module) => {
module.exports = __WEBPACK_EXTERNAL_MODULE_babylonjs_Materials_effect__;
/***/ }),
/***/ "../../../../node_modules/tslib/tslib.es6.mjs":
/*!****************************************************!*\
!*** ../../../../node_modules/tslib/tslib.es6.mjs ***!
\****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ __addDisposableResource: () => (/* binding */ __addDisposableResource),
/* harmony export */ __assign: () => (/* binding */ __assign),
/* harmony export */ __asyncDelegator: () => (/* binding */ __asyncDelegator),
/* harmony export */ __asyncGenerator: () => (/* binding */ __asyncGenerator),
/* harmony export */ __asyncValues: () => (/* binding */ __asyncValues),
/* harmony export */ __await: () => (/* binding */ __await),
/* harmony export */ __awaiter: () => (/* binding */ __awaiter),
/* harmony export */ __classPrivateFieldGet: () => (/* binding */ __classPrivateFieldGet),
/* harmony export */ __classPrivateFieldIn: () => (/* binding */ __classPrivateFieldIn),
/* harmony export */ __classPrivateFieldSet: () => (/* binding */ __classPrivateFieldSet),
/* harmony export */ __createBinding: () => (/* binding */ __createBinding),
/* harmony export */ __decorate: () => (/* binding */ __decorate),
/* harmony export */ __disposeResources: () => (/* binding */ __disposeResources),
/* harmony export */ __esDecorate: () => (/* binding */ __esDecorate),
/* harmony export */ __exportStar: () => (/* binding */ __exportStar),
/* harmony export */ __extends: () => (/* binding */ __extends),
/* harmony export */ __generator: () => (/* binding */ __generator),
/* harmony export */ __importDefault: () => (/* binding */ __importDefault),
/* harmony export */ __importStar: () => (/* binding */ __importStar),
/* harmony export */ __makeTemplateObject: () => (/* binding */ __makeTemplateObject),
/* harmony export */ __metadata: () => (/* binding */ __metadata),
/* harmony export */ __param: () => (/* binding */ __param),
/* harmony export */ __propKey: () => (/* binding */ __propKey),
/* harmony export */ __read: () => (/* binding */ __read),
/* harmony export */ __rest: () => (/* binding */ __rest),
/* harmony export */ __runInitializers: () => (/* binding */ __runInitializers),
/* harmony export */ __setFunctionName: () => (/* binding */ __setFunctionName),
/* harmony export */ __spread: () => (/* binding */ __spread),
/* harmony export */ __spreadArray: () => (/* binding */ __spreadArray),
/* harmony export */ __spreadArrays: () => (/* binding */ __spreadArrays),
/* harmony export */ __values: () => (/* binding */ __values),
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise, SuppressedError, Symbol */
var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
var __assign = function() {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
}
return __assign.apply(this, arguments);
}
function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
}
function __decorate(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
}
function __param(paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
}
function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
function __runInitializers(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
function __propKey(x) {
return typeof x === "symbol" ? x : "".concat(x);
};
function __setFunctionName(f, name, prefix) {
if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
};
function __metadata(metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
}
var __createBinding = Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
});
function __exportStar(m, o) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
}
function __values(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
}
/** @deprecated */
function __spread() {
for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i]));
return ar;
}
/** @deprecated */
function __spreadArrays() {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0,