@babylonjs/core 6.37.0 → 6.38.0

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 (147) hide show
  1. package/Behaviors/Cameras/bouncingBehavior.js +8 -6
  2. package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
  3. package/Behaviors/Cameras/framingBehavior.js +3 -3
  4. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  5. package/Behaviors/Meshes/baseSixDofDragBehavior.js +1 -1
  6. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  7. package/Behaviors/Meshes/sixDofDragBehavior.js +26 -6
  8. package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
  9. package/Bones/skeleton.js +2 -2
  10. package/Bones/skeleton.js.map +1 -1
  11. package/Buffers/buffer.align.js +4 -1
  12. package/Buffers/buffer.align.js.map +1 -1
  13. package/Buffers/buffer.d.ts +10 -3
  14. package/Buffers/buffer.js +34 -5
  15. package/Buffers/buffer.js.map +1 -1
  16. package/Cameras/arcRotateCamera.d.ts +9 -8
  17. package/Cameras/arcRotateCamera.js +5 -5
  18. package/Cameras/arcRotateCamera.js.map +1 -1
  19. package/Engines/Extensions/engine.cubeTexture.d.ts +1 -3
  20. package/Engines/Extensions/engine.cubeTexture.js +1 -3
  21. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  22. package/Engines/Extensions/engine.renderTarget.js +6 -17
  23. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  24. package/Engines/WebGL/webGLRenderTargetWrapper.d.ts +11 -0
  25. package/Engines/WebGL/webGLRenderTargetWrapper.js +27 -0
  26. package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
  27. package/Engines/WebGPU/Extensions/engine.cubeTexture.js +8 -4
  28. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  29. package/Engines/WebGPU/Extensions/engine.renderTarget.js +1 -1
  30. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  31. package/Engines/WebGPU/webgpuTextureManager.js +3 -0
  32. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  33. package/Engines/renderTargetWrapper.js +7 -1
  34. package/Engines/renderTargetWrapper.js.map +1 -1
  35. package/Engines/thinEngine.d.ts +3 -3
  36. package/Engines/thinEngine.js +16 -8
  37. package/Engines/thinEngine.js.map +1 -1
  38. package/Engines/webgpuEngine.d.ts +2 -2
  39. package/Engines/webgpuEngine.js +7 -12
  40. package/Engines/webgpuEngine.js.map +1 -1
  41. package/Gizmos/boundingBoxGizmo.js +1 -1
  42. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  43. package/Gizmos/cameraGizmo.d.ts +9 -2
  44. package/Gizmos/cameraGizmo.js +29 -10
  45. package/Gizmos/cameraGizmo.js.map +1 -1
  46. package/Lights/shadowLight.d.ts +2 -2
  47. package/Lights/shadowLight.js +1 -1
  48. package/Lights/shadowLight.js.map +1 -1
  49. package/Materials/Textures/baseTexture.d.ts +1 -1
  50. package/Materials/Textures/baseTexture.js +1 -1
  51. package/Materials/Textures/baseTexture.js.map +1 -1
  52. package/Materials/Textures/internalTexture.js +5 -0
  53. package/Materials/Textures/internalTexture.js.map +1 -1
  54. package/Materials/Textures/multiRenderTarget.d.ts +1 -1
  55. package/Materials/Textures/multiRenderTarget.js +4 -4
  56. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  57. package/Materials/Textures/videoTexture.js +2 -0
  58. package/Materials/Textures/videoTexture.js.map +1 -1
  59. package/Materials/materialPluginManager.d.ts +1 -1
  60. package/Materials/materialPluginManager.js.map +1 -1
  61. package/Meshes/Builders/groundBuilder.d.ts +57 -91
  62. package/Meshes/Builders/groundBuilder.js +57 -91
  63. package/Meshes/Builders/groundBuilder.js.map +1 -1
  64. package/Meshes/Node/Blocks/geometryArcTan2Block.d.ts +30 -0
  65. package/Meshes/Node/Blocks/geometryArcTan2Block.js +81 -0
  66. package/Meshes/Node/Blocks/geometryArcTan2Block.js.map +1 -0
  67. package/Meshes/Node/Blocks/geometryClampBlock.d.ts +33 -0
  68. package/Meshes/Node/Blocks/geometryClampBlock.js +101 -0
  69. package/Meshes/Node/Blocks/geometryClampBlock.js.map +1 -0
  70. package/Meshes/Node/Blocks/geometryCrossBlock.d.ts +30 -0
  71. package/Meshes/Node/Blocks/geometryCrossBlock.js +76 -0
  72. package/Meshes/Node/Blocks/geometryCrossBlock.js.map +1 -0
  73. package/Meshes/Node/Blocks/geometryLerpBlock.d.ts +34 -0
  74. package/Meshes/Node/Blocks/geometryLerpBlock.js +90 -0
  75. package/Meshes/Node/Blocks/geometryLerpBlock.js.map +1 -0
  76. package/Meshes/Node/Blocks/geometryModBlock.d.ts +30 -0
  77. package/Meshes/Node/Blocks/geometryModBlock.js +82 -0
  78. package/Meshes/Node/Blocks/geometryModBlock.js.map +1 -0
  79. package/Meshes/Node/Blocks/geometryNLerpBlock.d.ts +34 -0
  80. package/Meshes/Node/Blocks/geometryNLerpBlock.js +96 -0
  81. package/Meshes/Node/Blocks/geometryNLerpBlock.js.map +1 -0
  82. package/Meshes/Node/Blocks/geometryPowBlock.d.ts +30 -0
  83. package/Meshes/Node/Blocks/geometryPowBlock.js +82 -0
  84. package/Meshes/Node/Blocks/geometryPowBlock.js.map +1 -0
  85. package/Meshes/Node/Blocks/geometrySmoothStepBlock.d.ts +34 -0
  86. package/Meshes/Node/Blocks/geometrySmoothStepBlock.js +91 -0
  87. package/Meshes/Node/Blocks/geometrySmoothStepBlock.js.map +1 -0
  88. package/Meshes/Node/Blocks/geometryStepBlock.d.ts +30 -0
  89. package/Meshes/Node/Blocks/geometryStepBlock.js +84 -0
  90. package/Meshes/Node/Blocks/geometryStepBlock.js.map +1 -0
  91. package/Meshes/Node/Blocks/geometryTrigonometryBlock.d.ts +19 -15
  92. package/Meshes/Node/Blocks/geometryTrigonometryBlock.js +37 -17
  93. package/Meshes/Node/Blocks/geometryTrigonometryBlock.js.map +1 -1
  94. package/Meshes/Node/index.d.ts +9 -0
  95. package/Meshes/Node/index.js +9 -0
  96. package/Meshes/Node/index.js.map +1 -1
  97. package/Meshes/geometry.js +8 -5
  98. package/Meshes/geometry.js.map +1 -1
  99. package/Meshes/thinInstanceMesh.d.ts +1 -1
  100. package/Meshes/thinInstanceMesh.js +2 -2
  101. package/Meshes/thinInstanceMesh.js.map +1 -1
  102. package/Particles/gpuParticleSystem.d.ts +1 -0
  103. package/Particles/gpuParticleSystem.js +10 -3
  104. package/Particles/gpuParticleSystem.js.map +1 -1
  105. package/Rendering/GaussianSplatting/gaussianSplatting.d.ts +6 -0
  106. package/Rendering/GaussianSplatting/gaussianSplatting.js +124 -39
  107. package/Rendering/GaussianSplatting/gaussianSplatting.js.map +1 -1
  108. package/Rendering/GlobalIllumination/giRSM.d.ts +54 -0
  109. package/Rendering/GlobalIllumination/giRSM.js +54 -0
  110. package/Rendering/GlobalIllumination/giRSM.js.map +1 -0
  111. package/Rendering/GlobalIllumination/giRSMManager.d.ts +256 -0
  112. package/Rendering/GlobalIllumination/giRSMManager.js +715 -0
  113. package/Rendering/GlobalIllumination/giRSMManager.js.map +1 -0
  114. package/Rendering/GlobalIllumination/index.d.ts +2 -0
  115. package/Rendering/GlobalIllumination/index.js +3 -0
  116. package/Rendering/GlobalIllumination/index.js.map +1 -0
  117. package/Rendering/fluidRenderer/fluidRenderer.js +20 -1
  118. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  119. package/Rendering/index.d.ts +2 -0
  120. package/Rendering/index.js +2 -0
  121. package/Rendering/index.js.map +1 -1
  122. package/Rendering/prePassRendererSceneComponent.js +1 -4
  123. package/Rendering/prePassRendererSceneComponent.js.map +1 -1
  124. package/Rendering/reflectiveShadowMap.d.ts +152 -0
  125. package/Rendering/reflectiveShadowMap.js +389 -0
  126. package/Rendering/reflectiveShadowMap.js.map +1 -0
  127. package/Shaders/bilateralBlur.fragment.d.ts +5 -0
  128. package/Shaders/bilateralBlur.fragment.js +20 -0
  129. package/Shaders/bilateralBlur.fragment.js.map +1 -0
  130. package/Shaders/bilateralBlurQuality.fragment.d.ts +5 -0
  131. package/Shaders/bilateralBlurQuality.fragment.js +20 -0
  132. package/Shaders/bilateralBlurQuality.fragment.js.map +1 -0
  133. package/Shaders/rsmFullGlobalIllumination.fragment.d.ts +5 -0
  134. package/Shaders/rsmFullGlobalIllumination.fragment.js +28 -0
  135. package/Shaders/rsmFullGlobalIllumination.fragment.js.map +1 -0
  136. package/Shaders/rsmGlobalIllumination.fragment.d.ts +5 -0
  137. package/Shaders/rsmGlobalIllumination.fragment.js +33 -0
  138. package/Shaders/rsmGlobalIllumination.fragment.js.map +1 -0
  139. package/XR/features/WebXRControllerTeleportation.d.ts +9 -1
  140. package/XR/features/WebXRControllerTeleportation.js +3 -0
  141. package/XR/features/WebXRControllerTeleportation.js.map +1 -1
  142. package/XR/webXRCamera.d.ts +2 -0
  143. package/XR/webXRCamera.js +2 -0
  144. package/XR/webXRCamera.js.map +1 -1
  145. package/package.json +1 -1
  146. package/scene.js +1 -1
  147. package/scene.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometrySmoothStepBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Meshes/Node/Blocks/geometrySmoothStepBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { Vector2, Vector3, Vector4 } from \"core/Maths/math.vector\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes\";\r\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock\";\r\nimport type { NodeGeometryConnectionPoint } from \"../nodeGeometryBlockConnectionPoint\";\r\n/**\r\n * Block used to smooth step a value\r\n */\r\nexport class GeometrySmoothStepBlock extends NodeGeometryBlock {\r\n /**\r\n * Creates a new GeometrySmoothStepBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name);\r\n\r\n this.registerInput(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"edge0\", NodeGeometryBlockConnectionPointTypes.Float);\r\n this.registerInput(\"edge1\", NodeGeometryBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this._outputs[0]._typeConnectionSource = this._inputs[0];\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"GeometrySmoothStepBlock\";\r\n }\r\n\r\n /**\r\n * Gets the value operand input component\r\n */\r\n public get value(): NodeGeometryConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the first edge operand input component\r\n */\r\n public get edge0(): NodeGeometryConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the second edge operand input component\r\n */\r\n public get edge1(): NodeGeometryConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeGeometryConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n protected _buildBlock() {\r\n if (!this.value.isConnected || !this.edge0.isConnected || !this.edge1.isConnected) {\r\n this.output._storedFunction = null;\r\n this.output._storedValue = null;\r\n return;\r\n }\r\n\r\n const func = (value: number, edge0: number, edge1: number) => {\r\n const x = Math.max(0, Math.min((value - edge0) / (edge1 - edge0), 1));\r\n\r\n // Smoothstep formula: 3x^2 - 2x^3\r\n return x * x * (3 - 2 * x);\r\n };\r\n\r\n this.output._storedFunction = (state) => {\r\n const source = this.value.getConnectedValue(state);\r\n const edge0 = this.edge0.getConnectedValue(state);\r\n const edge1 = this.edge1.getConnectedValue(state);\r\n switch (this.value.type) {\r\n case NodeGeometryBlockConnectionPointTypes.Int:\r\n case NodeGeometryBlockConnectionPointTypes.Float: {\r\n return func!(source, edge0, edge1);\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\r\n return new Vector2(func!(source.x, edge0, edge1), func!(source.y, edge0, edge1));\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\r\n return new Vector3(func!(source.x, edge0, edge1), func!(source.y, edge0, edge1), func!(source.z, edge0, edge1));\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\r\n return new Vector4(func!(source.x, edge0, edge1), func!(source.y, edge0, edge1), func!(source.z, edge0, edge1), func!(source.w, edge0, edge1));\r\n }\r\n }\r\n\r\n return 0;\r\n };\r\n\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.GeometrySmoothStepBlock\", GeometrySmoothStepBlock);\r\n"]}
@@ -0,0 +1,30 @@
1
+ import { NodeGeometryBlock } from "../nodeGeometryBlock";
2
+ import type { NodeGeometryConnectionPoint } from "../nodeGeometryBlockConnectionPoint";
3
+ /**
4
+ * Block used to step a value
5
+ */
6
+ export declare class GeometryStepBlock extends NodeGeometryBlock {
7
+ /**
8
+ * Creates a new GeometryStepBlock
9
+ * @param name defines the block name
10
+ */
11
+ constructor(name: string);
12
+ /**
13
+ * Gets the current class name
14
+ * @returns the class name
15
+ */
16
+ getClassName(): string;
17
+ /**
18
+ * Gets the value operand input component
19
+ */
20
+ get value(): NodeGeometryConnectionPoint;
21
+ /**
22
+ * Gets the edge operand input component
23
+ */
24
+ get edge(): NodeGeometryConnectionPoint;
25
+ /**
26
+ * Gets the output component
27
+ */
28
+ get output(): NodeGeometryConnectionPoint;
29
+ protected _buildBlock(): this | undefined;
30
+ }
@@ -0,0 +1,84 @@
1
+ import { Vector2, Vector3, Vector4 } from "../../../Maths/math.vector.js";
2
+ import { RegisterClass } from "../../../Misc/typeStore.js";
3
+ import { NodeGeometryBlockConnectionPointTypes } from "../Enums/nodeGeometryConnectionPointTypes.js";
4
+ import { NodeGeometryBlock } from "../nodeGeometryBlock.js";
5
+ /**
6
+ * Block used to step a value
7
+ */
8
+ export class GeometryStepBlock extends NodeGeometryBlock {
9
+ /**
10
+ * Creates a new GeometryStepBlock
11
+ * @param name defines the block name
12
+ */
13
+ constructor(name) {
14
+ super(name);
15
+ this.registerInput("value", NodeGeometryBlockConnectionPointTypes.AutoDetect);
16
+ this.registerInput("edge", NodeGeometryBlockConnectionPointTypes.Float);
17
+ this.registerOutput("output", NodeGeometryBlockConnectionPointTypes.BasedOnInput);
18
+ this._outputs[0]._typeConnectionSource = this._inputs[0];
19
+ this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);
20
+ this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);
21
+ this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);
22
+ }
23
+ /**
24
+ * Gets the current class name
25
+ * @returns the class name
26
+ */
27
+ getClassName() {
28
+ return "GeometryStepBlock";
29
+ }
30
+ /**
31
+ * Gets the value operand input component
32
+ */
33
+ get value() {
34
+ return this._inputs[0];
35
+ }
36
+ /**
37
+ * Gets the edge operand input component
38
+ */
39
+ get edge() {
40
+ return this._inputs[1];
41
+ }
42
+ /**
43
+ * Gets the output component
44
+ */
45
+ get output() {
46
+ return this._outputs[0];
47
+ }
48
+ _buildBlock() {
49
+ if (!this.value.isConnected || !this.edge.isConnected) {
50
+ this.output._storedFunction = null;
51
+ this.output._storedValue = null;
52
+ return;
53
+ }
54
+ const func = (value, edge) => {
55
+ if (value < edge) {
56
+ return 0;
57
+ }
58
+ return 1;
59
+ };
60
+ this.output._storedFunction = (state) => {
61
+ const source = this.value.getConnectedValue(state);
62
+ const edge = this.edge.getConnectedValue(state);
63
+ switch (this.value.type) {
64
+ case NodeGeometryBlockConnectionPointTypes.Int:
65
+ case NodeGeometryBlockConnectionPointTypes.Float: {
66
+ return func(source, edge);
67
+ }
68
+ case NodeGeometryBlockConnectionPointTypes.Vector2: {
69
+ return new Vector2(func(source.x, edge), func(source.y, edge));
70
+ }
71
+ case NodeGeometryBlockConnectionPointTypes.Vector3: {
72
+ return new Vector3(func(source.x, edge), func(source.y, edge), func(source.z, edge));
73
+ }
74
+ case NodeGeometryBlockConnectionPointTypes.Vector4: {
75
+ return new Vector4(func(source.x, edge), func(source.y, edge), func(source.z, edge), func(source.w, edge));
76
+ }
77
+ }
78
+ return 0;
79
+ };
80
+ return this;
81
+ }
82
+ }
83
+ RegisterClass("BABYLON.GeometryStepBlock", GeometryStepBlock);
84
+ //# sourceMappingURL=geometryStepBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometryStepBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Meshes/Node/Blocks/geometryStepBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { Vector2, Vector3, Vector4 } from \"core/Maths/math.vector\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes\";\r\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock\";\r\nimport type { NodeGeometryConnectionPoint } from \"../nodeGeometryBlockConnectionPoint\";\r\n\r\n/**\r\n * Block used to step a value\r\n */\r\nexport class GeometryStepBlock extends NodeGeometryBlock {\r\n /**\r\n * Creates a new GeometryStepBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name);\r\n\r\n this.registerInput(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"edge\", NodeGeometryBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this._outputs[0]._typeConnectionSource = this._inputs[0];\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"GeometryStepBlock\";\r\n }\r\n\r\n /**\r\n * Gets the value operand input component\r\n */\r\n public get value(): NodeGeometryConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the edge operand input component\r\n */\r\n public get edge(): NodeGeometryConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeGeometryConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n protected _buildBlock() {\r\n if (!this.value.isConnected || !this.edge.isConnected) {\r\n this.output._storedFunction = null;\r\n this.output._storedValue = null;\r\n return;\r\n }\r\n const func = (value: number, edge: number) => {\r\n if (value < edge) {\r\n return 0;\r\n }\r\n\r\n return 1;\r\n };\r\n\r\n this.output._storedFunction = (state) => {\r\n const source = this.value.getConnectedValue(state);\r\n const edge = this.edge.getConnectedValue(state);\r\n switch (this.value.type) {\r\n case NodeGeometryBlockConnectionPointTypes.Int:\r\n case NodeGeometryBlockConnectionPointTypes.Float: {\r\n return func!(source, edge);\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\r\n return new Vector2(func!(source.x, edge), func!(source.y, edge));\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\r\n return new Vector3(func!(source.x, edge), func!(source.y, edge), func!(source.z, edge));\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\r\n return new Vector4(func!(source.x, edge), func!(source.y, edge), func!(source.z, edge), func!(source.w, edge));\r\n }\r\n }\r\n\r\n return 0;\r\n };\r\n\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.GeometryStepBlock\", GeometryStepBlock);\r\n"]}
@@ -13,36 +13,40 @@ export declare enum GeometryTrigonometryBlockOperations {
13
13
  Abs = 2,
14
14
  /** Exp */
15
15
  Exp = 3,
16
+ /** Exp2 */
17
+ Exp2 = 4,
16
18
  /** Round */
17
- Round = 4,
19
+ Round = 5,
18
20
  /** Floor */
19
- Floor = 5,
21
+ Floor = 6,
20
22
  /** Ceiling */
21
- Ceiling = 6,
23
+ Ceiling = 7,
22
24
  /** Square root */
23
- Sqrt = 7,
25
+ Sqrt = 8,
24
26
  /** Log */
25
- Log = 8,
27
+ Log = 9,
26
28
  /** Tangent */
27
- Tan = 9,
29
+ Tan = 10,
28
30
  /** Arc tangent */
29
- ArcTan = 10,
31
+ ArcTan = 11,
30
32
  /** Arc cosinus */
31
- ArcCos = 11,
33
+ ArcCos = 12,
32
34
  /** Arc sinus */
33
- ArcSin = 12,
35
+ ArcSin = 13,
34
36
  /** Sign */
35
- Sign = 13,
37
+ Sign = 14,
36
38
  /** Negate */
37
- Negate = 14,
39
+ Negate = 15,
38
40
  /** OneMinus */
39
- OneMinus = 15,
41
+ OneMinus = 16,
40
42
  /** Reciprocal */
41
- Reciprocal = 16,
43
+ Reciprocal = 17,
42
44
  /** ToDegrees */
43
- ToDegrees = 17,
45
+ ToDegrees = 18,
44
46
  /** ToRadians */
45
- ToRadians = 18
47
+ ToRadians = 19,
48
+ /** Fract */
49
+ Fract = 20
46
50
  }
47
51
  /**
48
52
  * Block used to apply trigonometry operation to floats
@@ -17,36 +17,40 @@ export var GeometryTrigonometryBlockOperations;
17
17
  GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Abs"] = 2] = "Abs";
18
18
  /** Exp */
19
19
  GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Exp"] = 3] = "Exp";
20
+ /** Exp2 */
21
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Exp2"] = 4] = "Exp2";
20
22
  /** Round */
21
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Round"] = 4] = "Round";
23
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Round"] = 5] = "Round";
22
24
  /** Floor */
23
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Floor"] = 5] = "Floor";
25
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Floor"] = 6] = "Floor";
24
26
  /** Ceiling */
25
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Ceiling"] = 6] = "Ceiling";
27
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Ceiling"] = 7] = "Ceiling";
26
28
  /** Square root */
27
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Sqrt"] = 7] = "Sqrt";
29
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Sqrt"] = 8] = "Sqrt";
28
30
  /** Log */
29
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Log"] = 8] = "Log";
31
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Log"] = 9] = "Log";
30
32
  /** Tangent */
31
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Tan"] = 9] = "Tan";
33
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Tan"] = 10] = "Tan";
32
34
  /** Arc tangent */
33
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["ArcTan"] = 10] = "ArcTan";
35
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["ArcTan"] = 11] = "ArcTan";
34
36
  /** Arc cosinus */
35
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["ArcCos"] = 11] = "ArcCos";
37
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["ArcCos"] = 12] = "ArcCos";
36
38
  /** Arc sinus */
37
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["ArcSin"] = 12] = "ArcSin";
39
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["ArcSin"] = 13] = "ArcSin";
38
40
  /** Sign */
39
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Sign"] = 13] = "Sign";
41
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Sign"] = 14] = "Sign";
40
42
  /** Negate */
41
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Negate"] = 14] = "Negate";
43
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Negate"] = 15] = "Negate";
42
44
  /** OneMinus */
43
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["OneMinus"] = 15] = "OneMinus";
45
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["OneMinus"] = 16] = "OneMinus";
44
46
  /** Reciprocal */
45
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Reciprocal"] = 16] = "Reciprocal";
47
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Reciprocal"] = 17] = "Reciprocal";
46
48
  /** ToDegrees */
47
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["ToDegrees"] = 17] = "ToDegrees";
49
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["ToDegrees"] = 18] = "ToDegrees";
48
50
  /** ToRadians */
49
- GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["ToRadians"] = 18] = "ToRadians";
51
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["ToRadians"] = 19] = "ToRadians";
52
+ /** Fract */
53
+ GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations["Fract"] = 20] = "Fract";
50
54
  })(GeometryTrigonometryBlockOperations || (GeometryTrigonometryBlockOperations = {}));
51
55
  /**
52
56
  * Block used to apply trigonometry operation to floats
@@ -108,6 +112,10 @@ export class GeometryTrigonometryBlock extends NodeGeometryBlock {
108
112
  func = (value) => Math.exp(value);
109
113
  break;
110
114
  }
115
+ case GeometryTrigonometryBlockOperations.Exp2: {
116
+ func = (value) => Math.pow(2, value);
117
+ break;
118
+ }
111
119
  case GeometryTrigonometryBlockOperations.Round: {
112
120
  func = (value) => Math.round(value);
113
121
  break;
@@ -168,10 +176,21 @@ export class GeometryTrigonometryBlock extends NodeGeometryBlock {
168
176
  func = (value) => (value * 180) / Math.PI;
169
177
  break;
170
178
  }
179
+ case GeometryTrigonometryBlockOperations.Fract: {
180
+ func = (value) => {
181
+ if (value >= 0) {
182
+ return value - Math.floor(value);
183
+ }
184
+ else {
185
+ return value - Math.ceil(value);
186
+ }
187
+ };
188
+ break;
189
+ }
171
190
  }
172
191
  if (!func) {
173
- this.input._storedFunction = null;
174
- this.input._storedValue = null;
192
+ this.output._storedFunction = null;
193
+ this.output._storedValue = null;
175
194
  return;
176
195
  }
177
196
  switch (this.input.type) {
@@ -230,6 +249,7 @@ __decorate([
230
249
  { label: "Sin", value: GeometryTrigonometryBlockOperations.Sin },
231
250
  { label: "Abs", value: GeometryTrigonometryBlockOperations.Abs },
232
251
  { label: "Exp", value: GeometryTrigonometryBlockOperations.Exp },
252
+ { label: "Exp2", value: GeometryTrigonometryBlockOperations.Exp2 },
233
253
  { label: "Round", value: GeometryTrigonometryBlockOperations.Round },
234
254
  { label: "Floor", value: GeometryTrigonometryBlockOperations.Floor },
235
255
  { label: "Ceiling", value: GeometryTrigonometryBlockOperations.Ceiling },
@@ -1 +1 @@
1
- {"version":3,"file":"geometryTrigonometryBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Meshes/Node/Blocks/geometryTrigonometryBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../../types\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes\";\r\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock\";\r\nimport type { NodeGeometryConnectionPoint } from \"../nodeGeometryBlockConnectionPoint\";\r\nimport type { NodeGeometryBuildState } from \"../nodeGeometryBuildState\";\r\nimport { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector\";\r\nimport { PropertyTypeForEdition, editableInPropertyPage } from \"../../../Decorators/nodeDecorator\";\r\n\r\n/**\r\n * Operations supported by the Trigonometry block\r\n */\r\nexport enum GeometryTrigonometryBlockOperations {\r\n /** Cos */\r\n Cos,\r\n /** Sin */\r\n Sin,\r\n /** Abs */\r\n Abs,\r\n /** Exp */\r\n Exp,\r\n /** Round */\r\n Round,\r\n /** Floor */\r\n Floor,\r\n /** Ceiling */\r\n Ceiling,\r\n /** Square root */\r\n Sqrt,\r\n /** Log */\r\n Log,\r\n /** Tangent */\r\n Tan,\r\n /** Arc tangent */\r\n ArcTan,\r\n /** Arc cosinus */\r\n ArcCos,\r\n /** Arc sinus */\r\n ArcSin,\r\n /** Sign */\r\n Sign,\r\n /** Negate */\r\n Negate,\r\n /** OneMinus */\r\n OneMinus,\r\n /** Reciprocal */\r\n Reciprocal,\r\n /** ToDegrees */\r\n ToDegrees,\r\n /** ToRadians */\r\n ToRadians,\r\n}\r\n\r\n/**\r\n * Block used to apply trigonometry operation to floats\r\n */\r\nexport class GeometryTrigonometryBlock extends NodeGeometryBlock {\r\n /**\r\n * Gets or sets the operation applied by the block\r\n */\r\n @editableInPropertyPage(\"Operation\", PropertyTypeForEdition.List, \"ADVANCED\", {\r\n notifiers: { rebuild: true },\r\n options: [\r\n { label: \"Cos\", value: GeometryTrigonometryBlockOperations.Cos },\r\n { label: \"Sin\", value: GeometryTrigonometryBlockOperations.Sin },\r\n { label: \"Abs\", value: GeometryTrigonometryBlockOperations.Abs },\r\n { label: \"Exp\", value: GeometryTrigonometryBlockOperations.Exp },\r\n { label: \"Round\", value: GeometryTrigonometryBlockOperations.Round },\r\n { label: \"Floor\", value: GeometryTrigonometryBlockOperations.Floor },\r\n { label: \"Ceiling\", value: GeometryTrigonometryBlockOperations.Ceiling },\r\n { label: \"Sqrt\", value: GeometryTrigonometryBlockOperations.Sqrt },\r\n { label: \"Log\", value: GeometryTrigonometryBlockOperations.Log },\r\n { label: \"Tan\", value: GeometryTrigonometryBlockOperations.Tan },\r\n { label: \"ArcTan\", value: GeometryTrigonometryBlockOperations.ArcTan },\r\n { label: \"ArcCos\", value: GeometryTrigonometryBlockOperations.ArcCos },\r\n { label: \"ArcSin\", value: GeometryTrigonometryBlockOperations.ArcSin },\r\n { label: \"Sign\", value: GeometryTrigonometryBlockOperations.Sign },\r\n { label: \"Negate\", value: GeometryTrigonometryBlockOperations.Negate },\r\n { label: \"OneMinus\", value: GeometryTrigonometryBlockOperations.OneMinus },\r\n { label: \"Reciprocal\", value: GeometryTrigonometryBlockOperations.Reciprocal },\r\n { label: \"ToDegrees\", value: GeometryTrigonometryBlockOperations.ToDegrees },\r\n { label: \"ToRadians\", value: GeometryTrigonometryBlockOperations.ToRadians },\r\n ],\r\n })\r\n public operation = GeometryTrigonometryBlockOperations.Cos;\r\n\r\n /**\r\n * Creates a new GeometryTrigonometryBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name);\r\n\r\n this.registerInput(\"input\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\r\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this._outputs[0]._typeConnectionSource = this._inputs[0];\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"GeometryTrigonometryBlock\";\r\n }\r\n\r\n /**\r\n * Gets the input component\r\n */\r\n public get input(): NodeGeometryConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeGeometryConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n protected _buildBlock(state: NodeGeometryBuildState) {\r\n super._buildBlock(state);\r\n let func: Nullable<(value: number) => number> = null;\r\n\r\n switch (this.operation) {\r\n case GeometryTrigonometryBlockOperations.Cos: {\r\n func = (value: number) => Math.cos(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Sin: {\r\n func = (value: number) => Math.sin(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Abs: {\r\n func = (value: number) => Math.abs(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Exp: {\r\n func = (value: number) => Math.exp(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Round: {\r\n func = (value: number) => Math.round(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Floor: {\r\n func = (value: number) => Math.floor(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Ceiling: {\r\n func = (value: number) => Math.ceil(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Sqrt: {\r\n func = (value: number) => Math.sqrt(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Log: {\r\n func = (value: number) => Math.log(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Tan: {\r\n func = (value: number) => Math.tan(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.ArcTan: {\r\n func = (value: number) => Math.atan(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.ArcCos: {\r\n func = (value: number) => Math.acos(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.ArcSin: {\r\n func = (value: number) => Math.asin(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Sign: {\r\n func = (value: number) => Math.sign(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Negate: {\r\n func = (value: number) => -value;\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.OneMinus: {\r\n func = (value: number) => 1 - value;\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Reciprocal: {\r\n func = (value: number) => 1 / value;\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.ToRadians: {\r\n func = (value: number) => (value * Math.PI) / 180;\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.ToDegrees: {\r\n func = (value: number) => (value * 180) / Math.PI;\r\n break;\r\n }\r\n }\r\n if (!func) {\r\n this.input._storedFunction = null;\r\n this.input._storedValue = null;\r\n return;\r\n }\r\n\r\n switch (this.input.type) {\r\n case NodeGeometryBlockConnectionPointTypes.Int:\r\n case NodeGeometryBlockConnectionPointTypes.Float: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return func!(source);\r\n };\r\n break;\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return new Vector2(func!(source.x), func!(source.y));\r\n };\r\n break;\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return new Vector3(func!(source.x), func!(source.y), func!(source.z));\r\n };\r\n break;\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return new Vector4(func!(source.x), func!(source.y), func!(source.z), func!(source.w));\r\n };\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n public serialize(): any {\r\n const serializationObject = super.serialize();\r\n\r\n serializationObject.operation = this.operation;\r\n\r\n return serializationObject;\r\n }\r\n\r\n public _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n\r\n this.operation = serializationObject.operation;\r\n }\r\n\r\n protected _dumpPropertiesCode() {\r\n const codeString =\r\n super._dumpPropertiesCode() +\r\n `${this._codeVariableName}.operation = BABYLON.GeometryTrigonometryBlockOperations.${GeometryTrigonometryBlockOperations[this.operation]};\\n`;\r\n return codeString;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.GeometryTrigonometryBlock\", GeometryTrigonometryBlock);\r\n"]}
1
+ {"version":3,"file":"geometryTrigonometryBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Meshes/Node/Blocks/geometryTrigonometryBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../../types\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes\";\r\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock\";\r\nimport type { NodeGeometryConnectionPoint } from \"../nodeGeometryBlockConnectionPoint\";\r\nimport type { NodeGeometryBuildState } from \"../nodeGeometryBuildState\";\r\nimport { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector\";\r\nimport { PropertyTypeForEdition, editableInPropertyPage } from \"../../../Decorators/nodeDecorator\";\r\n\r\n/**\r\n * Operations supported by the Trigonometry block\r\n */\r\nexport enum GeometryTrigonometryBlockOperations {\r\n /** Cos */\r\n Cos,\r\n /** Sin */\r\n Sin,\r\n /** Abs */\r\n Abs,\r\n /** Exp */\r\n Exp,\r\n /** Exp2 */\r\n Exp2,\r\n /** Round */\r\n Round,\r\n /** Floor */\r\n Floor,\r\n /** Ceiling */\r\n Ceiling,\r\n /** Square root */\r\n Sqrt,\r\n /** Log */\r\n Log,\r\n /** Tangent */\r\n Tan,\r\n /** Arc tangent */\r\n ArcTan,\r\n /** Arc cosinus */\r\n ArcCos,\r\n /** Arc sinus */\r\n ArcSin,\r\n /** Sign */\r\n Sign,\r\n /** Negate */\r\n Negate,\r\n /** OneMinus */\r\n OneMinus,\r\n /** Reciprocal */\r\n Reciprocal,\r\n /** ToDegrees */\r\n ToDegrees,\r\n /** ToRadians */\r\n ToRadians,\r\n /** Fract */\r\n Fract,\r\n}\r\n\r\n/**\r\n * Block used to apply trigonometry operation to floats\r\n */\r\nexport class GeometryTrigonometryBlock extends NodeGeometryBlock {\r\n /**\r\n * Gets or sets the operation applied by the block\r\n */\r\n @editableInPropertyPage(\"Operation\", PropertyTypeForEdition.List, \"ADVANCED\", {\r\n notifiers: { rebuild: true },\r\n options: [\r\n { label: \"Cos\", value: GeometryTrigonometryBlockOperations.Cos },\r\n { label: \"Sin\", value: GeometryTrigonometryBlockOperations.Sin },\r\n { label: \"Abs\", value: GeometryTrigonometryBlockOperations.Abs },\r\n { label: \"Exp\", value: GeometryTrigonometryBlockOperations.Exp },\r\n { label: \"Exp2\", value: GeometryTrigonometryBlockOperations.Exp2 },\r\n { label: \"Round\", value: GeometryTrigonometryBlockOperations.Round },\r\n { label: \"Floor\", value: GeometryTrigonometryBlockOperations.Floor },\r\n { label: \"Ceiling\", value: GeometryTrigonometryBlockOperations.Ceiling },\r\n { label: \"Sqrt\", value: GeometryTrigonometryBlockOperations.Sqrt },\r\n { label: \"Log\", value: GeometryTrigonometryBlockOperations.Log },\r\n { label: \"Tan\", value: GeometryTrigonometryBlockOperations.Tan },\r\n { label: \"ArcTan\", value: GeometryTrigonometryBlockOperations.ArcTan },\r\n { label: \"ArcCos\", value: GeometryTrigonometryBlockOperations.ArcCos },\r\n { label: \"ArcSin\", value: GeometryTrigonometryBlockOperations.ArcSin },\r\n { label: \"Sign\", value: GeometryTrigonometryBlockOperations.Sign },\r\n { label: \"Negate\", value: GeometryTrigonometryBlockOperations.Negate },\r\n { label: \"OneMinus\", value: GeometryTrigonometryBlockOperations.OneMinus },\r\n { label: \"Reciprocal\", value: GeometryTrigonometryBlockOperations.Reciprocal },\r\n { label: \"ToDegrees\", value: GeometryTrigonometryBlockOperations.ToDegrees },\r\n { label: \"ToRadians\", value: GeometryTrigonometryBlockOperations.ToRadians },\r\n ],\r\n })\r\n public operation = GeometryTrigonometryBlockOperations.Cos;\r\n\r\n /**\r\n * Creates a new GeometryTrigonometryBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name);\r\n\r\n this.registerInput(\"input\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\r\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this._outputs[0]._typeConnectionSource = this._inputs[0];\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"GeometryTrigonometryBlock\";\r\n }\r\n\r\n /**\r\n * Gets the input component\r\n */\r\n public get input(): NodeGeometryConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeGeometryConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n protected _buildBlock(state: NodeGeometryBuildState) {\r\n super._buildBlock(state);\r\n let func: Nullable<(value: number) => number> = null;\r\n\r\n switch (this.operation) {\r\n case GeometryTrigonometryBlockOperations.Cos: {\r\n func = (value: number) => Math.cos(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Sin: {\r\n func = (value: number) => Math.sin(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Abs: {\r\n func = (value: number) => Math.abs(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Exp: {\r\n func = (value: number) => Math.exp(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Exp2: {\r\n func = (value: number) => Math.pow(2, value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Round: {\r\n func = (value: number) => Math.round(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Floor: {\r\n func = (value: number) => Math.floor(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Ceiling: {\r\n func = (value: number) => Math.ceil(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Sqrt: {\r\n func = (value: number) => Math.sqrt(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Log: {\r\n func = (value: number) => Math.log(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Tan: {\r\n func = (value: number) => Math.tan(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.ArcTan: {\r\n func = (value: number) => Math.atan(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.ArcCos: {\r\n func = (value: number) => Math.acos(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.ArcSin: {\r\n func = (value: number) => Math.asin(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Sign: {\r\n func = (value: number) => Math.sign(value);\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Negate: {\r\n func = (value: number) => -value;\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.OneMinus: {\r\n func = (value: number) => 1 - value;\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Reciprocal: {\r\n func = (value: number) => 1 / value;\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.ToRadians: {\r\n func = (value: number) => (value * Math.PI) / 180;\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.ToDegrees: {\r\n func = (value: number) => (value * 180) / Math.PI;\r\n break;\r\n }\r\n case GeometryTrigonometryBlockOperations.Fract: {\r\n func = (value: number) => {\r\n if (value >= 0) {\r\n return value - Math.floor(value);\r\n } else {\r\n return value - Math.ceil(value);\r\n }\r\n };\r\n break;\r\n }\r\n }\r\n if (!func) {\r\n this.output._storedFunction = null;\r\n this.output._storedValue = null;\r\n return;\r\n }\r\n\r\n switch (this.input.type) {\r\n case NodeGeometryBlockConnectionPointTypes.Int:\r\n case NodeGeometryBlockConnectionPointTypes.Float: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return func!(source);\r\n };\r\n break;\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return new Vector2(func!(source.x), func!(source.y));\r\n };\r\n break;\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return new Vector3(func!(source.x), func!(source.y), func!(source.z));\r\n };\r\n break;\r\n }\r\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return new Vector4(func!(source.x), func!(source.y), func!(source.z), func!(source.w));\r\n };\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n public serialize(): any {\r\n const serializationObject = super.serialize();\r\n\r\n serializationObject.operation = this.operation;\r\n\r\n return serializationObject;\r\n }\r\n\r\n public _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n\r\n this.operation = serializationObject.operation;\r\n }\r\n\r\n protected _dumpPropertiesCode() {\r\n const codeString =\r\n super._dumpPropertiesCode() +\r\n `${this._codeVariableName}.operation = BABYLON.GeometryTrigonometryBlockOperations.${GeometryTrigonometryBlockOperations[this.operation]};\\n`;\r\n return codeString;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.GeometryTrigonometryBlock\", GeometryTrigonometryBlock);\r\n"]}
@@ -61,3 +61,12 @@ export * from "./Blocks/Textures/geometryTextureBlock";
61
61
  export * from "./Blocks/Textures/geometryTextureFetchBlock";
62
62
  export * from "./Blocks/boundingBlock";
63
63
  export * from "./Blocks/booleanGeometryBlock";
64
+ export * from "./Blocks/geometryArcTan2Block";
65
+ export * from "./Blocks/geometryLerpBlock";
66
+ export * from "./Blocks/geometryNLerpBlock";
67
+ export * from "./Blocks/geometryStepBlock";
68
+ export * from "./Blocks/geometrySmoothStepBlock";
69
+ export * from "./Blocks/geometryModBlock";
70
+ export * from "./Blocks/geometryPowBlock";
71
+ export * from "./Blocks/geometryClampBlock";
72
+ export * from "./Blocks/geometryCrossBlock";
@@ -61,4 +61,13 @@ export * from "./Blocks/Textures/geometryTextureBlock.js";
61
61
  export * from "./Blocks/Textures/geometryTextureFetchBlock.js";
62
62
  export * from "./Blocks/boundingBlock.js";
63
63
  export * from "./Blocks/booleanGeometryBlock.js";
64
+ export * from "./Blocks/geometryArcTan2Block.js";
65
+ export * from "./Blocks/geometryLerpBlock.js";
66
+ export * from "./Blocks/geometryNLerpBlock.js";
67
+ export * from "./Blocks/geometryStepBlock.js";
68
+ export * from "./Blocks/geometrySmoothStepBlock.js";
69
+ export * from "./Blocks/geometryModBlock.js";
70
+ export * from "./Blocks/geometryPowBlock.js";
71
+ export * from "./Blocks/geometryClampBlock.js";
72
+ export * from "./Blocks/geometryCrossBlock.js";
64
73
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../dev/core/src/Meshes/Node/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC","sourcesContent":["export * from \"./nodeGeometry\";\r\nexport * from \"./nodeGeometryBlock\";\r\nexport * from \"./nodeGeometryBlockConnectionPoint\";\r\nexport * from \"./nodeGeometryBuildState\";\r\nexport * from \"./Interfaces/nodeGeometryExecutionContext\";\r\nexport * from \"./Enums/nodeGeometryConnectionPointTypes\";\r\nexport * from \"./Enums/nodeGeometryContextualSources\";\r\nexport * from \"./Blocks/geometryOptimizeBlock\";\r\nexport * from \"./Blocks/geometryOutputBlock\";\r\nexport * from \"./Blocks/geometryInputBlock\";\r\nexport * from \"./Blocks/Sources/planeBlock\";\r\nexport * from \"./Blocks/Sources/boxBlock\";\r\nexport * from \"./Blocks/Sources/meshBlock\";\r\nexport * from \"./Blocks/Sources/icoSphereBlock\";\r\nexport * from \"./Blocks/Sources/sphereBlock\";\r\nexport * from \"./Blocks/Sources/gridBlock\";\r\nexport * from \"./Blocks/Sources/torusBlock\";\r\nexport * from \"./Blocks/Sources/cylinderBlock\";\r\nexport * from \"./Blocks/Sources/capsuleBlock\";\r\nexport * from \"./Blocks/Sources/discBlock\";\r\nexport * from \"./Blocks/Sources/nullBlock\";\r\nexport * from \"./Blocks/Set/setPositionsBlock\";\r\nexport * from \"./Blocks/Set/setNormalsBlock\";\r\nexport * from \"./Blocks/Set/setUVsBlock\";\r\nexport * from \"./Blocks/Set/setColorsBlock\";\r\nexport * from \"./Blocks/Set/setTangentsBlock\";\r\nexport * from \"./Blocks/mathBlock\";\r\nexport * from \"./Blocks/mapRangeBlock\";\r\nexport * from \"./Blocks/conditionBlock\";\r\nexport * from \"./Blocks/randomBlock\";\r\nexport * from \"./Blocks/noiseBlock\";\r\nexport * from \"./Blocks/mergeGeometryBlock\";\r\nexport * from \"./Blocks/geometryCollectionBlock\";\r\nexport * from \"./Blocks/geometryElbowBlock\";\r\nexport * from \"./Blocks/computeNormalsBlock\";\r\nexport * from \"./Blocks/vectorConverterBlock\";\r\nexport * from \"./Blocks/normalizeVectorBlock\";\r\nexport * from \"./Blocks/Set/setMaterialIDBlock\";\r\nexport * from \"./Blocks/geometryTrigonometryBlock\";\r\nexport * from \"./Blocks/geometryTransformBlock\";\r\nexport * from \"./Blocks/Matrices/rotationXBlock\";\r\nexport * from \"./Blocks/Matrices/rotationYBlock\";\r\nexport * from \"./Blocks/Matrices/rotationZBlock\";\r\nexport * from \"./Blocks/Matrices/scalingBlock\";\r\nexport * from \"./Blocks/Matrices/alignBlock\";\r\nexport * from \"./Blocks/Matrices/translationBlock\";\r\nexport * from \"./Blocks/Instances/instantiateOnVerticesBlock\";\r\nexport * from \"./Blocks/Instances/instantiateOnFacesBlock\";\r\nexport * from \"./Blocks/Instances/instantiateOnVolumeBlock\";\r\nexport * from \"./Blocks/Instances/instantiateBlock\";\r\nexport * from \"./Blocks/Instances/instantiateLinearBlock\";\r\nexport * from \"./Blocks/Instances/instantiateRadialBlock\";\r\nexport * from \"./Blocks/intFloatConverterBlock\";\r\nexport * from \"./Blocks/debugBlock\";\r\nexport * from \"./Blocks/geometryInfoBlock\";\r\nexport * from \"./Blocks/mappingBlock\";\r\nexport * from \"./Blocks/matrixComposeBlock\";\r\nexport * from \"./Blocks/Teleport/teleportInBlock\";\r\nexport * from \"./Blocks/Teleport/teleportOutBlock\";\r\nexport * from \"./Blocks/Textures/geometryTextureBlock\";\r\nexport * from \"./Blocks/Textures/geometryTextureFetchBlock\";\r\nexport * from \"./Blocks/boundingBlock\";\r\nexport * from \"./Blocks/booleanGeometryBlock\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../dev/core/src/Meshes/Node/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC","sourcesContent":["export * from \"./nodeGeometry\";\r\nexport * from \"./nodeGeometryBlock\";\r\nexport * from \"./nodeGeometryBlockConnectionPoint\";\r\nexport * from \"./nodeGeometryBuildState\";\r\nexport * from \"./Interfaces/nodeGeometryExecutionContext\";\r\nexport * from \"./Enums/nodeGeometryConnectionPointTypes\";\r\nexport * from \"./Enums/nodeGeometryContextualSources\";\r\nexport * from \"./Blocks/geometryOptimizeBlock\";\r\nexport * from \"./Blocks/geometryOutputBlock\";\r\nexport * from \"./Blocks/geometryInputBlock\";\r\nexport * from \"./Blocks/Sources/planeBlock\";\r\nexport * from \"./Blocks/Sources/boxBlock\";\r\nexport * from \"./Blocks/Sources/meshBlock\";\r\nexport * from \"./Blocks/Sources/icoSphereBlock\";\r\nexport * from \"./Blocks/Sources/sphereBlock\";\r\nexport * from \"./Blocks/Sources/gridBlock\";\r\nexport * from \"./Blocks/Sources/torusBlock\";\r\nexport * from \"./Blocks/Sources/cylinderBlock\";\r\nexport * from \"./Blocks/Sources/capsuleBlock\";\r\nexport * from \"./Blocks/Sources/discBlock\";\r\nexport * from \"./Blocks/Sources/nullBlock\";\r\nexport * from \"./Blocks/Set/setPositionsBlock\";\r\nexport * from \"./Blocks/Set/setNormalsBlock\";\r\nexport * from \"./Blocks/Set/setUVsBlock\";\r\nexport * from \"./Blocks/Set/setColorsBlock\";\r\nexport * from \"./Blocks/Set/setTangentsBlock\";\r\nexport * from \"./Blocks/mathBlock\";\r\nexport * from \"./Blocks/mapRangeBlock\";\r\nexport * from \"./Blocks/conditionBlock\";\r\nexport * from \"./Blocks/randomBlock\";\r\nexport * from \"./Blocks/noiseBlock\";\r\nexport * from \"./Blocks/mergeGeometryBlock\";\r\nexport * from \"./Blocks/geometryCollectionBlock\";\r\nexport * from \"./Blocks/geometryElbowBlock\";\r\nexport * from \"./Blocks/computeNormalsBlock\";\r\nexport * from \"./Blocks/vectorConverterBlock\";\r\nexport * from \"./Blocks/normalizeVectorBlock\";\r\nexport * from \"./Blocks/Set/setMaterialIDBlock\";\r\nexport * from \"./Blocks/geometryTrigonometryBlock\";\r\nexport * from \"./Blocks/geometryTransformBlock\";\r\nexport * from \"./Blocks/Matrices/rotationXBlock\";\r\nexport * from \"./Blocks/Matrices/rotationYBlock\";\r\nexport * from \"./Blocks/Matrices/rotationZBlock\";\r\nexport * from \"./Blocks/Matrices/scalingBlock\";\r\nexport * from \"./Blocks/Matrices/alignBlock\";\r\nexport * from \"./Blocks/Matrices/translationBlock\";\r\nexport * from \"./Blocks/Instances/instantiateOnVerticesBlock\";\r\nexport * from \"./Blocks/Instances/instantiateOnFacesBlock\";\r\nexport * from \"./Blocks/Instances/instantiateOnVolumeBlock\";\r\nexport * from \"./Blocks/Instances/instantiateBlock\";\r\nexport * from \"./Blocks/Instances/instantiateLinearBlock\";\r\nexport * from \"./Blocks/Instances/instantiateRadialBlock\";\r\nexport * from \"./Blocks/intFloatConverterBlock\";\r\nexport * from \"./Blocks/debugBlock\";\r\nexport * from \"./Blocks/geometryInfoBlock\";\r\nexport * from \"./Blocks/mappingBlock\";\r\nexport * from \"./Blocks/matrixComposeBlock\";\r\nexport * from \"./Blocks/Teleport/teleportInBlock\";\r\nexport * from \"./Blocks/Teleport/teleportOutBlock\";\r\nexport * from \"./Blocks/Textures/geometryTextureBlock\";\r\nexport * from \"./Blocks/Textures/geometryTextureFetchBlock\";\r\nexport * from \"./Blocks/boundingBlock\";\r\nexport * from \"./Blocks/booleanGeometryBlock\";\r\nexport * from \"./Blocks/geometryArcTan2Block\";\r\nexport * from \"./Blocks/geometryLerpBlock\";\r\nexport * from \"./Blocks/geometryNLerpBlock\";\r\nexport * from \"./Blocks/geometryStepBlock\";\r\nexport * from \"./Blocks/geometrySmoothStepBlock\";\r\nexport * from \"./Blocks/geometryModBlock\";\r\nexport * from \"./Blocks/geometryPowBlock\";\r\nexport * from \"./Blocks/geometryClampBlock\";\r\nexport * from \"./Blocks/geometryCrossBlock\";\r\n"]}
@@ -147,10 +147,13 @@ export class Geometry {
147
147
  this._indexBuffer = this._engine.createIndexBuffer(this._indices, this._updatable, "Geometry_" + this.id + "_IndexBuffer");
148
148
  }
149
149
  // Vertex buffers
150
+ const buffers = new Set();
150
151
  for (const key in this._vertexBuffers) {
151
- const vertexBuffer = this._vertexBuffers[key];
152
- vertexBuffer._rebuild();
152
+ buffers.add(this._vertexBuffers[key].getWrapperBuffer());
153
153
  }
154
+ buffers.forEach((buffer) => {
155
+ buffer._rebuild();
156
+ });
154
157
  }
155
158
  /**
156
159
  * Affects all geometry data in one call
@@ -212,10 +215,10 @@ export class Geometry {
212
215
  const meshes = this._meshes;
213
216
  const numOfMeshes = meshes.length;
214
217
  if (kind === VertexBuffer.PositionKind) {
215
- this._totalVertices = totalVertices !== null && totalVertices !== void 0 ? totalVertices : buffer.totalVertices;
216
- this._updateExtend(buffer.getFloatData());
218
+ this._totalVertices = totalVertices !== null && totalVertices !== void 0 ? totalVertices : buffer._maxVerticesCount;
219
+ this._updateExtend(buffer.getFloatData(this._totalVertices));
217
220
  this._resetPointsArrayCache();
218
- // this._extend can be empty if buffer.getFloatData() returned null
221
+ // this._extend can be empty if buffer.getFloatData(this._totalVertices) returned null
219
222
  const minimum = (this._extend && this._extend.minimum) || new Vector3(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
220
223
  const maximum = (this._extend && this._extend.maximum) || new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
221
224
  for (let index = 0; index < numOfMeshes; index++) {