96d50d2d13bd677994678491b2eb61719dc4f2edce90cb5a4e06d8ca1e800c7b.json 45 KB

1
  1. {"ast":null,"code":"import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Types of curves supported by the Curve block\n */\nexport var CurveBlockTypes;\n(function (CurveBlockTypes) {\n /** EaseInSine */\n CurveBlockTypes[CurveBlockTypes[\"EaseInSine\"] = 0] = \"EaseInSine\";\n /** EaseOutSine */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutSine\"] = 1] = \"EaseOutSine\";\n /** EaseInOutSine */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutSine\"] = 2] = \"EaseInOutSine\";\n /** EaseInQuad */\n CurveBlockTypes[CurveBlockTypes[\"EaseInQuad\"] = 3] = \"EaseInQuad\";\n /** EaseOutQuad */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutQuad\"] = 4] = \"EaseOutQuad\";\n /** EaseInOutQuad */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutQuad\"] = 5] = \"EaseInOutQuad\";\n /** EaseInCubic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInCubic\"] = 6] = \"EaseInCubic\";\n /** EaseOutCubic */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutCubic\"] = 7] = \"EaseOutCubic\";\n /** EaseInOutCubic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutCubic\"] = 8] = \"EaseInOutCubic\";\n /** EaseInQuart */\n CurveBlockTypes[CurveBlockTypes[\"EaseInQuart\"] = 9] = \"EaseInQuart\";\n /** EaseOutQuart */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutQuart\"] = 10] = \"EaseOutQuart\";\n /** EaseInOutQuart */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutQuart\"] = 11] = \"EaseInOutQuart\";\n /** EaseInQuint */\n CurveBlockTypes[CurveBlockTypes[\"EaseInQuint\"] = 12] = \"EaseInQuint\";\n /** EaseOutQuint */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutQuint\"] = 13] = \"EaseOutQuint\";\n /** EaseInOutQuint */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutQuint\"] = 14] = \"EaseInOutQuint\";\n /** EaseInExpo */\n CurveBlockTypes[CurveBlockTypes[\"EaseInExpo\"] = 15] = \"EaseInExpo\";\n /** EaseOutExpo */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutExpo\"] = 16] = \"EaseOutExpo\";\n /** EaseInOutExpo */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutExpo\"] = 17] = \"EaseInOutExpo\";\n /** EaseInCirc */\n CurveBlockTypes[CurveBlockTypes[\"EaseInCirc\"] = 18] = \"EaseInCirc\";\n /** EaseOutCirc */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutCirc\"] = 19] = \"EaseOutCirc\";\n /** EaseInOutCirc */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutCirc\"] = 20] = \"EaseInOutCirc\";\n /** EaseInBack */\n CurveBlockTypes[CurveBlockTypes[\"EaseInBack\"] = 21] = \"EaseInBack\";\n /** EaseOutBack */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutBack\"] = 22] = \"EaseOutBack\";\n /** EaseInOutBack */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutBack\"] = 23] = \"EaseInOutBack\";\n /** EaseInElastic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInElastic\"] = 24] = \"EaseInElastic\";\n /** EaseOutElastic */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutElastic\"] = 25] = \"EaseOutElastic\";\n /** EaseInOutElastic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutElastic\"] = 26] = \"EaseInOutElastic\";\n})(CurveBlockTypes || (CurveBlockTypes = {}));\n/**\n * Block used to apply curve operation\n */\nexport class CurveBlock extends NodeMaterialBlock {\n /**\n * Creates a new CurveBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Gets or sets the type of the curve applied by the block\n */\n this.type = CurveBlockTypes.EaseInOutSine;\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Object);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Int);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CurveBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _duplicateEntry(entry, component) {\n return `ret.${component} = ${entry.replace(/VAL/g, \"v.\" + component)}`;\n }\n _duplicateEntryDirect(entry) {\n return `return ${entry.replace(/VAL/g, \"v\")}`;\n }\n _duplicateVector(entry, inputType, isWGSL) {\n if (inputType === \"float\" || inputType === \"f32\") {\n return this._duplicateEntryDirect(entry);\n }\n const size = parseInt(inputType.replace(\"vec\", \"\"));\n let code = isWGSL ? `\n var ret: vec${size}f = vec${size}f(0.0);\n ` : `\n vec${size} ret = vec${size}(0.0);\n `;\n for (let i = 1; i <= size; i++) {\n code += this._duplicateEntry(entry, i === 1 ? \"x\" : i === 2 ? \"y\" : i === 3 ? \"z\" : \"w\") + \";\\n\";\n }\n code += \"return ret;\\n\";\n return code;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n let registeredFunction = \"\";\n let registeredFunctionName = \"\";\n const inputType = state._getShaderType(this.input.type);\n const isWGSL = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n registeredFunctionName = CurveBlockTypes[this.type] + \"_\" + inputType.replace(\"<\", \"\").replace(\">\", \"\");\n switch (this.type) {\n case CurveBlockTypes.EaseInSine:\n registeredFunction = `return 1.0 - cos((v * 3.1415) / 2.0)`;\n break;\n case CurveBlockTypes.EaseOutSine:\n registeredFunction = `return sin((v * 3.1415) / 2.0)`;\n break;\n case CurveBlockTypes.EaseInOutSine:\n registeredFunction = `return -(cos(v * 3.1415) - 1.0) / 2.0`;\n break;\n case CurveBlockTypes.EaseInQuad:\n registeredFunction = `return v * v`;\n break;\n case CurveBlockTypes.EaseOutQuad:\n registeredFunction = `return (1.0 - v) * (1.0 - v)`;\n break;\n case CurveBlockTypes.EaseInOutQuad:\n {\n const entry = state._generateTernary(\"2.0 * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 2.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInCubic:\n registeredFunction = `return v * v * v`;\n break;\n case CurveBlockTypes.EaseOutCubic:\n {\n const entry = \"1.0 - pow(1.0 - VAL, 3.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutCubic:\n {\n const entry = state._generateTernary(\"4.0 * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 3.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInQuart:\n registeredFunction = `return v * v * v * v`;\n break;\n case CurveBlockTypes.EaseOutQuart:\n {\n const entry = \"1.0 - pow(1.0 - VAL, 4.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutQuart:\n {\n const entry = state._generateTernary(\"8.0 * VAL * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 4.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInQuint:\n registeredFunction = `return v * v * v * v * v`;\n break;\n case CurveBlockTypes.EaseOutQuint:\n {\n const entry = \"1.0 - pow(1.0 - VAL, 5.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutQuint:\n {\n const entry = state._generateTernary(\"16.0 * VAL * VAL * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 5.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInExpo:\n {\n const entry = state._generateTernary(\"0.0\", \"pow(2.0, 10.0 * VAL - 10.0)\", \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseOutExpo:\n {\n const entry = state._generateTernary(\"1.0\", \"1.0 - pow(2.0, -10.0 * VAL)\", \"VAL == 1.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutExpo:\n {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", state._generateTernary(\"pow(2.0, 20.0 * VAL - 10.0) / 2.0\", \"(2.0 - pow(2.0, -20.0 * VAL + 10.0)) / 2.0\", \"VAL < 0.5\"), \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInCirc:\n {\n const entry = \"1.0 - sqrt(1.0 - pow(VAL, 2.0))\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseOutCirc:\n {\n const entry = \"sqrt(1.0 - pow(VAL - 1.0, 2.0))\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutCirc:\n {\n const entry = state._generateTernary(\"(1.0 - sqrt(1.0 - pow(2.0 * VAL, 2.0))) / 2.0\", \"(sqrt(1.0 - pow(-2.0 * VAL + 2.0, 2.0)) + 1.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInBack:\n {\n registeredFunction = \"return 2.70158 * v * v * v - 1.70158 * v * v\";\n break;\n }\n case CurveBlockTypes.EaseOutBack:\n {\n const entry = \"2.70158 * pow(VAL - 1.0, 3.0) + 1.70158 * pow(VAL - 1.0, 2.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutBack:\n {\n const entry = state._generateTernary(\"(pow(2.0 * VAL, 2.0) * ((3.5949095) * 2.0 * VAL - 2.5949095)) / 2.0\", \"(pow(2.0 * VAL - 2.0, 2.0) * (3.5949095 * (VAL * 2.0 - 2.0) + 3.5949095) + 2.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInElastic:\n {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", \"-pow(2.0, 10.0 * VAL - 10.0) * sin((VAL * 10.0 - 10.75) * ((2.0 * 3.1415) / 3.0))\", \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseOutElastic:\n {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", \"pow(2.0, -10.0 * VAL) * sin((VAL * 10.0 - 0.75) * ((2.0 * 3.1415) / 3.0)) + 1.0\", \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutElastic:\n {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", state._generateTernary(\"-(pow(2.0, 20.0 * VAL - 10.0) * sin((20.0 * VAL - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0\", \"(pow(2.0, -20.0 * VAL + 10.0) * sin((20.0 * VAL - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0 + 1.0\", \"VAL < 0.5\"), \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n }\n if (isWGSL) {\n state._emitFunction(registeredFunctionName, `fn ${registeredFunctionName}(v: ${inputType}) -> ${inputType} {${registeredFunction};}\\n`, \"\");\n } else {\n state._emitFunction(registeredFunctionName, `${inputType} ${registeredFunctionName}(${inputType} v) {${registeredFunction};}\\n`, \"\");\n }\n state.compilationString += state._declareOutput(output) + ` = ${registeredFunctionName}(${this.input.associatedVariableName});\\n`;\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.curveType = this.type;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.type = serializationObject.curveType;\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.type = BABYLON.CurveBlockTypes.${CurveBlockTypes[this.type]};\\n`;\n return codeString;\n }\n}\n__decorate([editableInPropertyPage(\"Type\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: {\n rebuild: true\n },\n embedded: true,\n options: [{\n label: \"EaseInSine\",\n value: CurveBlockTypes.EaseInSine\n }, {\n label: \"EaseOutSine\",\n value: CurveBlockTypes.EaseOutSine\n }, {\n label: \"EaseInOutSine\",\n value: CurveBlockTypes.EaseInOutSine\n }, {\n label: \"EaseInQuad\",\n value: CurveBlockTypes.EaseInQuad\n }, {\n label: \"EaseOutQuad\",\n value: CurveBlockTypes.EaseOutQuad\n }, {\n label: \"EaseInOutQuad\",\n value: CurveBlockTypes.EaseInOutQuad\n }, {\n label: \"EaseInCubic\",\n value: CurveBlockTypes.EaseInCubic\n }, {\n label: \"EaseOutCubic\",\n value: CurveBlockTypes.EaseOutCubic\n }, {\n label: \"EaseInOutCubic\",\n value: CurveBlockTypes.EaseInOutCubic\n }, {\n label: \"EaseInQuart\",\n value: CurveBlockTypes.EaseInQuart\n }, {\n label: \"EaseOutQuart\",\n value: CurveBlockTypes.EaseOutQuart\n }, {\n label: \"EaseInOutQuart\",\n value: CurveBlockTypes.EaseInOutQuart\n }, {\n label: \"EaseInQuint\",\n value: CurveBlockTypes.EaseInQuint\n }, {\n label: \"EaseOutQuint\",\n value: CurveBlockTypes.EaseOutQuint\n }, {\n label: \"EaseInOutQuint\",\n value: CurveBlockTypes.EaseInOutQuint\n }, {\n label: \"EaseInExpo\",\n value: CurveBlockTypes.EaseInExpo\n }, {\n label: \"EaseOutExpo\",\n value: CurveBlockTypes.EaseOutExpo\n }, {\n label: \"EaseInOutExpo\",\n value: CurveBlockTypes.EaseInOutExpo\n }, {\n label: \"EaseInCirc\",\n value: CurveBlockTypes.EaseInCirc\n }, {\n label: \"EaseOutCirc\",\n value: CurveBlockTypes.EaseOutCirc\n }, {\n label: \"EaseInOutCirc\",\n value: CurveBlockTypes.EaseInOutCirc\n }, {\n label: \"EaseInBack\",\n value: CurveBlockTypes.EaseInBack\n }, {\n label: \"EaseOutBack\",\n value: CurveBlockTypes.EaseOutBack\n }, {\n label: \"EaseInOutBack\",\n value: CurveBlockTypes.EaseInOutBack\n }, {\n label: \"EaseInElastic\",\n value: CurveBlockTypes.EaseInElastic\n }, {\n label: \"EaseOutElastic\",\n value: CurveBlockTypes.EaseOutElastic\n }, {\n label: \"EaseInOutElastic\",\n value: CurveBlockTypes.EaseInOutElastic\n }]\n})], CurveBlock.prototype, \"type\", void 0);\nRegisterClass(\"BABYLON.CurveBlock\", CurveBlock);","map":{"version":3,"names":["__decorate","NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","RegisterClass","editableInPropertyPage","CurveBlockTypes","CurveBlock","constructor","name","Neutral","type","EaseInOutSine","registerInput","AutoDetect","registerOutput","BasedOnInput","_outputs","_typeConnectionSource","_inputs","excludedConnectionPointTypes","push","Matrix","Object","Int","getClassName","input","output","_duplicateEntry","entry","component","replace","_duplicateEntryDirect","_duplicateVector","inputType","isWGSL","size","parseInt","code","i","_buildBlock","state","registeredFunction","registeredFunctionName","_getShaderType","shaderLanguage","EaseInSine","EaseOutSine","EaseInQuad","EaseOutQuad","EaseInOutQuad","_generateTernary","EaseInCubic","EaseOutCubic","EaseInOutCubic","EaseInQuart","EaseOutQuart","EaseInOutQuart","EaseInQuint","EaseOutQuint","EaseInOutQuint","EaseInExpo","EaseOutExpo","EaseInOutExpo","EaseInCirc","EaseOutCirc","EaseInOutCirc","EaseInBack","EaseOutBack","EaseInOutBack","EaseInElastic","EaseOutElastic","EaseInOutElastic","_emitFunction","compilationString","_declareOutput","associatedVariableName","serialize","serializationObject","curveType","_deserialize","scene","rootUrl","_dumpPropertiesCode","codeString","_codeVariableName","notifiers","rebuild","embedded","options","label","value","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/curveBlock.js"],"sourcesContent":["import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Types of curves supported by the Curve block\n */\nexport var CurveBlockTypes;\n(function (CurveBlockTypes) {\n /** EaseInSine */\n CurveBlockTypes[CurveBlockTypes[\"EaseInSine\"] = 0] = \"EaseInSine\";\n /** EaseOutSine */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutSine\"] = 1] = \"EaseOutSine\";\n /** EaseInOutSine */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutSine\"] = 2] = \"EaseInOutSine\";\n /** EaseInQuad */\n CurveBlockTypes[CurveBlockTypes[\"EaseInQuad\"] = 3] = \"EaseInQuad\";\n /** EaseOutQuad */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutQuad\"] = 4] = \"EaseOutQuad\";\n /** EaseInOutQuad */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutQuad\"] = 5] = \"EaseInOutQuad\";\n /** EaseInCubic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInCubic\"] = 6] = \"EaseInCubic\";\n /** EaseOutCubic */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutCubic\"] = 7] = \"EaseOutCubic\";\n /** EaseInOutCubic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutCubic\"] = 8] = \"EaseInOutCubic\";\n /** EaseInQuart */\n CurveBlockTypes[CurveBlockTypes[\"EaseInQuart\"] = 9] = \"EaseInQuart\";\n /** EaseOutQuart */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutQuart\"] = 10] = \"EaseOutQuart\";\n /** EaseInOutQuart */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutQuart\"] = 11] = \"EaseInOutQuart\";\n /** EaseInQuint */\n CurveBlockTypes[CurveBlockTypes[\"EaseInQuint\"] = 12] = \"EaseInQuint\";\n /** EaseOutQuint */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutQuint\"] = 13] = \"EaseOutQuint\";\n /** EaseInOutQuint */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutQuint\"] = 14] = \"EaseInOutQuint\";\n /** EaseInExpo */\n CurveBlockTypes[CurveBlockTypes[\"EaseInExpo\"] = 15] = \"EaseInExpo\";\n /** EaseOutExpo */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutExpo\"] = 16] = \"EaseOutExpo\";\n /** EaseInOutExpo */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutExpo\"] = 17] = \"EaseInOutExpo\";\n /** EaseInCirc */\n CurveBlockTypes[CurveBlockTypes[\"EaseInCirc\"] = 18] = \"EaseInCirc\";\n /** EaseOutCirc */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutCirc\"] = 19] = \"EaseOutCirc\";\n /** EaseInOutCirc */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutCirc\"] = 20] = \"EaseInOutCirc\";\n /** EaseInBack */\n CurveBlockTypes[CurveBlockTypes[\"EaseInBack\"] = 21] = \"EaseInBack\";\n /** EaseOutBack */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutBack\"] = 22] = \"EaseOutBack\";\n /** EaseInOutBack */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutBack\"] = 23] = \"EaseInOutBack\";\n /** EaseInElastic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInElastic\"] = 24] = \"EaseInElastic\";\n /** EaseOutElastic */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutElastic\"] = 25] = \"EaseOutElastic\";\n /** EaseInOutElastic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutElastic\"] = 26] = \"EaseInOutElastic\";\n})(CurveBlockTypes || (CurveBlockTypes = {}));\n/**\n * Block used to apply curve operation\n */\nexport class CurveBlock extends NodeMaterialBlock {\n /**\n * Creates a new CurveBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Gets or sets the type of the curve applied by the block\n */\n this.type = CurveBlockTypes.EaseInOutSine;\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Object);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Int);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CurveBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _duplicateEntry(entry, component) {\n return `ret.${component} = ${entry.replace(/VAL/g, \"v.\" + component)}`;\n }\n _duplicateEntryDirect(entry) {\n return `return ${entry.replace(/VAL/g, \"v\")}`;\n }\n _duplicateVector(entry, inputType, isWGSL) {\n if (inputType === \"float\" || inputType === \"f32\") {\n return this._duplicateEntryDirect(entry);\n }\n const size = parseInt(inputType.replace(\"vec\", \"\"));\n let code = isWGSL\n ? `\r\n var ret: vec${size}f = vec${size}f(0.0);\r\n `\n : `\r\n vec${size} ret = vec${size}(0.0);\r\n `;\n for (let i = 1; i <= size; i++) {\n code += this._duplicateEntry(entry, i === 1 ? \"x\" : i === 2 ? \"y\" : i === 3 ? \"z\" : \"w\") + \";\\n\";\n }\n code += \"return ret;\\n\";\n return code;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n let registeredFunction = \"\";\n let registeredFunctionName = \"\";\n const inputType = state._getShaderType(this.input.type);\n const isWGSL = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n registeredFunctionName = CurveBlockTypes[this.type] + \"_\" + inputType.replace(\"<\", \"\").replace(\">\", \"\");\n switch (this.type) {\n case CurveBlockTypes.EaseInSine:\n registeredFunction = `return 1.0 - cos((v * 3.1415) / 2.0)`;\n break;\n case CurveBlockTypes.EaseOutSine:\n registeredFunction = `return sin((v * 3.1415) / 2.0)`;\n break;\n case CurveBlockTypes.EaseInOutSine:\n registeredFunction = `return -(cos(v * 3.1415) - 1.0) / 2.0`;\n break;\n case CurveBlockTypes.EaseInQuad:\n registeredFunction = `return v * v`;\n break;\n case CurveBlockTypes.EaseOutQuad:\n registeredFunction = `return (1.0 - v) * (1.0 - v)`;\n break;\n case CurveBlockTypes.EaseInOutQuad: {\n const entry = state._generateTernary(\"2.0 * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 2.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInCubic:\n registeredFunction = `return v * v * v`;\n break;\n case CurveBlockTypes.EaseOutCubic: {\n const entry = \"1.0 - pow(1.0 - VAL, 3.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutCubic: {\n const entry = state._generateTernary(\"4.0 * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 3.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInQuart:\n registeredFunction = `return v * v * v * v`;\n break;\n case CurveBlockTypes.EaseOutQuart: {\n const entry = \"1.0 - pow(1.0 - VAL, 4.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutQuart: {\n const entry = state._generateTernary(\"8.0 * VAL * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 4.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInQuint:\n registeredFunction = `return v * v * v * v * v`;\n break;\n case CurveBlockTypes.EaseOutQuint: {\n const entry = \"1.0 - pow(1.0 - VAL, 5.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutQuint: {\n const entry = state._generateTernary(\"16.0 * VAL * VAL * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 5.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInExpo: {\n const entry = state._generateTernary(\"0.0\", \"pow(2.0, 10.0 * VAL - 10.0)\", \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseOutExpo: {\n const entry = state._generateTernary(\"1.0\", \"1.0 - pow(2.0, -10.0 * VAL)\", \"VAL == 1.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutExpo: {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", state._generateTernary(\"pow(2.0, 20.0 * VAL - 10.0) / 2.0\", \"(2.0 - pow(2.0, -20.0 * VAL + 10.0)) / 2.0\", \"VAL < 0.5\"), \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInCirc: {\n const entry = \"1.0 - sqrt(1.0 - pow(VAL, 2.0))\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseOutCirc: {\n const entry = \"sqrt(1.0 - pow(VAL - 1.0, 2.0))\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutCirc: {\n const entry = state._generateTernary(\"(1.0 - sqrt(1.0 - pow(2.0 * VAL, 2.0))) / 2.0\", \"(sqrt(1.0 - pow(-2.0 * VAL + 2.0, 2.0)) + 1.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInBack: {\n registeredFunction = \"return 2.70158 * v * v * v - 1.70158 * v * v\";\n break;\n }\n case CurveBlockTypes.EaseOutBack: {\n const entry = \"2.70158 * pow(VAL - 1.0, 3.0) + 1.70158 * pow(VAL - 1.0, 2.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutBack: {\n const entry = state._generateTernary(\"(pow(2.0 * VAL, 2.0) * ((3.5949095) * 2.0 * VAL - 2.5949095)) / 2.0\", \"(pow(2.0 * VAL - 2.0, 2.0) * (3.5949095 * (VAL * 2.0 - 2.0) + 3.5949095) + 2.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInElastic: {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", \"-pow(2.0, 10.0 * VAL - 10.0) * sin((VAL * 10.0 - 10.75) * ((2.0 * 3.1415) / 3.0))\", \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseOutElastic: {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", \"pow(2.0, -10.0 * VAL) * sin((VAL * 10.0 - 0.75) * ((2.0 * 3.1415) / 3.0)) + 1.0\", \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutElastic: {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", state._generateTernary(\"-(pow(2.0, 20.0 * VAL - 10.0) * sin((20.0 * VAL - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0\", \"(pow(2.0, -20.0 * VAL + 10.0) * sin((20.0 * VAL - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0 + 1.0\", \"VAL < 0.5\"), \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n }\n if (isWGSL) {\n state._emitFunction(registeredFunctionName, `fn ${registeredFunctionName}(v: ${inputType}) -> ${inputType} {${registeredFunction};}\\n`, \"\");\n }\n else {\n state._emitFunction(registeredFunctionName, `${inputType} ${registeredFunctionName}(${inputType} v) {${registeredFunction};}\\n`, \"\");\n }\n state.compilationString += state._declareOutput(output) + ` = ${registeredFunctionName}(${this.input.associatedVariableName});\\n`;\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.curveType = this.type;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.type = serializationObject.curveType;\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.type = BABYLON.CurveBlockTypes.${CurveBlockTypes[this.type]};\\n`;\n return codeString;\n }\n}\n__decorate([\n editableInPropertyPage(\"Type\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"EaseInSine\", value: CurveBlockTypes.EaseInSine },\n { label: \"EaseOutSine\", value: CurveBlockTypes.EaseOutSine },\n { label: \"EaseInOutSine\", value: CurveBlockTypes.EaseInOutSine },\n { label: \"EaseInQuad\", value: CurveBlockTypes.EaseInQuad },\n { label: \"EaseOutQuad\", value: CurveBlockTypes.EaseOutQuad },\n { label: \"EaseInOutQuad\", value: CurveBlockTypes.EaseInOutQuad },\n { label: \"EaseInCubic\", value: CurveBlockTypes.EaseInCubic },\n { label: \"EaseOutCubic\", value: CurveBlockTypes.EaseOutCubic },\n { label: \"EaseInOutCubic\", value: CurveBlockTypes.EaseInOutCubic },\n { label: \"EaseInQuart\", value: CurveBlockTypes.EaseInQuart },\n { label: \"EaseOutQuart\", value: CurveBlockTypes.EaseOutQuart },\n { label: \"EaseInOutQuart\", value: CurveBlockTypes.EaseInOutQuart },\n { label: \"EaseInQuint\", value: CurveBlockTypes.EaseInQuint },\n { label: \"EaseOutQuint\", value: CurveBlockTypes.EaseOutQuint },\n { label: \"EaseInOutQuint\", value: CurveBlockTypes.EaseInOutQuint },\n { label: \"EaseInExpo\", value: CurveBlockTypes.EaseInExpo },\n { label: \"EaseOutExpo\", value: CurveBlockTypes.EaseOutExpo },\n { label: \"EaseInOutExpo\", value: CurveBlockTypes.EaseInOutExpo },\n { label: \"EaseInCirc\", value: CurveBlockTypes.EaseInCirc },\n { label: \"EaseOutCirc\", value: CurveBlockTypes.EaseOutCirc },\n { label: \"EaseInOutCirc\", value: CurveBlockTypes.EaseInOutCirc },\n { label: \"EaseInBack\", value: CurveBlockTypes.EaseInBack },\n { label: \"EaseOutBack\", value: CurveBlockTypes.EaseOutBack },\n { label: \"EaseInOutBack\", value: CurveBlockTypes.EaseInOutBack },\n { label: \"EaseInElastic\", value: CurveBlockTypes.EaseInElastic },\n { label: \"EaseOutElastic\", value: CurveBlockTypes.EaseOutElastic },\n { label: \"EaseInOutElastic\", value: CurveBlockTypes.EaseInOutElastic },\n ],\n })\n], CurveBlock.prototype, \"type\", void 0);\nRegisterClass(\"BABYLON.CurveBlock\", CurveBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}