{"ast":null,"code":"import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nimport { WithinEpsilon } from \"../../../Maths/math.scalar.functions.js\";\nimport { Epsilon } from \"../../../Maths/math.constants.js\";\nimport { GeometryInputBlock } from \"./geometryInputBlock.js\";\n/**\n * Conditions supported by the condition block\n */\nexport var ConditionBlockTests;\n(function (ConditionBlockTests) {\n /** Equal */\n ConditionBlockTests[ConditionBlockTests[\"Equal\"] = 0] = \"Equal\";\n /** NotEqual */\n ConditionBlockTests[ConditionBlockTests[\"NotEqual\"] = 1] = \"NotEqual\";\n /** LessThan */\n ConditionBlockTests[ConditionBlockTests[\"LessThan\"] = 2] = \"LessThan\";\n /** GreaterThan */\n ConditionBlockTests[ConditionBlockTests[\"GreaterThan\"] = 3] = \"GreaterThan\";\n /** LessOrEqual */\n ConditionBlockTests[ConditionBlockTests[\"LessOrEqual\"] = 4] = \"LessOrEqual\";\n /** GreaterOrEqual */\n ConditionBlockTests[ConditionBlockTests[\"GreaterOrEqual\"] = 5] = \"GreaterOrEqual\";\n /** Logical Exclusive OR */\n ConditionBlockTests[ConditionBlockTests[\"Xor\"] = 6] = \"Xor\";\n /** Logical Or */\n ConditionBlockTests[ConditionBlockTests[\"Or\"] = 7] = \"Or\";\n /** Logical And */\n ConditionBlockTests[ConditionBlockTests[\"And\"] = 8] = \"And\";\n})(ConditionBlockTests || (ConditionBlockTests = {}));\n/**\n * Block used to evaluate a condition and return a true or false value\n */\nexport class ConditionBlock extends NodeGeometryBlock {\n /**\n * Create a new ConditionBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets the test used by the block\n */\n this.test = ConditionBlockTests.Equal;\n this.registerInput(\"left\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerInput(\"right\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"ifTrue\", NodeGeometryBlockConnectionPointTypes.AutoDetect, true, 1);\n this.registerInput(\"ifFalse\", NodeGeometryBlockConnectionPointTypes.AutoDetect, true, 0);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[2];\n this._outputs[0]._defaultConnectionPointType = NodeGeometryBlockConnectionPointTypes.Float;\n this._inputs[0].acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._inputs[1].acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._linkConnectionTypes(2, 3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ConditionBlock\";\n }\n /**\n * Gets the left input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the ifTrue input component\n */\n get ifTrue() {\n return this._inputs[2];\n }\n /**\n * Gets the ifFalse input component\n */\n get ifFalse() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n autoConfigure(nodeGeometry) {\n if (!this.ifTrue.isConnected) {\n const minInput = nodeGeometry.getBlockByPredicate(b => b.isInput && b.value === 1 && b.name === \"True\") || new GeometryInputBlock(\"True\");\n minInput.value = 1;\n minInput.output.connectTo(this.ifTrue);\n }\n if (!this.ifFalse.isConnected) {\n const maxInput = nodeGeometry.getBlockByPredicate(b => b.isInput && b.value === 0 && b.name === \"False\") || new GeometryInputBlock(\"False\");\n maxInput.value = 0;\n maxInput.output.connectTo(this.ifFalse);\n }\n }\n _buildBlock() {\n if (!this.left.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = state => {\n const left = this.left.getConnectedValue(state);\n const right = this.right.getConnectedValue(state);\n let condition = false;\n switch (this.test) {\n case ConditionBlockTests.Equal:\n condition = WithinEpsilon(left, right, Epsilon);\n break;\n case ConditionBlockTests.NotEqual:\n condition = left !== right;\n break;\n case ConditionBlockTests.LessThan:\n condition = left < right;\n break;\n case ConditionBlockTests.GreaterThan:\n condition = left > right;\n break;\n case ConditionBlockTests.LessOrEqual:\n condition = left <= right;\n break;\n case ConditionBlockTests.GreaterOrEqual:\n condition = left >= right;\n break;\n case ConditionBlockTests.Xor:\n condition = !!left && !right || !left && !!right;\n break;\n case ConditionBlockTests.Or:\n condition = !!left || !!right;\n break;\n case ConditionBlockTests.And:\n condition = !!left && !!right;\n break;\n }\n return condition;\n };\n this.output._storedFunction = state => {\n if (func(state)) {\n return this.ifTrue.getConnectedValue(state);\n }\n return this.ifFalse.getConnectedValue(state);\n };\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.test = BABYLON.ConditionBlockTests.${ConditionBlockTests[this.test]};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.test = this.test;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.test = serializationObject.test;\n }\n}\n__decorate([editableInPropertyPage(\"Test\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: {\n rebuild: true\n },\n embedded: true,\n options: [{\n label: \"Equal\",\n value: ConditionBlockTests.Equal\n }, {\n label: \"NotEqual\",\n value: ConditionBlockTests.NotEqual\n }, {\n label: \"LessThan\",\n value: ConditionBlockTests.LessThan\n }, {\n label: \"GreaterThan\",\n value: ConditionBlockTests.GreaterThan\n }, {\n label: \"LessOrEqual\",\n value: ConditionBlockTests.LessOrEqual\n }, {\n label: \"GreaterOrEqual\",\n value: ConditionBlockTests.GreaterOrEqual\n }, {\n label: \"Xor\",\n value: ConditionBlockTests.Xor\n }, {\n label: \"Or\",\n value: ConditionBlockTests.Or\n }, {\n label: \"And\",\n value: ConditionBlockTests.And\n }]\n})], ConditionBlock.prototype, \"test\", void 0);\nRegisterClass(\"BABYLON.ConditionBlock\", ConditionBlock);","map":{"version":3,"names":["__decorate","NodeGeometryBlock","RegisterClass","NodeGeometryBlockConnectionPointTypes","editableInPropertyPage","WithinEpsilon","Epsilon","GeometryInputBlock","ConditionBlockTests","ConditionBlock","constructor","name","test","Equal","registerInput","Float","AutoDetect","registerOutput","BasedOnInput","_outputs","_typeConnectionSource","_inputs","_defaultConnectionPointType","acceptedConnectionPointTypes","push","Int","_linkConnectionTypes","getClassName","left","right","ifTrue","ifFalse","output","autoConfigure","nodeGeometry","isConnected","minInput","getBlockByPredicate","b","isInput","value","connectTo","maxInput","_buildBlock","_storedFunction","_storedValue","func","state","getConnectedValue","condition","NotEqual","LessThan","GreaterThan","LessOrEqual","GreaterOrEqual","Xor","Or","And","_dumpPropertiesCode","codeString","_codeVariableName","serialize","serializationObject","_deserialize","notifiers","rebuild","embedded","options","label","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Meshes/Node/Blocks/conditionBlock.js"],"sourcesContent":["import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nimport { WithinEpsilon } from \"../../../Maths/math.scalar.functions.js\";\nimport { Epsilon } from \"../../../Maths/math.constants.js\";\nimport { GeometryInputBlock } from \"./geometryInputBlock.js\";\n/**\n * Conditions supported by the condition block\n */\nexport var ConditionBlockTests;\n(function (ConditionBlockTests) {\n /** Equal */\n ConditionBlockTests[ConditionBlockTests[\"Equal\"] = 0] = \"Equal\";\n /** NotEqual */\n ConditionBlockTests[ConditionBlockTests[\"NotEqual\"] = 1] = \"NotEqual\";\n /** LessThan */\n ConditionBlockTests[ConditionBlockTests[\"LessThan\"] = 2] = \"LessThan\";\n /** GreaterThan */\n ConditionBlockTests[ConditionBlockTests[\"GreaterThan\"] = 3] = \"GreaterThan\";\n /** LessOrEqual */\n ConditionBlockTests[ConditionBlockTests[\"LessOrEqual\"] = 4] = \"LessOrEqual\";\n /** GreaterOrEqual */\n ConditionBlockTests[ConditionBlockTests[\"GreaterOrEqual\"] = 5] = \"GreaterOrEqual\";\n /** Logical Exclusive OR */\n ConditionBlockTests[ConditionBlockTests[\"Xor\"] = 6] = \"Xor\";\n /** Logical Or */\n ConditionBlockTests[ConditionBlockTests[\"Or\"] = 7] = \"Or\";\n /** Logical And */\n ConditionBlockTests[ConditionBlockTests[\"And\"] = 8] = \"And\";\n})(ConditionBlockTests || (ConditionBlockTests = {}));\n/**\n * Block used to evaluate a condition and return a true or false value\n */\nexport class ConditionBlock extends NodeGeometryBlock {\n /**\n * Create a new ConditionBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets the test used by the block\n */\n this.test = ConditionBlockTests.Equal;\n this.registerInput(\"left\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerInput(\"right\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"ifTrue\", NodeGeometryBlockConnectionPointTypes.AutoDetect, true, 1);\n this.registerInput(\"ifFalse\", NodeGeometryBlockConnectionPointTypes.AutoDetect, true, 0);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[2];\n this._outputs[0]._defaultConnectionPointType = NodeGeometryBlockConnectionPointTypes.Float;\n this._inputs[0].acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._inputs[1].acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._linkConnectionTypes(2, 3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ConditionBlock\";\n }\n /**\n * Gets the left input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the ifTrue input component\n */\n get ifTrue() {\n return this._inputs[2];\n }\n /**\n * Gets the ifFalse input component\n */\n get ifFalse() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n autoConfigure(nodeGeometry) {\n if (!this.ifTrue.isConnected) {\n const minInput = nodeGeometry.getBlockByPredicate((b) => b.isInput && b.value === 1 && b.name === \"True\") ||\n new GeometryInputBlock(\"True\");\n minInput.value = 1;\n minInput.output.connectTo(this.ifTrue);\n }\n if (!this.ifFalse.isConnected) {\n const maxInput = nodeGeometry.getBlockByPredicate((b) => b.isInput && b.value === 0 && b.name === \"False\") ||\n new GeometryInputBlock(\"False\");\n maxInput.value = 0;\n maxInput.output.connectTo(this.ifFalse);\n }\n }\n _buildBlock() {\n if (!this.left.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (state) => {\n const left = this.left.getConnectedValue(state);\n const right = this.right.getConnectedValue(state);\n let condition = false;\n switch (this.test) {\n case ConditionBlockTests.Equal:\n condition = WithinEpsilon(left, right, Epsilon);\n break;\n case ConditionBlockTests.NotEqual:\n condition = left !== right;\n break;\n case ConditionBlockTests.LessThan:\n condition = left < right;\n break;\n case ConditionBlockTests.GreaterThan:\n condition = left > right;\n break;\n case ConditionBlockTests.LessOrEqual:\n condition = left <= right;\n break;\n case ConditionBlockTests.GreaterOrEqual:\n condition = left >= right;\n break;\n case ConditionBlockTests.Xor:\n condition = (!!left && !right) || (!left && !!right);\n break;\n case ConditionBlockTests.Or:\n condition = !!left || !!right;\n break;\n case ConditionBlockTests.And:\n condition = !!left && !!right;\n break;\n }\n return condition;\n };\n this.output._storedFunction = (state) => {\n if (func(state)) {\n return this.ifTrue.getConnectedValue(state);\n }\n return this.ifFalse.getConnectedValue(state);\n };\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.test = BABYLON.ConditionBlockTests.${ConditionBlockTests[this.test]};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.test = this.test;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.test = serializationObject.test;\n }\n}\n__decorate([\n editableInPropertyPage(\"Test\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"Equal\", value: ConditionBlockTests.Equal },\n { label: \"NotEqual\", value: ConditionBlockTests.NotEqual },\n { label: \"LessThan\", value: ConditionBlockTests.LessThan },\n { label: \"GreaterThan\", value: ConditionBlockTests.GreaterThan },\n { label: \"LessOrEqual\", value: ConditionBlockTests.LessOrEqual },\n { label: \"GreaterOrEqual\", value: ConditionBlockTests.GreaterOrEqual },\n { label: \"Xor\", value: ConditionBlockTests.Xor },\n { label: \"Or\", value: ConditionBlockTests.Or },\n { label: \"And\", value: ConditionBlockTests.And },\n ],\n })\n], ConditionBlock.prototype, \"test\", void 0);\nRegisterClass(\"BABYLON.ConditionBlock\", ConditionBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}