f73991e302b9d0f516650e53d0a0eb8a27b43ac2ae107cd43ea3184a31432b7c.json 29 KB

1
  1. {"ast":null,"code":"import { Observable } from \"../../../Misc/observable.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { GetClass, RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { Matrix, Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { NodeGeometryContextualSources } from \"../Enums/nodeGeometryContextualSources.js\";\n/**\n * Block used to expose an input value\n */\nexport class GeometryInputBlock extends NodeGeometryBlock {\n /**\n * Gets or sets the connection point type (default is float)\n */\n get type() {\n if (this._type === NodeGeometryBlockConnectionPointTypes.AutoDetect) {\n if (this.value != null) {\n if (!isNaN(this.value)) {\n this._type = NodeGeometryBlockConnectionPointTypes.Float;\n return this._type;\n }\n switch (this.value.getClassName()) {\n case \"Vector2\":\n this._type = NodeGeometryBlockConnectionPointTypes.Vector2;\n return this._type;\n case \"Vector3\":\n this._type = NodeGeometryBlockConnectionPointTypes.Vector3;\n return this._type;\n case \"Vector4\":\n this._type = NodeGeometryBlockConnectionPointTypes.Vector4;\n return this._type;\n case \"Matrix\":\n this._type = NodeGeometryBlockConnectionPointTypes.Matrix;\n return this._type;\n }\n }\n }\n return this._type;\n }\n /**\n * Gets a boolean indicating that the current connection point is a contextual value\n */\n get isContextual() {\n return this._contextualSource !== NodeGeometryContextualSources.None;\n }\n /**\n * Gets or sets the current contextual value\n */\n get contextualValue() {\n return this._contextualSource;\n }\n set contextualValue(value) {\n this._contextualSource = value;\n switch (value) {\n case NodeGeometryContextualSources.Positions:\n case NodeGeometryContextualSources.Normals:\n case NodeGeometryContextualSources.LatticeID:\n case NodeGeometryContextualSources.LatticeControl:\n this._type = NodeGeometryBlockConnectionPointTypes.Vector3;\n break;\n case NodeGeometryContextualSources.Colors:\n case NodeGeometryContextualSources.Tangents:\n this._type = NodeGeometryBlockConnectionPointTypes.Vector4;\n break;\n case NodeGeometryContextualSources.UV:\n case NodeGeometryContextualSources.UV2:\n case NodeGeometryContextualSources.UV3:\n case NodeGeometryContextualSources.UV4:\n case NodeGeometryContextualSources.UV5:\n case NodeGeometryContextualSources.UV6:\n this._type = NodeGeometryBlockConnectionPointTypes.Vector2;\n break;\n case NodeGeometryContextualSources.VertexID:\n case NodeGeometryContextualSources.GeometryID:\n case NodeGeometryContextualSources.CollectionID:\n case NodeGeometryContextualSources.FaceID:\n case NodeGeometryContextualSources.LoopID:\n case NodeGeometryContextualSources.InstanceID:\n this._type = NodeGeometryBlockConnectionPointTypes.Int;\n break;\n }\n if (this.output) {\n this.output.type = this._type;\n }\n }\n /**\n * Creates a new InputBlock\n * @param name defines the block name\n * @param type defines the type of the input (can be set to NodeGeometryBlockConnectionPointTypes.AutoDetect)\n */\n constructor(name, type = NodeGeometryBlockConnectionPointTypes.AutoDetect) {\n super(name);\n this._type = NodeGeometryBlockConnectionPointTypes.Undefined;\n this._contextualSource = NodeGeometryContextualSources.None;\n /** Gets or set a value used to limit the range of float values */\n this.min = 0;\n /** Gets or set a value used to limit the range of float values */\n this.max = 0;\n /** Gets or sets the group to use to display this block in the Inspector */\n this.groupInInspector = \"\";\n /** Gets an observable raised when the value is changed */\n this.onValueChangedObservable = new Observable();\n this._type = type;\n this._isInput = true;\n this.setDefaultValue();\n this.registerOutput(\"output\", type);\n }\n /**\n * Gets or sets the value of that point.\n * Please note that this value will be ignored if valueCallback is defined\n */\n get value() {\n return this._storedValue;\n }\n set value(value) {\n if (this.type === NodeGeometryBlockConnectionPointTypes.Float) {\n if (this.min !== this.max) {\n value = Math.max(this.min, value);\n value = Math.min(this.max, value);\n }\n }\n this._storedValue = value;\n this.onValueChangedObservable.notifyObservers(this);\n }\n /**\n * Gets or sets a callback used to get the value of that point.\n * Please note that setting this value will force the connection point to ignore the value property\n */\n get valueCallback() {\n return this._valueCallback;\n }\n set valueCallback(value) {\n this._valueCallback = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryInputBlock\";\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Set the input block to its default value (based on its type)\n */\n setDefaultValue() {\n this.contextualValue = NodeGeometryContextualSources.None;\n switch (this.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float:\n this.value = 0;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n this.value = Vector2.Zero();\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n this.value = Vector3.Zero();\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n this.value = Vector4.Zero();\n break;\n case NodeGeometryBlockConnectionPointTypes.Matrix:\n this.value = Matrix.Identity();\n break;\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (this.isContextual) {\n this.output._storedValue = null;\n this.output._storedFunction = state => {\n return state.getContextualValue(this._contextualSource);\n };\n } else {\n this.output._storedFunction = null;\n this.output._storedValue = this.value;\n }\n }\n dispose() {\n this.onValueChangedObservable.clear();\n super.dispose();\n }\n _dumpPropertiesCode() {\n const variableName = this._codeVariableName;\n if (this.isContextual) {\n return super._dumpPropertiesCode() + `${variableName}.contextualValue = BABYLON.NodeGeometryContextualSources.${NodeGeometryContextualSources[this._contextualSource]};\\n`;\n }\n const codes = [];\n let valueString = \"\";\n switch (this.type) {\n case NodeGeometryBlockConnectionPointTypes.Float:\n case NodeGeometryBlockConnectionPointTypes.Int:\n valueString = `${this.value}`;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n valueString = `new BABYLON.Vector2(${this.value.x}, ${this.value.y})`;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n valueString = `new BABYLON.Vector3(${this.value.x}, ${this.value.y}, ${this.value.z})`;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n valueString = `new BABYLON.Vector4(${this.value.x}, ${this.value.y}, ${this.value.z}, ${this.value.w})`;\n break;\n }\n // Common Property \"Value\"\n codes.push(`${variableName}.value = ${valueString}`);\n // Float-Value-Specific Properties\n if (this.type === NodeGeometryBlockConnectionPointTypes.Float || this.type === NodeGeometryBlockConnectionPointTypes.Int) {\n codes.push(`${variableName}.min = ${this.min}`, `${variableName}.max = ${this.max}`);\n }\n codes.push(\"\");\n return super._dumpPropertiesCode() + codes.join(\";\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.type = this.type;\n serializationObject.contextualValue = this.contextualValue;\n serializationObject.min = this.min;\n serializationObject.max = this.max;\n serializationObject.groupInInspector = this.groupInInspector;\n if (this._storedValue !== null && !this.isContextual) {\n if (this._storedValue.asArray) {\n serializationObject.valueType = \"BABYLON.\" + this._storedValue.getClassName();\n serializationObject.value = this._storedValue.asArray();\n } else {\n serializationObject.valueType = \"number\";\n serializationObject.value = this._storedValue;\n }\n }\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this._type = serializationObject.type;\n this.contextualValue = serializationObject.contextualValue;\n this.min = serializationObject.min || 0;\n this.max = serializationObject.max || 0;\n this.groupInInspector = serializationObject.groupInInspector || \"\";\n if (!serializationObject.valueType) {\n return;\n }\n if (serializationObject.valueType === \"number\") {\n this._storedValue = serializationObject.value;\n } else {\n const valueType = GetClass(serializationObject.valueType);\n if (valueType) {\n this._storedValue = valueType.FromArray(serializationObject.value);\n }\n }\n }\n}\nRegisterClass(\"BABYLON.GeometryInputBlock\", GeometryInputBlock);","map":{"version":3,"names":["Observable","NodeGeometryBlockConnectionPointTypes","NodeGeometryBlock","GetClass","RegisterClass","Matrix","Vector2","Vector3","Vector4","NodeGeometryContextualSources","GeometryInputBlock","type","_type","AutoDetect","value","isNaN","Float","getClassName","isContextual","_contextualSource","None","contextualValue","Positions","Normals","LatticeID","LatticeControl","Colors","Tangents","UV","UV2","UV3","UV4","UV5","UV6","VertexID","GeometryID","CollectionID","FaceID","LoopID","InstanceID","Int","output","constructor","name","Undefined","min","max","groupInInspector","onValueChangedObservable","_isInput","setDefaultValue","registerOutput","_storedValue","Math","notifyObservers","valueCallback","_valueCallback","_outputs","Zero","Identity","_buildBlock","state","_storedFunction","getContextualValue","dispose","clear","_dumpPropertiesCode","variableName","_codeVariableName","codes","valueString","x","y","z","w","push","join","serialize","serializationObject","asArray","valueType","_deserialize","FromArray"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryInputBlock.js"],"sourcesContent":["import { Observable } from \"../../../Misc/observable.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { GetClass, RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { Matrix, Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { NodeGeometryContextualSources } from \"../Enums/nodeGeometryContextualSources.js\";\n/**\n * Block used to expose an input value\n */\nexport class GeometryInputBlock extends NodeGeometryBlock {\n /**\n * Gets or sets the connection point type (default is float)\n */\n get type() {\n if (this._type === NodeGeometryBlockConnectionPointTypes.AutoDetect) {\n if (this.value != null) {\n if (!isNaN(this.value)) {\n this._type = NodeGeometryBlockConnectionPointTypes.Float;\n return this._type;\n }\n switch (this.value.getClassName()) {\n case \"Vector2\":\n this._type = NodeGeometryBlockConnectionPointTypes.Vector2;\n return this._type;\n case \"Vector3\":\n this._type = NodeGeometryBlockConnectionPointTypes.Vector3;\n return this._type;\n case \"Vector4\":\n this._type = NodeGeometryBlockConnectionPointTypes.Vector4;\n return this._type;\n case \"Matrix\":\n this._type = NodeGeometryBlockConnectionPointTypes.Matrix;\n return this._type;\n }\n }\n }\n return this._type;\n }\n /**\n * Gets a boolean indicating that the current connection point is a contextual value\n */\n get isContextual() {\n return this._contextualSource !== NodeGeometryContextualSources.None;\n }\n /**\n * Gets or sets the current contextual value\n */\n get contextualValue() {\n return this._contextualSource;\n }\n set contextualValue(value) {\n this._contextualSource = value;\n switch (value) {\n case NodeGeometryContextualSources.Positions:\n case NodeGeometryContextualSources.Normals:\n case NodeGeometryContextualSources.LatticeID:\n case NodeGeometryContextualSources.LatticeControl:\n this._type = NodeGeometryBlockConnectionPointTypes.Vector3;\n break;\n case NodeGeometryContextualSources.Colors:\n case NodeGeometryContextualSources.Tangents:\n this._type = NodeGeometryBlockConnectionPointTypes.Vector4;\n break;\n case NodeGeometryContextualSources.UV:\n case NodeGeometryContextualSources.UV2:\n case NodeGeometryContextualSources.UV3:\n case NodeGeometryContextualSources.UV4:\n case NodeGeometryContextualSources.UV5:\n case NodeGeometryContextualSources.UV6:\n this._type = NodeGeometryBlockConnectionPointTypes.Vector2;\n break;\n case NodeGeometryContextualSources.VertexID:\n case NodeGeometryContextualSources.GeometryID:\n case NodeGeometryContextualSources.CollectionID:\n case NodeGeometryContextualSources.FaceID:\n case NodeGeometryContextualSources.LoopID:\n case NodeGeometryContextualSources.InstanceID:\n this._type = NodeGeometryBlockConnectionPointTypes.Int;\n break;\n }\n if (this.output) {\n this.output.type = this._type;\n }\n }\n /**\n * Creates a new InputBlock\n * @param name defines the block name\n * @param type defines the type of the input (can be set to NodeGeometryBlockConnectionPointTypes.AutoDetect)\n */\n constructor(name, type = NodeGeometryBlockConnectionPointTypes.AutoDetect) {\n super(name);\n this._type = NodeGeometryBlockConnectionPointTypes.Undefined;\n this._contextualSource = NodeGeometryContextualSources.None;\n /** Gets or set a value used to limit the range of float values */\n this.min = 0;\n /** Gets or set a value used to limit the range of float values */\n this.max = 0;\n /** Gets or sets the group to use to display this block in the Inspector */\n this.groupInInspector = \"\";\n /** Gets an observable raised when the value is changed */\n this.onValueChangedObservable = new Observable();\n this._type = type;\n this._isInput = true;\n this.setDefaultValue();\n this.registerOutput(\"output\", type);\n }\n /**\n * Gets or sets the value of that point.\n * Please note that this value will be ignored if valueCallback is defined\n */\n get value() {\n return this._storedValue;\n }\n set value(value) {\n if (this.type === NodeGeometryBlockConnectionPointTypes.Float) {\n if (this.min !== this.max) {\n value = Math.max(this.min, value);\n value = Math.min(this.max, value);\n }\n }\n this._storedValue = value;\n this.onValueChangedObservable.notifyObservers(this);\n }\n /**\n * Gets or sets a callback used to get the value of that point.\n * Please note that setting this value will force the connection point to ignore the value property\n */\n get valueCallback() {\n return this._valueCallback;\n }\n set valueCallback(value) {\n this._valueCallback = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryInputBlock\";\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Set the input block to its default value (based on its type)\n */\n setDefaultValue() {\n this.contextualValue = NodeGeometryContextualSources.None;\n switch (this.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float:\n this.value = 0;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n this.value = Vector2.Zero();\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n this.value = Vector3.Zero();\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n this.value = Vector4.Zero();\n break;\n case NodeGeometryBlockConnectionPointTypes.Matrix:\n this.value = Matrix.Identity();\n break;\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (this.isContextual) {\n this.output._storedValue = null;\n this.output._storedFunction = (state) => {\n return state.getContextualValue(this._contextualSource);\n };\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = this.value;\n }\n }\n dispose() {\n this.onValueChangedObservable.clear();\n super.dispose();\n }\n _dumpPropertiesCode() {\n const variableName = this._codeVariableName;\n if (this.isContextual) {\n return (super._dumpPropertiesCode() + `${variableName}.contextualValue = BABYLON.NodeGeometryContextualSources.${NodeGeometryContextualSources[this._contextualSource]};\\n`);\n }\n const codes = [];\n let valueString = \"\";\n switch (this.type) {\n case NodeGeometryBlockConnectionPointTypes.Float:\n case NodeGeometryBlockConnectionPointTypes.Int:\n valueString = `${this.value}`;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n valueString = `new BABYLON.Vector2(${this.value.x}, ${this.value.y})`;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n valueString = `new BABYLON.Vector3(${this.value.x}, ${this.value.y}, ${this.value.z})`;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n valueString = `new BABYLON.Vector4(${this.value.x}, ${this.value.y}, ${this.value.z}, ${this.value.w})`;\n break;\n }\n // Common Property \"Value\"\n codes.push(`${variableName}.value = ${valueString}`);\n // Float-Value-Specific Properties\n if (this.type === NodeGeometryBlockConnectionPointTypes.Float || this.type === NodeGeometryBlockConnectionPointTypes.Int) {\n codes.push(`${variableName}.min = ${this.min}`, `${variableName}.max = ${this.max}`);\n }\n codes.push(\"\");\n return super._dumpPropertiesCode() + codes.join(\";\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.type = this.type;\n serializationObject.contextualValue = this.contextualValue;\n serializationObject.min = this.min;\n serializationObject.max = this.max;\n serializationObject.groupInInspector = this.groupInInspector;\n if (this._storedValue !== null && !this.isContextual) {\n if (this._storedValue.asArray) {\n serializationObject.valueType = \"BABYLON.\" + this._storedValue.getClassName();\n serializationObject.value = this._storedValue.asArray();\n }\n else {\n serializationObject.valueType = \"number\";\n serializationObject.value = this._storedValue;\n }\n }\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this._type = serializationObject.type;\n this.contextualValue = serializationObject.contextualValue;\n this.min = serializationObject.min || 0;\n this.max = serializationObject.max || 0;\n this.groupInInspector = serializationObject.groupInInspector || \"\";\n if (!serializationObject.valueType) {\n return;\n }\n if (serializationObject.valueType === \"number\") {\n this._storedValue = serializationObject.value;\n }\n else {\n const valueType = GetClass(serializationObject.valueType);\n if (valueType) {\n this._storedValue = valueType.FromArray(serializationObject.value);\n }\n }\n }\n}\nRegisterClass(\"BABYLON.GeometryInputBlock\", GeometryInputBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}