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 * Block used to transform a vector (2, 3 or 4) with a matrix. It will generate a Vector4\n */\nexport class TransformBlock extends NodeMaterialBlock {\n /**\n * Boolean indicating if the transformation is made for a direction vector and not a position vector\n * If set to true the complementW value will be set to 0 else it will be set to 1\n */\n get transformAsDirection() {\n return this.complementW === 0;\n }\n set transformAsDirection(value) {\n this.complementW = value ? 0 : 1;\n }\n /**\n * Creates a new TransformBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Defines the value to use to complement W value to transform it to a Vector4\n */\n this.complementW = 1;\n /**\n * Defines the value to use to complement z value to transform it to a Vector4\n */\n this.complementZ = 0;\n this.target = NodeMaterialBlockTargets.Vertex;\n this.registerInput(\"vector\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"transform\", NodeMaterialBlockConnectionPointTypes.Matrix);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"xyz\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this._inputs[0].onConnectionObservable.add(other => {\n if (other.ownerBlock.isInput) {\n const otherAsInput = other.ownerBlock;\n if (otherAsInput.name === \"normal\" || otherAsInput.name === \"tangent\") {\n this.complementW = 0;\n }\n }\n });\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TransformBlock\";\n }\n /**\n * Gets the vector input\n */\n get vector() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz output component\n */\n get xyz() {\n return this._outputs[1];\n }\n /**\n * Gets the matrix transform input\n */\n get transform() {\n return this._inputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const vector = this.vector;\n const transform = this.transform;\n const vec4 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector4);\n const vec3 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector3);\n if (vector.connectedPoint) {\n // None uniform scaling case.\n if (this.complementW === 0 || this.transformAsDirection) {\n const comments = `//${this.name}`;\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n state.sharedData.blocksWithDefines.push(this);\n const transformName = state._getFreeVariableName(`${transform.associatedVariableName}_NUS`);\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n state.compilationString += `var ${transformName}: mat3x3f = mat3x3f(${transform.associatedVariableName}[0].xyz, ${transform.associatedVariableName}[1].xyz, ${transform.associatedVariableName}[2].xyz);\\n`;\n } else {\n state.compilationString += `mat3 ${transformName} = mat3(${transform.associatedVariableName});\\n`;\n }\n state.compilationString += `#ifdef NONUNIFORMSCALING\\n`;\n state.compilationString += `${transformName} = transposeMat3(inverseMat3(${transformName}));\\n`;\n state.compilationString += `#endif\\n`;\n switch (vector.connectedPoint.type) {\n case NodeMaterialBlockConnectionPointTypes.Vector2:\n state.compilationString += state._declareOutput(this.output) + ` = ${vec4}(${transformName} * ${vec3}(${vector.associatedVariableName}, ${this._writeFloat(this.complementZ)}), ${this._writeFloat(this.complementW)});\\n`;\n break;\n case NodeMaterialBlockConnectionPointTypes.Vector3:\n case NodeMaterialBlockConnectionPointTypes.Color3:\n state.compilationString += state._declareOutput(this.output) + ` = ${vec4}(${transformName} * ${vector.associatedVariableName}, ${this._writeFloat(this.complementW)});\\n`;\n break;\n default:\n state.compilationString += state._declareOutput(this.output) + ` = ${vec4}(${transformName} * ${vector.associatedVariableName}.xyz, ${this._writeFloat(this.complementW)});\\n`;\n break;\n }\n } else {\n const transformName = transform.associatedVariableName;\n switch (vector.connectedPoint.type) {\n case NodeMaterialBlockConnectionPointTypes.Vector2:\n state.compilationString += state._declareOutput(this.output) + ` = ${transformName} * ${vec4}(${vector.associatedVariableName}, ${this._writeFloat(this.complementZ)}, ${this._writeFloat(this.complementW)});\\n`;\n break;\n case NodeMaterialBlockConnectionPointTypes.Vector3:\n case NodeMaterialBlockConnectionPointTypes.Color3:\n state.compilationString += state._declareOutput(this.output) + ` = ${transformName} * ${vec4}(${vector.associatedVariableName}, ${this._writeFloat(this.complementW)});\\n`;\n break;\n default:\n state.compilationString += state._declareOutput(this.output) + ` = ${transformName} * ${vector.associatedVariableName};\\n`;\n break;\n }\n }\n if (this.xyz.hasEndpoints) {\n state.compilationString += state._declareOutput(this.xyz) + ` = ${this.output.associatedVariableName}.xyz;\\n`;\n }\n }\n return this;\n }\n /**\n * Update defines for shader compilation\n * @param mesh defines the mesh to be rendered\n * @param nodeMaterial defines the node material requesting the update\n * @param defines defines the material defines to update\n */\n prepareDefines(mesh, nodeMaterial, defines) {\n // Do nothing\n if (mesh.nonUniformScaling) {\n defines.setValue(\"NONUNIFORMSCALING\", true);\n }\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.complementZ = this.complementZ;\n serializationObject.complementW = this.complementW;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.complementZ = serializationObject.complementZ !== undefined ? serializationObject.complementZ : 0.0;\n this.complementW = serializationObject.complementW !== undefined ? serializationObject.complementW : 1.0;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.complementZ = ${this.complementZ};\\n`;\n codeString += `${this._codeVariableName}.complementW = ${this.complementW};\\n`;\n return codeString;\n }\n}\n__decorate([editableInPropertyPage(\"Transform as direction\", 0 /* PropertyTypeForEdition.Boolean */, undefined, {\n embedded: true\n})], TransformBlock.prototype, \"transformAsDirection\", null);\nRegisterClass(\"BABYLON.TransformBlock\", TransformBlock);","map":{"version":3,"names":["__decorate","NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","RegisterClass","editableInPropertyPage","TransformBlock","transformAsDirection","complementW","value","constructor","name","Neutral","complementZ","target","Vertex","registerInput","AutoDetect","Matrix","registerOutput","Vector4","Vector3","_inputs","onConnectionObservable","add","other","ownerBlock","isInput","otherAsInput","getClassName","vector","output","_outputs","xyz","transform","_buildBlock","state","vec4","_getShaderType","vec3","connectedPoint","comments","_emitFunctionFromInclude","sharedData","blocksWithDefines","push","transformName","_getFreeVariableName","associatedVariableName","shaderLanguage","compilationString","type","Vector2","_declareOutput","_writeFloat","Color3","hasEndpoints","prepareDefines","mesh","nodeMaterial","defines","nonUniformScaling","setValue","serialize","serializationObject","_deserialize","scene","rootUrl","undefined","_dumpPropertiesCode","codeString","_codeVariableName","embedded","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/transformBlock.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 * Block used to transform a vector (2, 3 or 4) with a matrix. It will generate a Vector4\n */\nexport class TransformBlock extends NodeMaterialBlock {\n /**\n * Boolean indicating if the transformation is made for a direction vector and not a position vector\n * If set to true the complementW value will be set to 0 else it will be set to 1\n */\n get transformAsDirection() {\n return this.complementW === 0;\n }\n set transformAsDirection(value) {\n this.complementW = value ? 0 : 1;\n }\n /**\n * Creates a new TransformBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Defines the value to use to complement W value to transform it to a Vector4\n */\n this.complementW = 1;\n /**\n * Defines the value to use to complement z value to transform it to a Vector4\n */\n this.complementZ = 0;\n this.target = NodeMaterialBlockTargets.Vertex;\n this.registerInput(\"vector\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"transform\", NodeMaterialBlockConnectionPointTypes.Matrix);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"xyz\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this._inputs[0].onConnectionObservable.add((other) => {\n if (other.ownerBlock.isInput) {\n const otherAsInput = other.ownerBlock;\n if (otherAsInput.name === \"normal\" || otherAsInput.name === \"tangent\") {\n this.complementW = 0;\n }\n }\n });\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TransformBlock\";\n }\n /**\n * Gets the vector input\n */\n get vector() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz output component\n */\n get xyz() {\n return this._outputs[1];\n }\n /**\n * Gets the matrix transform input\n */\n get transform() {\n return this._inputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const vector = this.vector;\n const transform = this.transform;\n const vec4 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector4);\n const vec3 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector3);\n if (vector.connectedPoint) {\n // None uniform scaling case.\n if (this.complementW === 0 || this.transformAsDirection) {\n const comments = `//${this.name}`;\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n state.sharedData.blocksWithDefines.push(this);\n const transformName = state._getFreeVariableName(`${transform.associatedVariableName}_NUS`);\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n state.compilationString += `var ${transformName}: mat3x3f = mat3x3f(${transform.associatedVariableName}[0].xyz, ${transform.associatedVariableName}[1].xyz, ${transform.associatedVariableName}[2].xyz);\\n`;\n }\n else {\n state.compilationString += `mat3 ${transformName} = mat3(${transform.associatedVariableName});\\n`;\n }\n state.compilationString += `#ifdef NONUNIFORMSCALING\\n`;\n state.compilationString += `${transformName} = transposeMat3(inverseMat3(${transformName}));\\n`;\n state.compilationString += `#endif\\n`;\n switch (vector.connectedPoint.type) {\n case NodeMaterialBlockConnectionPointTypes.Vector2:\n state.compilationString +=\n state._declareOutput(this.output) +\n ` = ${vec4}(${transformName} * ${vec3}(${vector.associatedVariableName}, ${this._writeFloat(this.complementZ)}), ${this._writeFloat(this.complementW)});\\n`;\n break;\n case NodeMaterialBlockConnectionPointTypes.Vector3:\n case NodeMaterialBlockConnectionPointTypes.Color3:\n state.compilationString +=\n state._declareOutput(this.output) + ` = ${vec4}(${transformName} * ${vector.associatedVariableName}, ${this._writeFloat(this.complementW)});\\n`;\n break;\n default:\n state.compilationString +=\n state._declareOutput(this.output) + ` = ${vec4}(${transformName} * ${vector.associatedVariableName}.xyz, ${this._writeFloat(this.complementW)});\\n`;\n break;\n }\n }\n else {\n const transformName = transform.associatedVariableName;\n switch (vector.connectedPoint.type) {\n case NodeMaterialBlockConnectionPointTypes.Vector2:\n state.compilationString +=\n state._declareOutput(this.output) +\n ` = ${transformName} * ${vec4}(${vector.associatedVariableName}, ${this._writeFloat(this.complementZ)}, ${this._writeFloat(this.complementW)});\\n`;\n break;\n case NodeMaterialBlockConnectionPointTypes.Vector3:\n case NodeMaterialBlockConnectionPointTypes.Color3:\n state.compilationString +=\n state._declareOutput(this.output) + ` = ${transformName} * ${vec4}(${vector.associatedVariableName}, ${this._writeFloat(this.complementW)});\\n`;\n break;\n default:\n state.compilationString += state._declareOutput(this.output) + ` = ${transformName} * ${vector.associatedVariableName};\\n`;\n break;\n }\n }\n if (this.xyz.hasEndpoints) {\n state.compilationString += state._declareOutput(this.xyz) + ` = ${this.output.associatedVariableName}.xyz;\\n`;\n }\n }\n return this;\n }\n /**\n * Update defines for shader compilation\n * @param mesh defines the mesh to be rendered\n * @param nodeMaterial defines the node material requesting the update\n * @param defines defines the material defines to update\n */\n prepareDefines(mesh, nodeMaterial, defines) {\n // Do nothing\n if (mesh.nonUniformScaling) {\n defines.setValue(\"NONUNIFORMSCALING\", true);\n }\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.complementZ = this.complementZ;\n serializationObject.complementW = this.complementW;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.complementZ = serializationObject.complementZ !== undefined ? serializationObject.complementZ : 0.0;\n this.complementW = serializationObject.complementW !== undefined ? serializationObject.complementW : 1.0;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.complementZ = ${this.complementZ};\\n`;\n codeString += `${this._codeVariableName}.complementW = ${this.complementW};\\n`;\n return codeString;\n }\n}\n__decorate([\n editableInPropertyPage(\"Transform as direction\", 0 /* PropertyTypeForEdition.Boolean */, undefined, { embedded: true })\n], TransformBlock.prototype, \"transformAsDirection\", null);\nRegisterClass(\"BABYLON.TransformBlock\", TransformBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|