bdba3a77893c5073c0ddc05dfcc407dbfcc8812f89ce1be5bba2d8af987cc11e.json 19 KB

1
  1. {"ast":null,"code":"import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { ImageSourceBlock } from \"./Dual/imageSourceBlock.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../nodeMaterialConnectionPointCustomObject.js\";\n/**\n * Custom block created from user-defined json\n */\nexport class CustomBlock extends NodeMaterialBlock {\n /**\n * Gets or sets the options for this custom block\n */\n get options() {\n return this._options;\n }\n set options(options) {\n this._deserializeOptions(options);\n }\n /**\n * Creates a new CustomBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CustomBlock\";\n }\n _buildBlock(state) {\n super._buildBlock(state);\n let code = this._code;\n let functionName = this._options.functionName;\n // Replace the TYPE_XXX placeholders (if any)\n this._inputs.forEach(input => {\n const rexp = new RegExp(\"\\\\{TYPE_\" + input.name + \"\\\\}\", \"gm\");\n const type = state._getGLType(input.type);\n code = code.replace(rexp, type);\n functionName = functionName.replace(rexp, type);\n });\n this._outputs.forEach(output => {\n const rexp = new RegExp(\"\\\\{TYPE_\" + output.name + \"\\\\}\", \"gm\");\n const type = state._getGLType(output.type);\n code = code.replace(rexp, type);\n functionName = functionName.replace(rexp, type);\n });\n state._emitFunction(functionName, code, \"\");\n // Declare the output variables\n this._outputs.forEach(output => {\n state.compilationString += state._declareOutput(output) + \";\\n\";\n });\n // Generate the function call\n state.compilationString += functionName + \"(\";\n let hasInput = false;\n this._inputs.forEach((input, index) => {\n if (index > 0) {\n state.compilationString += \", \";\n }\n if (this._inputSamplers && this._inputSamplers.indexOf(input.name) !== -1) {\n var _input$connectedPoint, _input$connectedPoint2;\n state.compilationString += (_input$connectedPoint = (_input$connectedPoint2 = input.connectedPoint) === null || _input$connectedPoint2 === void 0 || (_input$connectedPoint2 = _input$connectedPoint2.ownerBlock) === null || _input$connectedPoint2 === void 0 ? void 0 : _input$connectedPoint2.samplerName) !== null && _input$connectedPoint !== void 0 ? _input$connectedPoint : input.associatedVariableName;\n } else {\n state.compilationString += input.associatedVariableName;\n }\n hasInput = true;\n });\n this._outputs.forEach((output, index) => {\n if (index > 0 || hasInput) {\n state.compilationString += \", \";\n }\n state.compilationString += output.associatedVariableName;\n });\n state.compilationString += \");\\n\";\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.options = ${JSON.stringify(this._options)};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.options = this._options;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n this._deserializeOptions(serializationObject.options);\n super._deserialize(serializationObject, scene, rootUrl);\n }\n _deserializeOptions(options) {\n var _options$inParameters, _options$outParameter, _options$inLinkedConn;\n this._options = options;\n this._code = options.code.join(\"\\n\") + \"\\n\";\n this.name = this.name || options.name;\n this.target = NodeMaterialBlockTargets[options.target];\n (_options$inParameters = options.inParameters) === null || _options$inParameters === void 0 || _options$inParameters.forEach((input, index) => {\n const type = NodeMaterialBlockConnectionPointTypes[input.type];\n if (input.type === \"sampler2D\" || input.type === \"samplerCube\") {\n this._inputSamplers = this._inputSamplers || [];\n this._inputSamplers.push(input.name);\n this.registerInput(input.name, NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(input.name, this, 0 /* NodeMaterialConnectionPointDirection.Input */, ImageSourceBlock, \"ImageSourceBlock\"));\n } else {\n this.registerInput(input.name, type);\n }\n Object.defineProperty(this, input.name, {\n get: function () {\n return this._inputs[index];\n },\n enumerable: true,\n configurable: true\n });\n });\n (_options$outParameter = options.outParameters) === null || _options$outParameter === void 0 || _options$outParameter.forEach((output, index) => {\n this.registerOutput(output.name, NodeMaterialBlockConnectionPointTypes[output.type]);\n Object.defineProperty(this, output.name, {\n get: function () {\n return this._outputs[index];\n },\n enumerable: true,\n configurable: true\n });\n if (output.type === \"BasedOnInput\") {\n this._outputs[index]._typeConnectionSource = this._findInputByName(output.typeFromInput)[0];\n }\n });\n (_options$inLinkedConn = options.inLinkedConnectionTypes) === null || _options$inLinkedConn === void 0 || _options$inLinkedConn.forEach(connection => {\n this._linkConnectionTypes(this._findInputByName(connection.input1)[1], this._findInputByName(connection.input2)[1]);\n });\n }\n _findInputByName(name) {\n if (!name) {\n return null;\n }\n for (let i = 0; i < this._inputs.length; i++) {\n if (this._inputs[i].name === name) {\n return [this._inputs[i], i];\n }\n }\n return null;\n }\n}\nRegisterClass(\"BABYLON.CustomBlock\", CustomBlock);","map":{"version":3,"names":["NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","RegisterClass","ImageSourceBlock","NodeMaterialConnectionPointCustomObject","CustomBlock","options","_options","_deserializeOptions","constructor","name","getClassName","_buildBlock","state","code","_code","functionName","_inputs","forEach","input","rexp","RegExp","type","_getGLType","replace","_outputs","output","_emitFunction","compilationString","_declareOutput","hasInput","index","_inputSamplers","indexOf","_input$connectedPoint","_input$connectedPoint2","connectedPoint","ownerBlock","samplerName","associatedVariableName","_dumpPropertiesCode","codeString","_codeVariableName","JSON","stringify","serialize","serializationObject","_deserialize","scene","rootUrl","_options$inParameters","_options$outParameter","_options$inLinkedConn","join","target","inParameters","push","registerInput","Object","VertexAndFragment","defineProperty","get","enumerable","configurable","outParameters","registerOutput","_typeConnectionSource","_findInputByName","typeFromInput","inLinkedConnectionTypes","connection","_linkConnectionTypes","input1","input2","i","length"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/customBlock.js"],"sourcesContent":["import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { ImageSourceBlock } from \"./Dual/imageSourceBlock.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../nodeMaterialConnectionPointCustomObject.js\";\n/**\n * Custom block created from user-defined json\n */\nexport class CustomBlock extends NodeMaterialBlock {\n /**\n * Gets or sets the options for this custom block\n */\n get options() {\n return this._options;\n }\n set options(options) {\n this._deserializeOptions(options);\n }\n /**\n * Creates a new CustomBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CustomBlock\";\n }\n _buildBlock(state) {\n super._buildBlock(state);\n let code = this._code;\n let functionName = this._options.functionName;\n // Replace the TYPE_XXX placeholders (if any)\n this._inputs.forEach((input) => {\n const rexp = new RegExp(\"\\\\{TYPE_\" + input.name + \"\\\\}\", \"gm\");\n const type = state._getGLType(input.type);\n code = code.replace(rexp, type);\n functionName = functionName.replace(rexp, type);\n });\n this._outputs.forEach((output) => {\n const rexp = new RegExp(\"\\\\{TYPE_\" + output.name + \"\\\\}\", \"gm\");\n const type = state._getGLType(output.type);\n code = code.replace(rexp, type);\n functionName = functionName.replace(rexp, type);\n });\n state._emitFunction(functionName, code, \"\");\n // Declare the output variables\n this._outputs.forEach((output) => {\n state.compilationString += state._declareOutput(output) + \";\\n\";\n });\n // Generate the function call\n state.compilationString += functionName + \"(\";\n let hasInput = false;\n this._inputs.forEach((input, index) => {\n if (index > 0) {\n state.compilationString += \", \";\n }\n if (this._inputSamplers && this._inputSamplers.indexOf(input.name) !== -1) {\n state.compilationString += input.connectedPoint?.ownerBlock?.samplerName ?? input.associatedVariableName;\n }\n else {\n state.compilationString += input.associatedVariableName;\n }\n hasInput = true;\n });\n this._outputs.forEach((output, index) => {\n if (index > 0 || hasInput) {\n state.compilationString += \", \";\n }\n state.compilationString += output.associatedVariableName;\n });\n state.compilationString += \");\\n\";\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.options = ${JSON.stringify(this._options)};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.options = this._options;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n this._deserializeOptions(serializationObject.options);\n super._deserialize(serializationObject, scene, rootUrl);\n }\n _deserializeOptions(options) {\n this._options = options;\n this._code = options.code.join(\"\\n\") + \"\\n\";\n this.name = this.name || options.name;\n this.target = NodeMaterialBlockTargets[options.target];\n options.inParameters?.forEach((input, index) => {\n const type = NodeMaterialBlockConnectionPointTypes[input.type];\n if (input.type === \"sampler2D\" || input.type === \"samplerCube\") {\n this._inputSamplers = this._inputSamplers || [];\n this._inputSamplers.push(input.name);\n this.registerInput(input.name, NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(input.name, this, 0 /* NodeMaterialConnectionPointDirection.Input */, ImageSourceBlock, \"ImageSourceBlock\"));\n }\n else {\n this.registerInput(input.name, type);\n }\n Object.defineProperty(this, input.name, {\n get: function () {\n return this._inputs[index];\n },\n enumerable: true,\n configurable: true,\n });\n });\n options.outParameters?.forEach((output, index) => {\n this.registerOutput(output.name, NodeMaterialBlockConnectionPointTypes[output.type]);\n Object.defineProperty(this, output.name, {\n get: function () {\n return this._outputs[index];\n },\n enumerable: true,\n configurable: true,\n });\n if (output.type === \"BasedOnInput\") {\n this._outputs[index]._typeConnectionSource = this._findInputByName(output.typeFromInput)[0];\n }\n });\n options.inLinkedConnectionTypes?.forEach((connection) => {\n this._linkConnectionTypes(this._findInputByName(connection.input1)[1], this._findInputByName(connection.input2)[1]);\n });\n }\n _findInputByName(name) {\n if (!name) {\n return null;\n }\n for (let i = 0; i < this._inputs.length; i++) {\n if (this._inputs[i].name === name) {\n return [this._inputs[i], i];\n }\n }\n return null;\n }\n}\nRegisterClass(\"BABYLON.CustomBlock\", CustomBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}