@babylonjs/core 6.25.0 → 6.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/Debug/debugLayer.js +2 -2
  2. package/Debug/debugLayer.js.map +1 -1
  3. package/Engines/WebGPU/webgpuTintWASM.js +4 -10
  4. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  5. package/Engines/thinEngine.js +2 -2
  6. package/Engines/thinEngine.js.map +1 -1
  7. package/Engines/webgpuEngine.js +5 -12
  8. package/Engines/webgpuEngine.js.map +1 -1
  9. package/FlowGraph/Blocks/Data/Math/flowGraphVector2MathBlocks.d.ts +2 -1
  10. package/FlowGraph/Blocks/Data/Math/flowGraphVector2MathBlocks.js.map +1 -1
  11. package/FlowGraph/Blocks/Data/Math/flowGraphVector3MathBlocks.d.ts +2 -1
  12. package/FlowGraph/Blocks/Data/Math/flowGraphVector3MathBlocks.js.map +1 -1
  13. package/FlowGraph/Blocks/Data/Math/flowGraphVector4MathBlocks.d.ts +2 -1
  14. package/FlowGraph/Blocks/Data/Math/flowGraphVector4MathBlocks.js.map +1 -1
  15. package/Materials/Node/nodeMaterial.js +2 -2
  16. package/Materials/Node/nodeMaterial.js.map +1 -1
  17. package/Materials/shadowDepthWrapper.d.ts +1 -0
  18. package/Materials/shadowDepthWrapper.js +17 -4
  19. package/Materials/shadowDepthWrapper.js.map +1 -1
  20. package/Meshes/Builders/greasedLineBuilder.d.ts +1 -1
  21. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  22. package/Meshes/Compression/dracoCompression.js +7 -7
  23. package/Meshes/Compression/dracoCompression.js.map +1 -1
  24. package/Meshes/Compression/meshoptCompression.js +2 -2
  25. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  26. package/Meshes/GreasedLine/greasedLineMesh.d.ts +2 -1
  27. package/Meshes/GreasedLine/greasedLineMesh.js.map +1 -1
  28. package/Meshes/Node/Blocks/Instances/instantiateRadialBlock.d.ts +1 -1
  29. package/Meshes/Node/Blocks/Instances/instantiateRadialBlock.js.map +1 -1
  30. package/Meshes/Node/nodeGeometry.js +2 -2
  31. package/Meshes/Node/nodeGeometry.js.map +1 -1
  32. package/Meshes/instancedMesh.js +9 -9
  33. package/Meshes/instancedMesh.js.map +1 -1
  34. package/Meshes/mesh.js +3 -1
  35. package/Meshes/mesh.js.map +1 -1
  36. package/Misc/basis.js +4 -4
  37. package/Misc/basis.js.map +1 -1
  38. package/Misc/fileTools.d.ts +2 -0
  39. package/Misc/fileTools.js +12 -3
  40. package/Misc/fileTools.js.map +1 -1
  41. package/Misc/khronosTextureContainer2.js +21 -24
  42. package/Misc/khronosTextureContainer2.js.map +1 -1
  43. package/Misc/tools.d.ts +42 -2
  44. package/Misc/tools.js +102 -2
  45. package/Misc/tools.js.map +1 -1
  46. package/Particles/solidParticleSystem.d.ts +1 -1
  47. package/Particles/solidParticleSystem.js +2 -2
  48. package/Particles/solidParticleSystem.js.map +1 -1
  49. package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
  50. package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
  51. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -2
  52. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  53. package/package.json +1 -1
@@ -1,7 +1,8 @@
1
1
  import { Vector2 } from "../../../../Maths/math.vector";
2
2
  import { FlowGraphBinaryOperationBlock } from "../flowGraphBinaryOperationBlock";
3
3
  import { FlowGraphUnaryOperationBlock } from "../flowGraphUnaryOperationBlock";
4
- import { FlowGraphBlock, type IFlowGraphBlockConfiguration } from "../../../flowGraphBlock";
4
+ import type { IFlowGraphBlockConfiguration } from "../../../flowGraphBlock";
5
+ import { FlowGraphBlock } from "../../../flowGraphBlock";
5
6
  import type { FlowGraphDataConnection } from "../../../flowGraphDataConnection";
6
7
  import type { FlowGraphContext } from "../../../flowGraphContext";
7
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphVector2MathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphVector2MathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { RichTypeNumber, RichTypeVector2 } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport { Vector2 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport { FlowGraphBlock, type IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\n\r\nconst ADDNAME = \"FGAddVector2Block\";\r\n/**\r\n * Adds two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.add(right), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddVector2Block);\r\n\r\nconst SUBNAME = \"FGSubtractVector2Block\";\r\n/**\r\n * Subtracts two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.subtract(right), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractVector2Block);\r\n\r\nconst MULNAME = \"FGMultiplyVector2Block\";\r\n/**\r\n * Multiplies two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.multiply(right), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyVector2Block);\r\n\r\nconst DIVNAME = \"FGDivideVector2Block\";\r\n/**\r\n * Divides two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.divide(right), DIVNAME, config);\r\n }\r\n}\r\nRegisterClass(DIVNAME, FlowGraphDivideVector2Block);\r\n\r\nconst SCALENAME = \"FGScaleVector2Block\";\r\n/**\r\n * Scales a vector by a given factor.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleVector2Block extends FlowGraphBinaryOperationBlock<Vector2, number, Vector2> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeNumber, RichTypeVector2, (left, right) => left.scale(right), SCALENAME, config);\r\n }\r\n}\r\nRegisterClass(SCALENAME, FlowGraphScaleVector2Block);\r\n\r\nconst LENNAME = \"FGLengthVector2Block\";\r\n/**\r\n * Gets the length of a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphLengthVector2Block extends FlowGraphUnaryOperationBlock<Vector2, number> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeNumber, (value) => value.length(), LENNAME, config);\r\n }\r\n}\r\nRegisterClass(LENNAME, FlowGraphLengthVector2Block);\r\n\r\nconst NORMALIZENAME = \"FGNormalizeVector2Block\";\r\n/**\r\n * Normalizes a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphNormalizeVector2Block extends FlowGraphUnaryOperationBlock<Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeVector2,\r\n RichTypeVector2,\r\n (value: Vector2) => {\r\n const copy: Vector2 = value.clone();\r\n copy.normalize();\r\n return copy;\r\n },\r\n NORMALIZENAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(NORMALIZENAME, FlowGraphNormalizeVector2Block);\r\n\r\nconst CREATENAME = \"FGCreateVector2Block\";\r\n/**\r\n * Creates a vector from two components.\r\n */\r\nexport class FlowGraphCreateVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The created vector.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector2>;\r\n\r\n private _cachedVector: Vector2 = Vector2.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.x = this._registerDataInput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.vector = this._registerDataOutput(\"vector\", RichTypeVector2);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n this._cachedVector.x = this.x.getValue(_context);\r\n this._cachedVector.y = this.y.getValue(_context);\r\n this.vector.setValue(this._cachedVector, _context);\r\n }\r\n}\r\nRegisterClass(CREATENAME, FlowGraphCreateVector2Block);\r\n\r\nconst SPLITNAME = \"FGSplitVector2Block\";\r\n/**\r\n * Split a vector into its components.\r\n */\r\nexport class FlowGraphSplitVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to split.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector2>;\r\n /**\r\n * Output connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.vector = this._registerDataInput(\"vector\", RichTypeVector2);\r\n this.x = this._registerDataOutput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataOutput(\"y\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const vector = this.vector.getValue(_context);\r\n this.x.setValue(vector.x, _context);\r\n this.y.setValue(vector.y, _context);\r\n }\r\n}\r\nRegisterClass(SPLITNAME, FlowGraphSplitVector2Block);\r\n\r\nconst ROTATENAME = \"FGRotate2dVector2Block\";\r\n/**\r\n * Rotates a vector by a given angle.\r\n */\r\nexport class FlowGraphRotate2dVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to rotate.\r\n */\r\n public readonly input: FlowGraphDataConnection<Vector2>;\r\n /**\r\n * Input connection: The angle to rotate by.\r\n */\r\n public readonly angle: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The rotated vector.\r\n */\r\n public readonly output: FlowGraphDataConnection<Vector2>;\r\n\r\n private _cachedVector: Vector2 = Vector2.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n this.input = this._registerDataInput(\"input\", RichTypeVector2);\r\n this.angle = this._registerDataInput(\"angle\", RichTypeNumber);\r\n this.output = this._registerDataOutput(\"output\", RichTypeVector2);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const input = this.input.getValue(_context);\r\n const angle = this.angle.getValue(_context);\r\n this._cachedVector.x = input.x * Math.cos(angle) - input.y * Math.sin(angle);\r\n this._cachedVector.y = input.x * Math.sin(angle) + input.y * Math.cos(angle);\r\n this.output.setValue(this._cachedVector, _context);\r\n }\r\n}\r\nRegisterClass(ROTATENAME, FlowGraphRotate2dVector2Block);\r\n"]}
1
+ {"version":3,"file":"flowGraphVector2MathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphVector2MathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { RichTypeNumber, RichTypeVector2 } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport { Vector2 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\n\r\nconst ADDNAME = \"FGAddVector2Block\";\r\n/**\r\n * Adds two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.add(right), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddVector2Block);\r\n\r\nconst SUBNAME = \"FGSubtractVector2Block\";\r\n/**\r\n * Subtracts two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.subtract(right), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractVector2Block);\r\n\r\nconst MULNAME = \"FGMultiplyVector2Block\";\r\n/**\r\n * Multiplies two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.multiply(right), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyVector2Block);\r\n\r\nconst DIVNAME = \"FGDivideVector2Block\";\r\n/**\r\n * Divides two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.divide(right), DIVNAME, config);\r\n }\r\n}\r\nRegisterClass(DIVNAME, FlowGraphDivideVector2Block);\r\n\r\nconst SCALENAME = \"FGScaleVector2Block\";\r\n/**\r\n * Scales a vector by a given factor.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleVector2Block extends FlowGraphBinaryOperationBlock<Vector2, number, Vector2> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeNumber, RichTypeVector2, (left, right) => left.scale(right), SCALENAME, config);\r\n }\r\n}\r\nRegisterClass(SCALENAME, FlowGraphScaleVector2Block);\r\n\r\nconst LENNAME = \"FGLengthVector2Block\";\r\n/**\r\n * Gets the length of a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphLengthVector2Block extends FlowGraphUnaryOperationBlock<Vector2, number> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeNumber, (value) => value.length(), LENNAME, config);\r\n }\r\n}\r\nRegisterClass(LENNAME, FlowGraphLengthVector2Block);\r\n\r\nconst NORMALIZENAME = \"FGNormalizeVector2Block\";\r\n/**\r\n * Normalizes a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphNormalizeVector2Block extends FlowGraphUnaryOperationBlock<Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeVector2,\r\n RichTypeVector2,\r\n (value: Vector2) => {\r\n const copy: Vector2 = value.clone();\r\n copy.normalize();\r\n return copy;\r\n },\r\n NORMALIZENAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(NORMALIZENAME, FlowGraphNormalizeVector2Block);\r\n\r\nconst CREATENAME = \"FGCreateVector2Block\";\r\n/**\r\n * Creates a vector from two components.\r\n */\r\nexport class FlowGraphCreateVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The created vector.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector2>;\r\n\r\n private _cachedVector: Vector2 = Vector2.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.x = this._registerDataInput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.vector = this._registerDataOutput(\"vector\", RichTypeVector2);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n this._cachedVector.x = this.x.getValue(_context);\r\n this._cachedVector.y = this.y.getValue(_context);\r\n this.vector.setValue(this._cachedVector, _context);\r\n }\r\n}\r\nRegisterClass(CREATENAME, FlowGraphCreateVector2Block);\r\n\r\nconst SPLITNAME = \"FGSplitVector2Block\";\r\n/**\r\n * Split a vector into its components.\r\n */\r\nexport class FlowGraphSplitVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to split.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector2>;\r\n /**\r\n * Output connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.vector = this._registerDataInput(\"vector\", RichTypeVector2);\r\n this.x = this._registerDataOutput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataOutput(\"y\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const vector = this.vector.getValue(_context);\r\n this.x.setValue(vector.x, _context);\r\n this.y.setValue(vector.y, _context);\r\n }\r\n}\r\nRegisterClass(SPLITNAME, FlowGraphSplitVector2Block);\r\n\r\nconst ROTATENAME = \"FGRotate2dVector2Block\";\r\n/**\r\n * Rotates a vector by a given angle.\r\n */\r\nexport class FlowGraphRotate2dVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to rotate.\r\n */\r\n public readonly input: FlowGraphDataConnection<Vector2>;\r\n /**\r\n * Input connection: The angle to rotate by.\r\n */\r\n public readonly angle: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The rotated vector.\r\n */\r\n public readonly output: FlowGraphDataConnection<Vector2>;\r\n\r\n private _cachedVector: Vector2 = Vector2.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n this.input = this._registerDataInput(\"input\", RichTypeVector2);\r\n this.angle = this._registerDataInput(\"angle\", RichTypeNumber);\r\n this.output = this._registerDataOutput(\"output\", RichTypeVector2);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const input = this.input.getValue(_context);\r\n const angle = this.angle.getValue(_context);\r\n this._cachedVector.x = input.x * Math.cos(angle) - input.y * Math.sin(angle);\r\n this._cachedVector.y = input.x * Math.sin(angle) + input.y * Math.cos(angle);\r\n this.output.setValue(this._cachedVector, _context);\r\n }\r\n}\r\nRegisterClass(ROTATENAME, FlowGraphRotate2dVector2Block);\r\n"]}
@@ -2,7 +2,8 @@ import { FlowGraphBinaryOperationBlock } from "../flowGraphBinaryOperationBlock"
2
2
  import type { Matrix } from "../../../../Maths/math.vector";
3
3
  import { Vector3 } from "../../../../Maths/math.vector";
4
4
  import { FlowGraphUnaryOperationBlock } from "../flowGraphUnaryOperationBlock";
5
- import { FlowGraphBlock, type IFlowGraphBlockConfiguration } from "../../../flowGraphBlock";
5
+ import type { IFlowGraphBlockConfiguration } from "../../../flowGraphBlock";
6
+ import { FlowGraphBlock } from "../../../flowGraphBlock";
6
7
  import type { FlowGraphContext } from "../../../flowGraphContext";
7
8
  import type { FlowGraphDataConnection } from "../../../flowGraphDataConnection";
8
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphVector3MathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphVector3MathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { RichTypeMatrix, RichTypeNumber, RichTypeVector3 } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport type { Matrix } from \"../../../../Maths/math.vector\";\r\nimport { Quaternion, Vector3 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport { FlowGraphBlock, type IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\n\r\nconst ADDNAME = \"FGAddVector3Block\";\r\n/**\r\n * Add two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.add(right), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddVector3Block);\r\n\r\nconst SUBNAME = \"FGSubtractVector3Block\";\r\n/**\r\n * Subtract two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.subtract(right), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractVector3Block);\r\n\r\nconst MULNAME = \"FGMultiplyVector3Block\";\r\n/**\r\n * Multiply two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.multiply(right), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyVector3Block);\r\n\r\nconst DIVNAME = \"FGDivideVector3Block\";\r\n/**\r\n * Divide two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.divide(right), DIVNAME, config);\r\n }\r\n}\r\nRegisterClass(DIVNAME, FlowGraphDivideVector3Block);\r\n\r\nconst SCALNAME = \"FGScaleVector3Block\";\r\n/**\r\n * Scale a vector by a number.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleVector3Block extends FlowGraphBinaryOperationBlock<Vector3, number, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeNumber, RichTypeVector3, (left, right) => left.scale(right), SCALNAME, config);\r\n }\r\n}\r\nRegisterClass(SCALNAME, FlowGraphScaleVector3Block);\r\n\r\nconst LENNAME = \"FGLengthVector3Block\";\r\n/**\r\n * Get the length of a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphLengthVector3Block extends FlowGraphUnaryOperationBlock<Vector3, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeNumber, (value) => value.length(), LENNAME, config);\r\n }\r\n}\r\nRegisterClass(LENNAME, FlowGraphLengthVector3Block);\r\n\r\nconst NORMNAME = \"FGNormalizeVector3Block\";\r\n/**\r\n * Normalize a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphNormalizeVector3Block extends FlowGraphUnaryOperationBlock<Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, (value) => value.normalizeToNew(), NORMNAME, config);\r\n }\r\n}\r\nRegisterClass(NORMNAME, FlowGraphNormalizeVector3Block);\r\n\r\nconst DOTNAME = \"FGDotVector3Block\";\r\n/**\r\n * Get the dot product of two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDotVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeNumber, (left, right) => Vector3.Dot(left, right), DOTNAME, config);\r\n }\r\n}\r\nRegisterClass(DOTNAME, FlowGraphDotVector3Block);\r\n\r\nconst CROSSNAME = \"FGCrossVector3Block\";\r\n/**\r\n * Get the cross product of two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphCrossVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => Vector3.Cross(left, right), CROSSNAME, config);\r\n }\r\n}\r\nRegisterClass(CROSSNAME, FlowGraphCrossVector3Block);\r\n\r\nconst CREATENAME = \"FGCreateVector3Block\";\r\n/**\r\n * Create a vector from its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphCreateVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The created vector.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedVector: Vector3 = Vector3.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.x = this._registerDataInput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.z = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.vector = this._registerDataOutput(\"vector\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n this._cachedVector.x = this.x.getValue(_context);\r\n this._cachedVector.y = this.y.getValue(_context);\r\n this._cachedVector.z = this.z.getValue(_context);\r\n this.vector.setValue(this._cachedVector, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return CREATENAME;\r\n }\r\n}\r\nRegisterClass(CREATENAME, FlowGraphCreateVector3Block);\r\n\r\nconst SPLITNAME = \"FGSplitVector3Block\";\r\n/**\r\n * Split a vector into its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphSplitVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to split.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Output connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.vector = this._registerDataInput(\"vector\", RichTypeVector3);\r\n this.x = this._registerDataOutput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataOutput(\"y\", RichTypeNumber);\r\n this.z = this._registerDataOutput(\"z\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const vector = this.vector.getValue(_context);\r\n this.x.setValue(vector.x, _context);\r\n this.y.setValue(vector.y, _context);\r\n this.z.setValue(vector.z, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return SPLITNAME;\r\n }\r\n}\r\nRegisterClass(SPLITNAME, FlowGraphSplitVector3Block);\r\n\r\nconst ROTATENAME = \"FGRotateVector3Block\";\r\n/**\r\n * Rotates a vector by a given angle.\r\n */\r\nexport class FlowGraphRotate3dVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to rotate.\r\n */\r\n public readonly input: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Input connection: The axis to rotate around.\r\n */\r\n public readonly axis: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Input connection: The angle to rotate by.\r\n */\r\n public readonly angle: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The rotated vector.\r\n */\r\n public readonly output: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedQuaternion = new Quaternion();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n this.input = this._registerDataInput(\"input\", RichTypeVector3);\r\n this.angle = this._registerDataInput(\"angle\", RichTypeNumber);\r\n this.output = this._registerDataOutput(\"output\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const rot = Quaternion.RotationAxisToRef(this.axis.getValue(_context), this.angle.getValue(_context), this._cachedQuaternion);\r\n const input = this.input.getValue(_context);\r\n const output = this.output.getValue(_context);\r\n input.applyRotationQuaternionToRef(rot, output);\r\n }\r\n\r\n public getClassName(): string {\r\n return ROTATENAME;\r\n }\r\n}\r\nRegisterClass(ROTATENAME, FlowGraphRotate3dVector3Block);\r\n\r\nconst TRANSFORMNAME = \"FGTransformVector3Block\";\r\n/**\r\n * Transforms a vector by a given matrix.\r\n * @experimental\r\n */\r\nexport class FlowGraphTransformVector3Block extends FlowGraphBinaryOperationBlock<Matrix, Vector3, Vector3> {\r\n private _cachedResult: Vector3 = Vector3.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeVector3, RichTypeVector3, (left, right) => Vector3.TransformCoordinatesToRef(right, left, this._cachedResult), TRANSFORMNAME, config);\r\n }\r\n}\r\nRegisterClass(TRANSFORMNAME, FlowGraphTransformVector3Block);\r\n"]}
1
+ {"version":3,"file":"flowGraphVector3MathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphVector3MathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { RichTypeMatrix, RichTypeNumber, RichTypeVector3 } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport type { Matrix } from \"../../../../Maths/math.vector\";\r\nimport { Quaternion, Vector3 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\n\r\nconst ADDNAME = \"FGAddVector3Block\";\r\n/**\r\n * Add two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.add(right), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddVector3Block);\r\n\r\nconst SUBNAME = \"FGSubtractVector3Block\";\r\n/**\r\n * Subtract two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.subtract(right), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractVector3Block);\r\n\r\nconst MULNAME = \"FGMultiplyVector3Block\";\r\n/**\r\n * Multiply two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.multiply(right), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyVector3Block);\r\n\r\nconst DIVNAME = \"FGDivideVector3Block\";\r\n/**\r\n * Divide two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.divide(right), DIVNAME, config);\r\n }\r\n}\r\nRegisterClass(DIVNAME, FlowGraphDivideVector3Block);\r\n\r\nconst SCALNAME = \"FGScaleVector3Block\";\r\n/**\r\n * Scale a vector by a number.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleVector3Block extends FlowGraphBinaryOperationBlock<Vector3, number, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeNumber, RichTypeVector3, (left, right) => left.scale(right), SCALNAME, config);\r\n }\r\n}\r\nRegisterClass(SCALNAME, FlowGraphScaleVector3Block);\r\n\r\nconst LENNAME = \"FGLengthVector3Block\";\r\n/**\r\n * Get the length of a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphLengthVector3Block extends FlowGraphUnaryOperationBlock<Vector3, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeNumber, (value) => value.length(), LENNAME, config);\r\n }\r\n}\r\nRegisterClass(LENNAME, FlowGraphLengthVector3Block);\r\n\r\nconst NORMNAME = \"FGNormalizeVector3Block\";\r\n/**\r\n * Normalize a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphNormalizeVector3Block extends FlowGraphUnaryOperationBlock<Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, (value) => value.normalizeToNew(), NORMNAME, config);\r\n }\r\n}\r\nRegisterClass(NORMNAME, FlowGraphNormalizeVector3Block);\r\n\r\nconst DOTNAME = \"FGDotVector3Block\";\r\n/**\r\n * Get the dot product of two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDotVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeNumber, (left, right) => Vector3.Dot(left, right), DOTNAME, config);\r\n }\r\n}\r\nRegisterClass(DOTNAME, FlowGraphDotVector3Block);\r\n\r\nconst CROSSNAME = \"FGCrossVector3Block\";\r\n/**\r\n * Get the cross product of two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphCrossVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => Vector3.Cross(left, right), CROSSNAME, config);\r\n }\r\n}\r\nRegisterClass(CROSSNAME, FlowGraphCrossVector3Block);\r\n\r\nconst CREATENAME = \"FGCreateVector3Block\";\r\n/**\r\n * Create a vector from its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphCreateVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The created vector.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedVector: Vector3 = Vector3.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.x = this._registerDataInput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.z = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.vector = this._registerDataOutput(\"vector\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n this._cachedVector.x = this.x.getValue(_context);\r\n this._cachedVector.y = this.y.getValue(_context);\r\n this._cachedVector.z = this.z.getValue(_context);\r\n this.vector.setValue(this._cachedVector, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return CREATENAME;\r\n }\r\n}\r\nRegisterClass(CREATENAME, FlowGraphCreateVector3Block);\r\n\r\nconst SPLITNAME = \"FGSplitVector3Block\";\r\n/**\r\n * Split a vector into its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphSplitVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to split.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Output connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.vector = this._registerDataInput(\"vector\", RichTypeVector3);\r\n this.x = this._registerDataOutput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataOutput(\"y\", RichTypeNumber);\r\n this.z = this._registerDataOutput(\"z\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const vector = this.vector.getValue(_context);\r\n this.x.setValue(vector.x, _context);\r\n this.y.setValue(vector.y, _context);\r\n this.z.setValue(vector.z, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return SPLITNAME;\r\n }\r\n}\r\nRegisterClass(SPLITNAME, FlowGraphSplitVector3Block);\r\n\r\nconst ROTATENAME = \"FGRotateVector3Block\";\r\n/**\r\n * Rotates a vector by a given angle.\r\n */\r\nexport class FlowGraphRotate3dVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to rotate.\r\n */\r\n public readonly input: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Input connection: The axis to rotate around.\r\n */\r\n public readonly axis: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Input connection: The angle to rotate by.\r\n */\r\n public readonly angle: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The rotated vector.\r\n */\r\n public readonly output: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedQuaternion = new Quaternion();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n this.input = this._registerDataInput(\"input\", RichTypeVector3);\r\n this.angle = this._registerDataInput(\"angle\", RichTypeNumber);\r\n this.output = this._registerDataOutput(\"output\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const rot = Quaternion.RotationAxisToRef(this.axis.getValue(_context), this.angle.getValue(_context), this._cachedQuaternion);\r\n const input = this.input.getValue(_context);\r\n const output = this.output.getValue(_context);\r\n input.applyRotationQuaternionToRef(rot, output);\r\n }\r\n\r\n public getClassName(): string {\r\n return ROTATENAME;\r\n }\r\n}\r\nRegisterClass(ROTATENAME, FlowGraphRotate3dVector3Block);\r\n\r\nconst TRANSFORMNAME = \"FGTransformVector3Block\";\r\n/**\r\n * Transforms a vector by a given matrix.\r\n * @experimental\r\n */\r\nexport class FlowGraphTransformVector3Block extends FlowGraphBinaryOperationBlock<Matrix, Vector3, Vector3> {\r\n private _cachedResult: Vector3 = Vector3.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeVector3, RichTypeVector3, (left, right) => Vector3.TransformCoordinatesToRef(right, left, this._cachedResult), TRANSFORMNAME, config);\r\n }\r\n}\r\nRegisterClass(TRANSFORMNAME, FlowGraphTransformVector3Block);\r\n"]}
@@ -1,7 +1,8 @@
1
1
  import { FlowGraphBinaryOperationBlock } from "../flowGraphBinaryOperationBlock";
2
2
  import { Vector4 } from "../../../../Maths/math.vector";
3
3
  import { FlowGraphUnaryOperationBlock } from "../flowGraphUnaryOperationBlock";
4
- import { FlowGraphBlock, type IFlowGraphBlockConfiguration } from "../../../flowGraphBlock";
4
+ import type { IFlowGraphBlockConfiguration } from "../../../flowGraphBlock";
5
+ import { FlowGraphBlock } from "../../../flowGraphBlock";
5
6
  import type { FlowGraphContext } from "../../../flowGraphContext";
6
7
  import type { FlowGraphDataConnection } from "../../../flowGraphDataConnection";
7
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphVector4MathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphVector4MathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { RichTypeNumber, RichTypeVector4 } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport { Vector4 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport { FlowGraphBlock, type IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\n\r\nconst ADDNAME = \"FGAddVector4Block\";\r\n/**\r\n * Add two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddVector4Block extends FlowGraphBinaryOperationBlock<Vector4, Vector4, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeVector4, RichTypeVector4, (left, right) => left.add(right), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddVector4Block);\r\n\r\nconst SUBNAME = \"FGSubtractVector4Block\";\r\n/**\r\n * Subtract two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractVector4Block extends FlowGraphBinaryOperationBlock<Vector4, Vector4, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeVector4, RichTypeVector4, (left, right) => left.subtract(right), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractVector4Block);\r\n\r\nconst MULNAME = \"FGMultiplyVector4Block\";\r\n/**\r\n * Multiply two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyVector4Block extends FlowGraphBinaryOperationBlock<Vector4, Vector4, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeVector4, RichTypeVector4, (left, right) => left.multiply(right), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyVector4Block);\r\n\r\nconst DIVNAME = \"FGDivideVector4Block\";\r\n/**\r\n * Divide two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideVector4Block extends FlowGraphBinaryOperationBlock<Vector4, Vector4, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeVector4, RichTypeVector4, (left, right) => left.divide(right), DIVNAME, config);\r\n }\r\n}\r\nRegisterClass(DIVNAME, FlowGraphDivideVector4Block);\r\n\r\nconst SCALNAME = \"FGScaleVector4Block\";\r\n/**\r\n * Scale a vector by a number.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleVector4Block extends FlowGraphBinaryOperationBlock<Vector4, number, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeNumber, RichTypeVector4, (left, right) => left.scale(right), SCALNAME, config);\r\n }\r\n}\r\nRegisterClass(SCALNAME, FlowGraphScaleVector4Block);\r\n\r\nconst LENGTHNAME = \"FGLengthVector4Block\";\r\n/**\r\n * Get the length of a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphLengthVector4Block extends FlowGraphUnaryOperationBlock<Vector4, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeNumber, (value) => value.length(), LENGTHNAME, config);\r\n }\r\n}\r\nRegisterClass(LENGTHNAME, FlowGraphLengthVector4Block);\r\n\r\nconst NORMALIZENAME = \"FGNormalizeVector4Block\";\r\n/**\r\n * Normalize a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphNormalizeVector4Block extends FlowGraphUnaryOperationBlock<Vector4, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeVector4,\r\n RichTypeVector4,\r\n (value: Vector4) => {\r\n const clone = value.clone();\r\n clone.normalize();\r\n return clone;\r\n },\r\n NORMALIZENAME,\r\n config\r\n );\r\n }\r\n\r\n public getClassName(): string {\r\n return NORMALIZENAME;\r\n }\r\n}\r\nRegisterClass(NORMALIZENAME, FlowGraphNormalizeVector4Block);\r\n\r\nconst CREATENAME = \"FGCreateVector4Block\";\r\n/**\r\n * Create a vector from its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphCreateVector4Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The w component of the vector.\r\n */\r\n public readonly w: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The created vector.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector4>;\r\n\r\n private _cachedVector: Vector4 = Vector4.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.x = this._registerDataInput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.z = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.w = this._registerDataInput(\"w\", RichTypeNumber);\r\n this.vector = this._registerDataOutput(\"vector\", RichTypeVector4);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n this._cachedVector.x = this.x.getValue(_context);\r\n this._cachedVector.y = this.y.getValue(_context);\r\n this._cachedVector.z = this.z.getValue(_context);\r\n this._cachedVector.w = this.w.getValue(_context);\r\n this.vector.setValue(this._cachedVector, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return CREATENAME;\r\n }\r\n}\r\nRegisterClass(CREATENAME, FlowGraphCreateVector4Block);\r\n\r\nconst SPLITNAME = \"FGSplitVector4Block\";\r\n/**\r\n * Split a vector into its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphSplitVector4Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to split.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector4>;\r\n /**\r\n * Output connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The w component of the vector.\r\n */\r\n public readonly w: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.vector = this._registerDataInput(\"vector\", RichTypeVector4);\r\n this.x = this._registerDataOutput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataOutput(\"y\", RichTypeNumber);\r\n this.z = this._registerDataOutput(\"z\", RichTypeNumber);\r\n this.w = this._registerDataOutput(\"w\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const vector = this.vector.getValue(_context);\r\n this.x.setValue(vector.x, _context);\r\n this.y.setValue(vector.y, _context);\r\n this.z.setValue(vector.z, _context);\r\n this.w.setValue(vector.w, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return SPLITNAME;\r\n }\r\n}\r\nRegisterClass(SPLITNAME, FlowGraphSplitVector4Block);\r\n"]}
1
+ {"version":3,"file":"flowGraphVector4MathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphVector4MathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { RichTypeNumber, RichTypeVector4 } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport { Vector4 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\n\r\nconst ADDNAME = \"FGAddVector4Block\";\r\n/**\r\n * Add two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddVector4Block extends FlowGraphBinaryOperationBlock<Vector4, Vector4, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeVector4, RichTypeVector4, (left, right) => left.add(right), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddVector4Block);\r\n\r\nconst SUBNAME = \"FGSubtractVector4Block\";\r\n/**\r\n * Subtract two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractVector4Block extends FlowGraphBinaryOperationBlock<Vector4, Vector4, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeVector4, RichTypeVector4, (left, right) => left.subtract(right), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractVector4Block);\r\n\r\nconst MULNAME = \"FGMultiplyVector4Block\";\r\n/**\r\n * Multiply two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyVector4Block extends FlowGraphBinaryOperationBlock<Vector4, Vector4, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeVector4, RichTypeVector4, (left, right) => left.multiply(right), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyVector4Block);\r\n\r\nconst DIVNAME = \"FGDivideVector4Block\";\r\n/**\r\n * Divide two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideVector4Block extends FlowGraphBinaryOperationBlock<Vector4, Vector4, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeVector4, RichTypeVector4, (left, right) => left.divide(right), DIVNAME, config);\r\n }\r\n}\r\nRegisterClass(DIVNAME, FlowGraphDivideVector4Block);\r\n\r\nconst SCALNAME = \"FGScaleVector4Block\";\r\n/**\r\n * Scale a vector by a number.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleVector4Block extends FlowGraphBinaryOperationBlock<Vector4, number, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeNumber, RichTypeVector4, (left, right) => left.scale(right), SCALNAME, config);\r\n }\r\n}\r\nRegisterClass(SCALNAME, FlowGraphScaleVector4Block);\r\n\r\nconst LENGTHNAME = \"FGLengthVector4Block\";\r\n/**\r\n * Get the length of a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphLengthVector4Block extends FlowGraphUnaryOperationBlock<Vector4, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector4, RichTypeNumber, (value) => value.length(), LENGTHNAME, config);\r\n }\r\n}\r\nRegisterClass(LENGTHNAME, FlowGraphLengthVector4Block);\r\n\r\nconst NORMALIZENAME = \"FGNormalizeVector4Block\";\r\n/**\r\n * Normalize a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphNormalizeVector4Block extends FlowGraphUnaryOperationBlock<Vector4, Vector4> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeVector4,\r\n RichTypeVector4,\r\n (value: Vector4) => {\r\n const clone = value.clone();\r\n clone.normalize();\r\n return clone;\r\n },\r\n NORMALIZENAME,\r\n config\r\n );\r\n }\r\n\r\n public getClassName(): string {\r\n return NORMALIZENAME;\r\n }\r\n}\r\nRegisterClass(NORMALIZENAME, FlowGraphNormalizeVector4Block);\r\n\r\nconst CREATENAME = \"FGCreateVector4Block\";\r\n/**\r\n * Create a vector from its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphCreateVector4Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The w component of the vector.\r\n */\r\n public readonly w: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The created vector.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector4>;\r\n\r\n private _cachedVector: Vector4 = Vector4.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.x = this._registerDataInput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.z = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.w = this._registerDataInput(\"w\", RichTypeNumber);\r\n this.vector = this._registerDataOutput(\"vector\", RichTypeVector4);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n this._cachedVector.x = this.x.getValue(_context);\r\n this._cachedVector.y = this.y.getValue(_context);\r\n this._cachedVector.z = this.z.getValue(_context);\r\n this._cachedVector.w = this.w.getValue(_context);\r\n this.vector.setValue(this._cachedVector, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return CREATENAME;\r\n }\r\n}\r\nRegisterClass(CREATENAME, FlowGraphCreateVector4Block);\r\n\r\nconst SPLITNAME = \"FGSplitVector4Block\";\r\n/**\r\n * Split a vector into its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphSplitVector4Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to split.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector4>;\r\n /**\r\n * Output connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The w component of the vector.\r\n */\r\n public readonly w: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.vector = this._registerDataInput(\"vector\", RichTypeVector4);\r\n this.x = this._registerDataOutput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataOutput(\"y\", RichTypeNumber);\r\n this.z = this._registerDataOutput(\"z\", RichTypeNumber);\r\n this.w = this._registerDataOutput(\"w\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const vector = this.vector.getValue(_context);\r\n this.x.setValue(vector.x, _context);\r\n this.y.setValue(vector.y, _context);\r\n this.z.setValue(vector.z, _context);\r\n this.w.setValue(vector.w, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return SPLITNAME;\r\n }\r\n}\r\nRegisterClass(SPLITNAME, FlowGraphSplitVector4Block);\r\n"]}
@@ -1247,7 +1247,7 @@ export class NodeMaterial extends PushMaterial {
1247
1247
  if (typeof this.BJSNODEMATERIALEDITOR == "undefined") {
1248
1248
  const editorUrl = config && config.editorURL ? config.editorURL : NodeMaterial.EditorURL;
1249
1249
  // Load editor and add it to the DOM
1250
- Tools.LoadScript(editorUrl, () => {
1250
+ Tools.LoadBabylonScript(editorUrl, () => {
1251
1251
  this.BJSNODEMATERIALEDITOR = this.BJSNODEMATERIALEDITOR || this._getGlobalNodeMaterialEditor();
1252
1252
  this._createNodeEditor(config === null || config === void 0 ? void 0 : config.nodeEditorConfig);
1253
1253
  resolve();
@@ -1787,7 +1787,7 @@ export class NodeMaterial extends PushMaterial {
1787
1787
  }
1788
1788
  NodeMaterial._BuildIdGenerator = 0;
1789
1789
  /** Define the Url to load node editor script */
1790
- NodeMaterial.EditorURL = `https://unpkg.com/babylonjs-node-editor@${Engine.Version}/babylon.nodeEditor.js`;
1790
+ NodeMaterial.EditorURL = `v${Engine.Version}/nodeEditor/babylon.nodeEditor.js`;
1791
1791
  /** Define the Url to load snippets */
1792
1792
  NodeMaterial.SnippetUrl = `https://snippet.babylonjs.com`;
1793
1793
  /** Gets or sets a boolean indicating that node materials should not deserialize textures from json / snippet content */