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 { CSG2, InitializeCSG2Async, IsCSG2Ready } from \"../../csg2.js\";\nimport { CSG } from \"../../csg.js\";\n/**\n * Operations supported by the boolean block\n */\nexport var BooleanGeometryOperations;\n(function (BooleanGeometryOperations) {\n /** Intersect */\n BooleanGeometryOperations[BooleanGeometryOperations[\"Intersect\"] = 0] = \"Intersect\";\n /** Subtract */\n BooleanGeometryOperations[BooleanGeometryOperations[\"Subtract\"] = 1] = \"Subtract\";\n /** Union */\n BooleanGeometryOperations[BooleanGeometryOperations[\"Union\"] = 2] = \"Union\";\n})(BooleanGeometryOperations || (BooleanGeometryOperations = {}));\n/**\n * Block used to apply a boolean operation between 2 geometries\n */\nexport class BooleanGeometryBlock extends NodeGeometryBlock {\n /**\n * @internal\n */\n get _isReadyState() {\n if (IsCSG2Ready()) {\n return null;\n }\n if (!this._csg2LoadingPromise) {\n this._csg2LoadingPromise = InitializeCSG2Async();\n }\n return this._csg2LoadingPromise;\n }\n /**\n * Create a new BooleanGeometryBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\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 = false;\n /**\n * Gets or sets the operation applied by the block\n */\n this.operation = BooleanGeometryOperations.Intersect;\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.useOldCSGEngine = false;\n this.registerInput(\"geometry0\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"geometry1\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"BooleanGeometryBlock\";\n }\n /**\n * Gets the geometry0 input component\n */\n get geometry0() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry1 input component\n */\n get geometry1() {\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 const vertexData0 = this.geometry0.getConnectedValue(state);\n const vertexData1 = this.geometry1.getConnectedValue(state);\n if (!vertexData0 || !vertexData1) {\n return null;\n }\n const vertexCount = vertexData0.positions.length / 3;\n // Ensure that all the fields are filled to avoid problems later on in the graph\n if (!vertexData0.normals && vertexData1.normals) {\n vertexData0.normals = new Array(vertexData0.positions.length);\n }\n if (!vertexData1.normals && vertexData0.normals) {\n vertexData1.normals = new Array(vertexData1.positions.length);\n }\n if (!vertexData0.uvs && vertexData1.uvs) {\n vertexData0.uvs = new Array(vertexCount * 2);\n }\n if (!vertexData1.uvs && vertexData0.uvs) {\n vertexData1.uvs = new Array(vertexCount * 2);\n }\n if (!vertexData0.colors && vertexData1.colors) {\n vertexData0.colors = new Array(vertexCount * 4);\n }\n if (!vertexData1.colors && vertexData0.colors) {\n vertexData1.colors = new Array(vertexCount * 4);\n }\n let boolCSG;\n if (this.useOldCSGEngine) {\n const CSG0 = CSG.FromVertexData(vertexData0);\n const CSG1 = CSG.FromVertexData(vertexData1);\n switch (this.operation) {\n case BooleanGeometryOperations.Intersect:\n boolCSG = CSG0.intersect(CSG1);\n break;\n case BooleanGeometryOperations.Subtract:\n boolCSG = CSG0.subtract(CSG1);\n break;\n case BooleanGeometryOperations.Union:\n boolCSG = CSG0.union(CSG1);\n break;\n }\n } else {\n const CSG0 = CSG2.FromVertexData(vertexData0);\n const CSG1 = CSG2.FromVertexData(vertexData1);\n switch (this.operation) {\n case BooleanGeometryOperations.Intersect:\n boolCSG = CSG0.intersect(CSG1);\n break;\n case BooleanGeometryOperations.Subtract:\n boolCSG = CSG0.subtract(CSG1);\n break;\n case BooleanGeometryOperations.Union:\n boolCSG = CSG0.add(CSG1);\n break;\n }\n }\n return boolCSG.toVertexData();\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}.operation = BABYLON.BooleanGeometryOperations.${BooleanGeometryOperations[this.operation]};\\n`;\n codeString += `${this._codeVariableName}.useOldCSGEngine = ${this.useOldCSGEngine ? \"true\" : \"false\"};\\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.operation = this.operation;\n serializationObject.useOldCSGEngine = this.useOldCSGEngine;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n if (serializationObject.operation) {\n this.operation = serializationObject.operation;\n }\n this.useOldCSGEngine = !!serializationObject.useOldCSGEngine;\n }\n}\n__decorate([editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n embedded: true,\n notifiers: {\n rebuild: true\n }\n})], BooleanGeometryBlock.prototype, \"evaluateContext\", void 0);\n__decorate([editableInPropertyPage(\"Operation\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: {\n rebuild: true\n },\n embedded: true,\n options: [{\n label: \"Intersect\",\n value: BooleanGeometryOperations.Intersect\n }, {\n label: \"Subtract\",\n value: BooleanGeometryOperations.Subtract\n }, {\n label: \"Union\",\n value: BooleanGeometryOperations.Union\n }]\n})], BooleanGeometryBlock.prototype, \"operation\", void 0);\n__decorate([editableInPropertyPage(\"Use old CSG engine\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n embedded: true,\n notifiers: {\n rebuild: true\n }\n})], BooleanGeometryBlock.prototype, \"useOldCSGEngine\", void 0);\nRegisterClass(\"BABYLON.BooleanGeometryBlock\", BooleanGeometryBlock);","map":{"version":3,"names":["__decorate","NodeGeometryBlock","RegisterClass","NodeGeometryBlockConnectionPointTypes","editableInPropertyPage","CSG2","InitializeCSG2Async","IsCSG2Ready","CSG","BooleanGeometryOperations","BooleanGeometryBlock","_isReadyState","_csg2LoadingPromise","constructor","name","evaluateContext","operation","Intersect","useOldCSGEngine","registerInput","Geometry","registerOutput","getClassName","geometry0","_inputs","geometry1","output","_outputs","_buildBlock","state","func","vertexData0","getConnectedValue","vertexData1","vertexCount","positions","length","normals","Array","uvs","colors","boolCSG","CSG0","FromVertexData","CSG1","intersect","Subtract","subtract","Union","union","add","toVertexData","_storedFunction","_storedValue","_dumpPropertiesCode","codeString","_codeVariableName","serialize","serializationObject","_deserialize","embedded","notifiers","rebuild","prototype","options","label","value"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Meshes/Node/Blocks/booleanGeometryBlock.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 { CSG2, InitializeCSG2Async, IsCSG2Ready } from \"../../csg2.js\";\nimport { CSG } from \"../../csg.js\";\n/**\n * Operations supported by the boolean block\n */\nexport var BooleanGeometryOperations;\n(function (BooleanGeometryOperations) {\n /** Intersect */\n BooleanGeometryOperations[BooleanGeometryOperations[\"Intersect\"] = 0] = \"Intersect\";\n /** Subtract */\n BooleanGeometryOperations[BooleanGeometryOperations[\"Subtract\"] = 1] = \"Subtract\";\n /** Union */\n BooleanGeometryOperations[BooleanGeometryOperations[\"Union\"] = 2] = \"Union\";\n})(BooleanGeometryOperations || (BooleanGeometryOperations = {}));\n/**\n * Block used to apply a boolean operation between 2 geometries\n */\nexport class BooleanGeometryBlock extends NodeGeometryBlock {\n /**\n * @internal\n */\n get _isReadyState() {\n if (IsCSG2Ready()) {\n return null;\n }\n if (!this._csg2LoadingPromise) {\n this._csg2LoadingPromise = InitializeCSG2Async();\n }\n return this._csg2LoadingPromise;\n }\n /**\n * Create a new BooleanGeometryBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\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 = false;\n /**\n * Gets or sets the operation applied by the block\n */\n this.operation = BooleanGeometryOperations.Intersect;\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.useOldCSGEngine = false;\n this.registerInput(\"geometry0\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"geometry1\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"BooleanGeometryBlock\";\n }\n /**\n * Gets the geometry0 input component\n */\n get geometry0() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry1 input component\n */\n get geometry1() {\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 const vertexData0 = this.geometry0.getConnectedValue(state);\n const vertexData1 = this.geometry1.getConnectedValue(state);\n if (!vertexData0 || !vertexData1) {\n return null;\n }\n const vertexCount = vertexData0.positions.length / 3;\n // Ensure that all the fields are filled to avoid problems later on in the graph\n if (!vertexData0.normals && vertexData1.normals) {\n vertexData0.normals = new Array(vertexData0.positions.length);\n }\n if (!vertexData1.normals && vertexData0.normals) {\n vertexData1.normals = new Array(vertexData1.positions.length);\n }\n if (!vertexData0.uvs && vertexData1.uvs) {\n vertexData0.uvs = new Array(vertexCount * 2);\n }\n if (!vertexData1.uvs && vertexData0.uvs) {\n vertexData1.uvs = new Array(vertexCount * 2);\n }\n if (!vertexData0.colors && vertexData1.colors) {\n vertexData0.colors = new Array(vertexCount * 4);\n }\n if (!vertexData1.colors && vertexData0.colors) {\n vertexData1.colors = new Array(vertexCount * 4);\n }\n let boolCSG;\n if (this.useOldCSGEngine) {\n const CSG0 = CSG.FromVertexData(vertexData0);\n const CSG1 = CSG.FromVertexData(vertexData1);\n switch (this.operation) {\n case BooleanGeometryOperations.Intersect:\n boolCSG = CSG0.intersect(CSG1);\n break;\n case BooleanGeometryOperations.Subtract:\n boolCSG = CSG0.subtract(CSG1);\n break;\n case BooleanGeometryOperations.Union:\n boolCSG = CSG0.union(CSG1);\n break;\n }\n }\n else {\n const CSG0 = CSG2.FromVertexData(vertexData0);\n const CSG1 = CSG2.FromVertexData(vertexData1);\n switch (this.operation) {\n case BooleanGeometryOperations.Intersect:\n boolCSG = CSG0.intersect(CSG1);\n break;\n case BooleanGeometryOperations.Subtract:\n boolCSG = CSG0.subtract(CSG1);\n break;\n case BooleanGeometryOperations.Union:\n boolCSG = CSG0.add(CSG1);\n break;\n }\n }\n return boolCSG.toVertexData();\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}.operation = BABYLON.BooleanGeometryOperations.${BooleanGeometryOperations[this.operation]};\\n`;\n codeString += `${this._codeVariableName}.useOldCSGEngine = ${this.useOldCSGEngine ? \"true\" : \"false\"};\\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.operation = this.operation;\n serializationObject.useOldCSGEngine = this.useOldCSGEngine;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n if (serializationObject.operation) {\n this.operation = serializationObject.operation;\n }\n this.useOldCSGEngine = !!serializationObject.useOldCSGEngine;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], BooleanGeometryBlock.prototype, \"evaluateContext\", void 0);\n__decorate([\n editableInPropertyPage(\"Operation\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"Intersect\", value: BooleanGeometryOperations.Intersect },\n { label: \"Subtract\", value: BooleanGeometryOperations.Subtract },\n { label: \"Union\", value: BooleanGeometryOperations.Union },\n ],\n })\n], BooleanGeometryBlock.prototype, \"operation\", void 0);\n__decorate([\n editableInPropertyPage(\"Use old CSG engine\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], BooleanGeometryBlock.prototype, \"useOldCSGEngine\", void 0);\nRegisterClass(\"BABYLON.BooleanGeometryBlock\", BooleanGeometryBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|