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 { Matrix, Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to apply a transform to a vector / geometry\n */\nexport class GeometryTransformBlock extends NodeGeometryBlock {\n /**\n * Create a new GeometryTransformBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._rotationMatrix = new Matrix();\n this._scalingMatrix = new Matrix();\n this._translationMatrix = new Matrix();\n this._scalingRotationMatrix = new Matrix();\n this._pivotMatrix = new Matrix();\n this._backPivotMatrix = new Matrix();\n this._transformMatrix = new Matrix();\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(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix, true);\n this.registerInput(\"translation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"rotation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"scaling\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.One());\n this.registerInput(\"pivot\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryTransformBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[1];\n }\n /**\n * Gets the translation input component\n */\n get translation() {\n return this._inputs[2];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[3];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[4];\n }\n /**\n * Gets the pivot input component\n */\n get pivot() {\n return this._inputs[5];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n if (!this.value.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = state => {\n const value = this.value.getConnectedValue(state);\n if (!value) {\n return null;\n }\n let matrix;\n if (this.matrix.isConnected) {\n matrix = this.matrix.getConnectedValue(state);\n } else {\n const scaling = this.scaling.getConnectedValue(state) || Vector3.OneReadOnly;\n const rotation = this.rotation.getConnectedValue(state) || Vector3.ZeroReadOnly;\n const translation = this.translation.getConnectedValue(state) || Vector3.ZeroReadOnly;\n const pivot = this.pivot.getConnectedValue(state) || Vector3.ZeroReadOnly;\n // Transform\n Matrix.TranslationToRef(-pivot.x, -pivot.y, -pivot.z, this._pivotMatrix);\n Matrix.ScalingToRef(scaling.x, scaling.y, scaling.z, this._scalingMatrix);\n Matrix.RotationYawPitchRollToRef(rotation.y, rotation.x, rotation.z, this._rotationMatrix);\n Matrix.TranslationToRef(translation.x + pivot.x, translation.y + pivot.y, translation.z + pivot.z, this._translationMatrix);\n this._pivotMatrix.multiplyToRef(this._scalingMatrix, this._backPivotMatrix);\n this._backPivotMatrix.multiplyToRef(this._rotationMatrix, this._scalingRotationMatrix);\n this._scalingRotationMatrix.multiplyToRef(this._translationMatrix, this._transformMatrix);\n matrix = this._transformMatrix;\n }\n switch (this.value.type) {\n case NodeGeometryBlockConnectionPointTypes.Geometry:\n {\n const geometry = value.clone();\n geometry.transform(matrix);\n return geometry;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n return Vector2.Transform(value, matrix);\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n return Vector3.TransformCoordinates(value, matrix);\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n return Vector4.TransformCoordinates(value, matrix);\n }\n return null;\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 const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"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 return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n embedded: true,\n notifiers: {\n rebuild: true\n }\n})], GeometryTransformBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.GeometryTransformBlock\", GeometryTransformBlock);","map":{"version":3,"names":["__decorate","NodeGeometryBlock","RegisterClass","NodeGeometryBlockConnectionPointTypes","Matrix","Vector2","Vector3","Vector4","editableInPropertyPage","GeometryTransformBlock","constructor","name","_rotationMatrix","_scalingMatrix","_translationMatrix","_scalingRotationMatrix","_pivotMatrix","_backPivotMatrix","_transformMatrix","evaluateContext","registerInput","AutoDetect","Zero","One","registerOutput","BasedOnInput","_outputs","_typeConnectionSource","_inputs","excludedConnectionPointTypes","push","Float","Texture","getClassName","value","matrix","translation","rotation","scaling","pivot","output","_buildBlock","state","isConnected","_storedFunction","_storedValue","func","getConnectedValue","OneReadOnly","ZeroReadOnly","TranslationToRef","x","y","z","ScalingToRef","RotationYawPitchRollToRef","multiplyToRef","type","Geometry","geometry","clone","transform","Transform","TransformCoordinates","_dumpPropertiesCode","codeString","_codeVariableName","serialize","serializationObject","_deserialize","undefined","embedded","notifiers","rebuild","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryTransformBlock.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 { Matrix, Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to apply a transform to a vector / geometry\n */\nexport class GeometryTransformBlock extends NodeGeometryBlock {\n /**\n * Create a new GeometryTransformBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._rotationMatrix = new Matrix();\n this._scalingMatrix = new Matrix();\n this._translationMatrix = new Matrix();\n this._scalingRotationMatrix = new Matrix();\n this._pivotMatrix = new Matrix();\n this._backPivotMatrix = new Matrix();\n this._transformMatrix = new Matrix();\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(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix, true);\n this.registerInput(\"translation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"rotation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"scaling\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.One());\n this.registerInput(\"pivot\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryTransformBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[1];\n }\n /**\n * Gets the translation input component\n */\n get translation() {\n return this._inputs[2];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[3];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[4];\n }\n /**\n * Gets the pivot input component\n */\n get pivot() {\n return this._inputs[5];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n if (!this.value.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (state) => {\n const value = this.value.getConnectedValue(state);\n if (!value) {\n return null;\n }\n let matrix;\n if (this.matrix.isConnected) {\n matrix = this.matrix.getConnectedValue(state);\n }\n else {\n const scaling = this.scaling.getConnectedValue(state) || Vector3.OneReadOnly;\n const rotation = this.rotation.getConnectedValue(state) || Vector3.ZeroReadOnly;\n const translation = this.translation.getConnectedValue(state) || Vector3.ZeroReadOnly;\n const pivot = this.pivot.getConnectedValue(state) || Vector3.ZeroReadOnly;\n // Transform\n Matrix.TranslationToRef(-pivot.x, -pivot.y, -pivot.z, this._pivotMatrix);\n Matrix.ScalingToRef(scaling.x, scaling.y, scaling.z, this._scalingMatrix);\n Matrix.RotationYawPitchRollToRef(rotation.y, rotation.x, rotation.z, this._rotationMatrix);\n Matrix.TranslationToRef(translation.x + pivot.x, translation.y + pivot.y, translation.z + pivot.z, this._translationMatrix);\n this._pivotMatrix.multiplyToRef(this._scalingMatrix, this._backPivotMatrix);\n this._backPivotMatrix.multiplyToRef(this._rotationMatrix, this._scalingRotationMatrix);\n this._scalingRotationMatrix.multiplyToRef(this._translationMatrix, this._transformMatrix);\n matrix = this._transformMatrix;\n }\n switch (this.value.type) {\n case NodeGeometryBlockConnectionPointTypes.Geometry: {\n const geometry = value.clone();\n geometry.transform(matrix);\n return geometry;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n return Vector2.Transform(value, matrix);\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n return Vector3.TransformCoordinates(value, matrix);\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n return Vector4.TransformCoordinates(value, matrix);\n }\n return null;\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 const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"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 return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], GeometryTransformBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.GeometryTransformBlock\", GeometryTransformBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|