e72ad18e6247451a03b8e12f817059f09ca9f1f44ae1c02182fc37911b18d90e.json 23 KB

1
  1. {"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 { Vector2, Vector3, Vector4 } from \"../../../../Maths/math.vector.js\";\n/**\n * Conditions supported by the condition block\n */\nexport var Aggregations;\n(function (Aggregations) {\n /** Max */\n Aggregations[Aggregations[\"Max\"] = 0] = \"Max\";\n /** Min */\n Aggregations[Aggregations[\"Min\"] = 1] = \"Min\";\n /** Sum */\n Aggregations[Aggregations[\"Sum\"] = 2] = \"Sum\";\n})(Aggregations || (Aggregations = {}));\n/**\n * Block used to extract a valuefrom a geometry\n */\nexport class AggregatorBlock extends NodeGeometryBlock {\n /**\n * Create a new SetPositionsBlock\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.aggregation = Aggregations.Sum;\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"source\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[1];\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"AggregatorBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = state => {\n state.pushExecutionContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n state.pushGeometryContext(this._vertexData);\n if (!this._vertexData || !this._vertexData.positions || !this.source.isConnected) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = null;\n return;\n }\n // Processing\n const vertexCount = this._vertexData.positions.length / 3;\n const context = [];\n for (this._currentIndex = 0; this._currentIndex < vertexCount; this._currentIndex++) {\n context.push(this.source.getConnectedValue(state));\n }\n // Aggregation\n let func = null;\n switch (this.aggregation) {\n case Aggregations.Max:\n {\n func = (a, b) => Math.max(a, b);\n break;\n }\n case Aggregations.Min:\n {\n func = (a, b) => Math.min(a, b);\n break;\n }\n case Aggregations.Sum:\n {\n func = (a, b) => a + b;\n break;\n }\n }\n if (!func) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n let returnValue;\n switch (this.source.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float:\n {\n returnValue = context.reduce(func);\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n {\n const x = context.map(v => v.x).reduce(func);\n const y = context.map(v => v.y).reduce(func);\n returnValue = new Vector2(x, y);\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n {\n const x = context.map(v => v.x).reduce(func);\n const y = context.map(v => v.y).reduce(func);\n const z = context.map(v => v.z).reduce(func);\n returnValue = new Vector3(x, y, z);\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n {\n const x = context.map(v => v.x).reduce(func);\n const y = context.map(v => v.y).reduce(func);\n const z = context.map(v => v.z).reduce(func);\n const w = context.map(v => v.w).reduce(func);\n returnValue = new Vector4(x, y, z, w);\n break;\n }\n }\n // Storage\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n return returnValue;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n } else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n codeString += `${this._codeVariableName}.aggregation = BABYLON.Aggregations.${Aggregations[this.aggregation]};\\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.evaluateContext = this.evaluateContext;\n serializationObject.aggregation = this.aggregation;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n if (serializationObject.aggregation !== undefined) {\n this.aggregation = serializationObject.aggregation;\n }\n }\n}\n__decorate([editableInPropertyPage(\"Aggregation\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: {\n rebuild: true\n },\n embedded: true,\n options: [{\n label: \"Max\",\n value: Aggregations.Max\n }, {\n label: \"Min\",\n value: Aggregations.Min\n }, {\n label: \"Sum\",\n value: Aggregations.Sum\n }]\n})], AggregatorBlock.prototype, \"aggregation\", void 0);\n__decorate([editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n notifiers: {\n rebuild: true\n }\n})], AggregatorBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.AggregatorBlock\", AggregatorBlock);","map":{"version":3,"names":["__decorate","NodeGeometryBlock","RegisterClass","NodeGeometryBlockConnectionPointTypes","editableInPropertyPage","Vector2","Vector3","Vector4","Aggregations","AggregatorBlock","constructor","name","aggregation","Sum","evaluateContext","registerInput","Geometry","AutoDetect","registerOutput","BasedOnInput","_outputs","_typeConnectionSource","_inputs","getExecutionIndex","_currentIndex","getExecutionLoopIndex","getExecutionFaceIndex","getClassName","geometry","source","output","_buildBlock","state","func","pushExecutionContext","_vertexData","getConnectedValue","pushGeometryContext","positions","isConnected","restoreGeometryContext","restoreExecutionContext","_storedValue","vertexCount","length","context","push","Max","a","b","Math","max","Min","min","_storedFunction","returnValue","type","Int","Float","reduce","x","map","v","y","z","w","_dumpPropertiesCode","codeString","_codeVariableName","serialize","serializationObject","_deserialize","undefined","notifiers","rebuild","embedded","options","label","value","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Meshes/Node/Blocks/Set/aggregatorBlock.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 { Vector2, Vector3, Vector4 } from \"../../../../Maths/math.vector.js\";\n/**\n * Conditions supported by the condition block\n */\nexport var Aggregations;\n(function (Aggregations) {\n /** Max */\n Aggregations[Aggregations[\"Max\"] = 0] = \"Max\";\n /** Min */\n Aggregations[Aggregations[\"Min\"] = 1] = \"Min\";\n /** Sum */\n Aggregations[Aggregations[\"Sum\"] = 2] = \"Sum\";\n})(Aggregations || (Aggregations = {}));\n/**\n * Block used to extract a valuefrom a geometry\n */\nexport class AggregatorBlock extends NodeGeometryBlock {\n /**\n * Create a new SetPositionsBlock\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.aggregation = Aggregations.Sum;\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"source\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[1];\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"AggregatorBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n state.pushGeometryContext(this._vertexData);\n if (!this._vertexData || !this._vertexData.positions || !this.source.isConnected) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = null;\n return;\n }\n // Processing\n const vertexCount = this._vertexData.positions.length / 3;\n const context = [];\n for (this._currentIndex = 0; this._currentIndex < vertexCount; this._currentIndex++) {\n context.push(this.source.getConnectedValue(state));\n }\n // Aggregation\n let func = null;\n switch (this.aggregation) {\n case Aggregations.Max: {\n func = (a, b) => Math.max(a, b);\n break;\n }\n case Aggregations.Min: {\n func = (a, b) => Math.min(a, b);\n break;\n }\n case Aggregations.Sum: {\n func = (a, b) => a + b;\n break;\n }\n }\n if (!func) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n let returnValue;\n switch (this.source.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n returnValue = context.reduce(func);\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n const x = context.map((v) => v.x).reduce(func);\n const y = context.map((v) => v.y).reduce(func);\n returnValue = new Vector2(x, y);\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n const x = context.map((v) => v.x).reduce(func);\n const y = context.map((v) => v.y).reduce(func);\n const z = context.map((v) => v.z).reduce(func);\n returnValue = new Vector3(x, y, z);\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n const x = context.map((v) => v.x).reduce(func);\n const y = context.map((v) => v.y).reduce(func);\n const z = context.map((v) => v.z).reduce(func);\n const w = context.map((v) => v.w).reduce(func);\n returnValue = new Vector4(x, y, z, w);\n break;\n }\n }\n // Storage\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n return returnValue;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n codeString += `${this._codeVariableName}.aggregation = BABYLON.Aggregations.${Aggregations[this.aggregation]};\\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.evaluateContext = this.evaluateContext;\n serializationObject.aggregation = this.aggregation;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n if (serializationObject.aggregation !== undefined) {\n this.aggregation = serializationObject.aggregation;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Aggregation\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"Max\", value: Aggregations.Max },\n { label: \"Min\", value: Aggregations.Min },\n { label: \"Sum\", value: Aggregations.Sum },\n ],\n })\n], AggregatorBlock.prototype, \"aggregation\", void 0);\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { notifiers: { rebuild: true } })\n], AggregatorBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.AggregatorBlock\", AggregatorBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}