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\";\n/**\n * Block used to apply rgb/hsl convertions\n */\nexport class ColorConverterBlock extends NodeMaterialBlock {\n /**\n * Create a new ColorConverterBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"rgb \", NodeMaterialBlockConnectionPointTypes.Color3, true);\n this.registerInput(\"hsl \", NodeMaterialBlockConnectionPointTypes.Color3, true);\n this.registerOutput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3);\n this.registerOutput(\"hsl\", NodeMaterialBlockConnectionPointTypes.Color3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ColorConverterBlock\";\n }\n /**\n * Gets the rgb value (input)\n */\n get rgbIn() {\n return this._inputs[0];\n }\n /**\n * Gets the hsl value (input)\n */\n get hslIn() {\n return this._inputs[1];\n }\n /**\n * Gets the rgb value (output)\n */\n get rgbOut() {\n return this._outputs[0];\n }\n /**\n * Gets the hsl value (output)\n */\n get hslOut() {\n return this._outputs[1];\n }\n _inputRename(name) {\n if (name === \"rgb \") {\n return \"rgbIn\";\n }\n if (name === \"hsl \") {\n return \"hslIn\";\n }\n return name;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const rgbInput = this.rgbIn;\n const hslInput = this.hslIn;\n const rbgOutput = this._outputs[0];\n const hslOutput = this._outputs[1];\n const vec3 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector3);\n let rgb2hsl = `\n vec3 rgb2hsl(vec3 color) {\n float r = color.r;\n float g = color.g;\n float b = color.b;\n\n float maxc = max(r, max(g, b));\n float minc = min(r, min(g, b));\n float h = 0.0;\n float s = 0.0;\n float l = (maxc + minc) / 2.0;\n\n if (maxc != minc) {\n float d = maxc - minc;\n if (l > 0.5) {\n s = d / (2.0 - maxc - minc);\n } else {\n s = d / (maxc + minc);\n }\n\n if (maxc == r) {\n float add = 0.0;\n if (g < b) {\n add = 6.0;\n }\n h = (g - b) / d + add;\n } else if (maxc == g) {\n h = (b - r) / d + 2.0;\n } else if (maxc == b) {\n h = (r - g) / d + 4.0;\n }\n h /= 6.0;\n }\n\n return vec3(h, s, l);\n }`;\n let hue2rgb = `\n float hue2rgb(float p, float q, float tt) {\n float t = tt;\n if (t < 0.0) {\n t += 1.0;\n }\n if (t > 1.0) {\n t -= 1.0;\n }\n if (t < 1.0/6.0) {\n return p + (q - p) * 6.0 * t;\n }\n if (t < 1.0/2.0) {\n return q;\n }\n if (t < 2.0/3.0) {\n return p + (q - p) * (2.0/3.0 - t) * 6.0;\n }\n return p;\n }`;\n let hsl2rgb = `\n vec3 hsl2rgb(vec3 hsl) {\n float h = hsl.x;\n float s = hsl.y;\n float l = hsl.z;\n\n float r;\n float g;\n float b;\n\n if (s == 0.0) {\n // Achromatic (grey)\n r = l;\n g = l;\n b = l; \n } else {\n float q;\n \n if (l < 0.5) {\n q = l * (1.0 + s);\n } else {\n q = (l + s - l * s);\n }\n\n float p = 2.0 * l - q;\n\n r = hue2rgb(p, q, h + 1.0/3.0);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1.0/3.0);\n }\n\n return vec3(r, g, b);\n }`;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n rgb2hsl = state._babylonSLtoWGSL(rgb2hsl);\n hue2rgb = state._babylonSLtoWGSL(hue2rgb);\n hsl2rgb = state._babylonSLtoWGSL(hsl2rgb);\n }\n state._emitFunction(\"rgb2hsl\", rgb2hsl, \"\");\n state._emitFunction(\"hue2rgb\", hue2rgb, \"\");\n state._emitFunction(\"hsl2rgb\", hsl2rgb, \"\");\n if (rgbInput.isConnected) {\n if (rbgOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(rbgOutput) + ` = ${rgbInput.associatedVariableName};\\n`;\n }\n if (hslOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(hslOutput) + ` = rgb2hsl(${rgbInput.associatedVariableName});\\n`;\n }\n } else if (hslInput.isConnected) {\n if (rbgOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(rbgOutput) + ` = hsl2rgb(${hslInput.associatedVariableName});\\n`;\n }\n if (hslOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(hslOutput) + ` = ${hslInput.associatedVariableName};\\n`;\n }\n } else {\n if (rbgOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(rbgOutput) + ` = ${vec3}(0.);\\n`;\n }\n if (hslOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(hslOutput) + ` = ${vec3}(0.);\\n`;\n }\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.ColorConverterBlock\", ColorConverterBlock);","map":{"version":3,"names":["NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","RegisterClass","ColorConverterBlock","constructor","name","Neutral","registerInput","Color3","registerOutput","getClassName","rgbIn","_inputs","hslIn","rgbOut","_outputs","hslOut","_inputRename","_buildBlock","state","rgbInput","hslInput","rbgOutput","hslOutput","vec3","_getShaderType","Vector3","rgb2hsl","hue2rgb","hsl2rgb","shaderLanguage","_babylonSLtoWGSL","_emitFunction","isConnected","hasEndpoints","compilationString","_declareOutput","associatedVariableName"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/colorConverterBlock.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\";\n/**\n * Block used to apply rgb/hsl convertions\n */\nexport class ColorConverterBlock extends NodeMaterialBlock {\n /**\n * Create a new ColorConverterBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"rgb \", NodeMaterialBlockConnectionPointTypes.Color3, true);\n this.registerInput(\"hsl \", NodeMaterialBlockConnectionPointTypes.Color3, true);\n this.registerOutput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3);\n this.registerOutput(\"hsl\", NodeMaterialBlockConnectionPointTypes.Color3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ColorConverterBlock\";\n }\n /**\n * Gets the rgb value (input)\n */\n get rgbIn() {\n return this._inputs[0];\n }\n /**\n * Gets the hsl value (input)\n */\n get hslIn() {\n return this._inputs[1];\n }\n /**\n * Gets the rgb value (output)\n */\n get rgbOut() {\n return this._outputs[0];\n }\n /**\n * Gets the hsl value (output)\n */\n get hslOut() {\n return this._outputs[1];\n }\n _inputRename(name) {\n if (name === \"rgb \") {\n return \"rgbIn\";\n }\n if (name === \"hsl \") {\n return \"hslIn\";\n }\n return name;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const rgbInput = this.rgbIn;\n const hslInput = this.hslIn;\n const rbgOutput = this._outputs[0];\n const hslOutput = this._outputs[1];\n const vec3 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector3);\n let rgb2hsl = `\r\n vec3 rgb2hsl(vec3 color) {\r\n float r = color.r;\r\n float g = color.g;\r\n float b = color.b;\r\n\r\n float maxc = max(r, max(g, b));\r\n float minc = min(r, min(g, b));\r\n float h = 0.0;\r\n float s = 0.0;\r\n float l = (maxc + minc) / 2.0;\r\n\r\n if (maxc != minc) {\r\n float d = maxc - minc;\r\n if (l > 0.5) {\r\n s = d / (2.0 - maxc - minc);\r\n } else {\r\n s = d / (maxc + minc);\r\n }\r\n\r\n if (maxc == r) {\r\n float add = 0.0;\r\n if (g < b) {\r\n add = 6.0;\r\n }\r\n h = (g - b) / d + add;\r\n } else if (maxc == g) {\r\n h = (b - r) / d + 2.0;\r\n } else if (maxc == b) {\r\n h = (r - g) / d + 4.0;\r\n }\r\n h /= 6.0;\r\n }\r\n\r\n return vec3(h, s, l);\r\n }`;\n let hue2rgb = `\r\n float hue2rgb(float p, float q, float tt) {\r\n float t = tt;\r\n if (t < 0.0) {\r\n t += 1.0;\r\n }\r\n if (t > 1.0) {\r\n t -= 1.0;\r\n }\r\n if (t < 1.0/6.0) {\r\n return p + (q - p) * 6.0 * t;\r\n }\r\n if (t < 1.0/2.0) {\r\n return q;\r\n }\r\n if (t < 2.0/3.0) {\r\n return p + (q - p) * (2.0/3.0 - t) * 6.0;\r\n }\r\n return p;\r\n }`;\n let hsl2rgb = `\r\n vec3 hsl2rgb(vec3 hsl) {\r\n float h = hsl.x;\r\n float s = hsl.y;\r\n float l = hsl.z;\r\n\r\n float r;\r\n float g;\r\n float b;\r\n\r\n if (s == 0.0) {\r\n // Achromatic (grey)\r\n r = l;\r\n g = l;\r\n b = l; \r\n } else {\r\n float q;\r\n \r\n if (l < 0.5) {\r\n q = l * (1.0 + s);\r\n } else {\r\n q = (l + s - l * s);\r\n }\r\n\r\n float p = 2.0 * l - q;\r\n\r\n r = hue2rgb(p, q, h + 1.0/3.0);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1.0/3.0);\r\n }\r\n\r\n return vec3(r, g, b);\r\n }`;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n rgb2hsl = state._babylonSLtoWGSL(rgb2hsl);\n hue2rgb = state._babylonSLtoWGSL(hue2rgb);\n hsl2rgb = state._babylonSLtoWGSL(hsl2rgb);\n }\n state._emitFunction(\"rgb2hsl\", rgb2hsl, \"\");\n state._emitFunction(\"hue2rgb\", hue2rgb, \"\");\n state._emitFunction(\"hsl2rgb\", hsl2rgb, \"\");\n if (rgbInput.isConnected) {\n if (rbgOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(rbgOutput) + ` = ${rgbInput.associatedVariableName};\\n`;\n }\n if (hslOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(hslOutput) + ` = rgb2hsl(${rgbInput.associatedVariableName});\\n`;\n }\n }\n else if (hslInput.isConnected) {\n if (rbgOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(rbgOutput) + ` = hsl2rgb(${hslInput.associatedVariableName});\\n`;\n }\n if (hslOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(hslOutput) + ` = ${hslInput.associatedVariableName};\\n`;\n }\n }\n else {\n if (rbgOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(rbgOutput) + ` = ${vec3}(0.);\\n`;\n }\n if (hslOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(hslOutput) + ` = ${vec3}(0.);\\n`;\n }\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.ColorConverterBlock\", ColorConverterBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|