@babylonjs/core 5.35.0 → 5.36.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 (250) hide show
  1. package/Audio/sound.d.ts +5 -0
  2. package/Audio/sound.js +7 -0
  3. package/Audio/sound.js.map +1 -1
  4. package/Debug/physicsViewer.d.ts +4 -3
  5. package/Debug/physicsViewer.js +2 -2
  6. package/Debug/physicsViewer.js.map +1 -1
  7. package/Engines/Extensions/engine.renderTarget.js +15 -15
  8. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  9. package/Engines/Extensions/engine.renderTargetCube.d.ts +1 -1
  10. package/Engines/Extensions/engine.renderTargetCube.js.map +1 -1
  11. package/Engines/Extensions/engine.views.d.ts +4 -0
  12. package/Engines/Extensions/engine.views.js +61 -42
  13. package/Engines/Extensions/engine.views.js.map +1 -1
  14. package/Engines/Native/nativeHardwareTexture.d.ts +14 -0
  15. package/Engines/Native/nativeHardwareTexture.js +24 -0
  16. package/Engines/Native/nativeHardwareTexture.js.map +1 -0
  17. package/Engines/Native/nativeInterfaces.d.ts +22 -15
  18. package/Engines/Native/nativeInterfaces.js.map +1 -1
  19. package/Engines/Native/nativePipelineContext.d.ts +252 -0
  20. package/Engines/Native/nativePipelineContext.js +502 -0
  21. package/Engines/Native/nativePipelineContext.js.map +1 -0
  22. package/Engines/Native/nativeRenderTargetWrapper.d.ts +16 -0
  23. package/Engines/Native/nativeRenderTargetWrapper.js +33 -0
  24. package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -0
  25. package/Engines/WebGPU/Extensions/engine.renderTarget.js +3 -3
  26. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  27. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js.map +1 -1
  28. package/Engines/engine.d.ts +1 -0
  29. package/Engines/engine.js +24 -18
  30. package/Engines/engine.js.map +1 -1
  31. package/Engines/nativeEngine.d.ts +18 -17
  32. package/Engines/nativeEngine.js +100 -598
  33. package/Engines/nativeEngine.js.map +1 -1
  34. package/Engines/nullEngine.d.ts +1 -1
  35. package/Engines/nullEngine.js.map +1 -1
  36. package/Engines/thinEngine.d.ts +1 -1
  37. package/Engines/thinEngine.js +41 -38
  38. package/Engines/thinEngine.js.map +1 -1
  39. package/Engines/webgpuEngine.js.map +1 -1
  40. package/Gizmos/planeRotationGizmo.js +3 -1
  41. package/Gizmos/planeRotationGizmo.js.map +1 -1
  42. package/Inputs/scene.inputManager.js +4 -4
  43. package/Inputs/scene.inputManager.js.map +1 -1
  44. package/Loading/Plugins/babylonFileLoader.js +3 -3
  45. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  46. package/Materials/Node/Blocks/Dual/textureBlock.js +1 -1
  47. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  48. package/Materials/Node/nodeMaterial.d.ts +19 -1
  49. package/Materials/Node/nodeMaterial.js +30 -0
  50. package/Materials/Node/nodeMaterial.js.map +1 -1
  51. package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +2 -8
  52. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  53. package/Materials/Textures/baseTexture.d.ts +2 -1
  54. package/Materials/Textures/baseTexture.js +3 -2
  55. package/Materials/Textures/baseTexture.js.map +1 -1
  56. package/Materials/Textures/internalTexture.d.ts +2 -0
  57. package/Materials/Textures/internalTexture.js +4 -0
  58. package/Materials/Textures/internalTexture.js.map +1 -1
  59. package/Materials/Textures/mirrorTexture.js +0 -2
  60. package/Materials/Textures/mirrorTexture.js.map +1 -1
  61. package/Materials/Textures/renderTargetTexture.d.ts +53 -3
  62. package/Materials/Textures/renderTargetTexture.js +25 -25
  63. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  64. package/Materials/Textures/texture.d.ts +2 -0
  65. package/Materials/Textures/texture.js +35 -7
  66. package/Materials/Textures/texture.js.map +1 -1
  67. package/Materials/Textures/textureCreationOptions.d.ts +4 -1
  68. package/Materials/Textures/textureCreationOptions.js.map +1 -1
  69. package/Materials/material.js +1 -1
  70. package/Materials/material.js.map +1 -1
  71. package/Meshes/abstractMesh.d.ts +4 -4
  72. package/Meshes/abstractMesh.js +4 -4
  73. package/Meshes/abstractMesh.js.map +1 -1
  74. package/Meshes/mesh.d.ts +2 -2
  75. package/Meshes/mesh.js +1 -1
  76. package/Meshes/mesh.js.map +1 -1
  77. package/Misc/copyTextureToTexture.d.ts +9 -2
  78. package/Misc/copyTextureToTexture.js +23 -1
  79. package/Misc/copyTextureToTexture.js.map +1 -1
  80. package/Particles/IParticleSystem.d.ts +15 -1
  81. package/Particles/IParticleSystem.js.map +1 -1
  82. package/Particles/gpuParticleSystem.d.ts +24 -2
  83. package/Particles/gpuParticleSystem.js +98 -43
  84. package/Particles/gpuParticleSystem.js.map +1 -1
  85. package/Particles/particleSystem.d.ts +6 -1
  86. package/Particles/particleSystem.js +7 -2
  87. package/Particles/particleSystem.js.map +1 -1
  88. package/Physics/IPhysicsEngine.d.ts +8 -108
  89. package/Physics/IPhysicsEngine.js.map +1 -1
  90. package/Physics/Plugins/ammoJSPlugin.d.ts +1 -389
  91. package/Physics/Plugins/ammoJSPlugin.js +2 -1414
  92. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  93. package/Physics/Plugins/cannonJSPlugin.d.ts +1 -75
  94. package/Physics/Plugins/cannonJSPlugin.js +2 -664
  95. package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
  96. package/Physics/Plugins/oimoJSPlugin.d.ts +1 -59
  97. package/Physics/Plugins/oimoJSPlugin.js +2 -432
  98. package/Physics/Plugins/oimoJSPlugin.js.map +1 -1
  99. package/Physics/index.d.ts +3 -6
  100. package/Physics/index.js +3 -6
  101. package/Physics/index.js.map +1 -1
  102. package/Physics/physicsEngine.d.ts +1 -135
  103. package/Physics/physicsEngine.js +2 -221
  104. package/Physics/physicsEngine.js.map +1 -1
  105. package/Physics/physicsEngineComponent.d.ts +7 -42
  106. package/Physics/physicsEngineComponent.js +11 -71
  107. package/Physics/physicsEngineComponent.js.map +1 -1
  108. package/Physics/physicsHelper.d.ts +1 -411
  109. package/Physics/physicsHelper.js +2 -708
  110. package/Physics/physicsHelper.js.map +1 -1
  111. package/Physics/physicsImpostor.d.ts +1 -640
  112. package/Physics/physicsImpostor.js +2 -1004
  113. package/Physics/physicsImpostor.js.map +1 -1
  114. package/Physics/physicsJoint.d.ts +1 -275
  115. package/Physics/physicsJoint.js +2 -222
  116. package/Physics/physicsJoint.js.map +1 -1
  117. package/Physics/v1/IPhysicsEnginePlugin.d.ts +73 -0
  118. package/Physics/v1/IPhysicsEnginePlugin.js +2 -0
  119. package/Physics/v1/IPhysicsEnginePlugin.js.map +1 -0
  120. package/Physics/v1/Plugins/ammoJSPlugin.d.ts +401 -0
  121. package/Physics/v1/Plugins/ammoJSPlugin.js +1431 -0
  122. package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -0
  123. package/Physics/v1/Plugins/cannonJSPlugin.d.ts +87 -0
  124. package/Physics/v1/Plugins/cannonJSPlugin.js +683 -0
  125. package/Physics/v1/Plugins/cannonJSPlugin.js.map +1 -0
  126. package/Physics/{Plugins → v1/Plugins}/index.d.ts +0 -0
  127. package/Physics/{Plugins → v1/Plugins}/index.js +0 -0
  128. package/Physics/v1/Plugins/index.js.map +1 -0
  129. package/Physics/v1/Plugins/oimoJSPlugin.d.ts +71 -0
  130. package/Physics/v1/Plugins/oimoJSPlugin.js +450 -0
  131. package/Physics/v1/Plugins/oimoJSPlugin.js.map +1 -0
  132. package/Physics/v1/index.d.ts +7 -0
  133. package/Physics/v1/index.js +9 -0
  134. package/Physics/v1/index.js.map +1 -0
  135. package/Physics/v1/physicsEngine.d.ts +147 -0
  136. package/Physics/v1/physicsEngine.js +237 -0
  137. package/Physics/v1/physicsEngine.js.map +1 -0
  138. package/Physics/v1/physicsEngineComponent.d.ts +45 -0
  139. package/Physics/v1/physicsEngineComponent.js +70 -0
  140. package/Physics/v1/physicsEngineComponent.js.map +1 -0
  141. package/Physics/v1/physicsHelper.d.ts +411 -0
  142. package/Physics/v1/physicsHelper.js +709 -0
  143. package/Physics/v1/physicsHelper.js.map +1 -0
  144. package/Physics/v1/physicsImpostor.d.ts +636 -0
  145. package/Physics/v1/physicsImpostor.js +1001 -0
  146. package/Physics/v1/physicsImpostor.js.map +1 -0
  147. package/Physics/v1/physicsJoint.d.ts +275 -0
  148. package/Physics/v1/physicsJoint.js +223 -0
  149. package/Physics/v1/physicsJoint.js.map +1 -0
  150. package/Physics/v2/IPhysicsEnginePlugin.d.ts +170 -0
  151. package/Physics/v2/IPhysicsEnginePlugin.js +47 -0
  152. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -0
  153. package/Physics/v2/Plugins/index.d.ts +0 -0
  154. package/Physics/v2/Plugins/index.js +2 -0
  155. package/Physics/v2/Plugins/index.js.map +1 -0
  156. package/Physics/v2/index.d.ts +6 -0
  157. package/Physics/v2/index.js +8 -0
  158. package/Physics/v2/index.js.map +1 -0
  159. package/Physics/v2/physicsAggregate.d.ts +114 -0
  160. package/Physics/v2/physicsAggregate.js +46 -0
  161. package/Physics/v2/physicsAggregate.js.map +1 -0
  162. package/Physics/v2/physicsBody.d.ts +109 -0
  163. package/Physics/v2/physicsBody.js +158 -0
  164. package/Physics/v2/physicsBody.js.map +1 -0
  165. package/Physics/v2/physicsConstraint.d.ts +184 -0
  166. package/Physics/v2/physicsConstraint.js +257 -0
  167. package/Physics/v2/physicsConstraint.js.map +1 -0
  168. package/Physics/v2/physicsEngine.d.ts +103 -0
  169. package/Physics/v2/physicsEngine.js +146 -0
  170. package/Physics/v2/physicsEngine.js.map +1 -0
  171. package/Physics/v2/physicsEngineComponent.d.ts +31 -0
  172. package/Physics/v2/physicsEngineComponent.js +50 -0
  173. package/Physics/v2/physicsEngineComponent.js.map +1 -0
  174. package/Physics/v2/physicsMaterial.d.ts +45 -0
  175. package/Physics/v2/physicsMaterial.js +67 -0
  176. package/Physics/v2/physicsMaterial.js.map +1 -0
  177. package/Physics/v2/physicsShape.d.ts +182 -0
  178. package/Physics/v2/physicsShape.js +229 -0
  179. package/Physics/v2/physicsShape.js.map +1 -0
  180. package/PostProcesses/postProcess.d.ts +3 -1
  181. package/PostProcesses/postProcess.js +4 -1
  182. package/PostProcesses/postProcess.js.map +1 -1
  183. package/Rendering/fluidRenderer/fluidRenderer.d.ts +153 -0
  184. package/Rendering/fluidRenderer/fluidRenderer.js +410 -0
  185. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -0
  186. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.d.ts +13 -0
  187. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js +31 -0
  188. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js.map +1 -0
  189. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +81 -0
  190. package/Rendering/fluidRenderer/fluidRenderingObject.js +180 -0
  191. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -0
  192. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +63 -0
  193. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +130 -0
  194. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -0
  195. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +64 -0
  196. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +104 -0
  197. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -0
  198. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +234 -0
  199. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +690 -0
  200. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -0
  201. package/Rendering/fluidRenderer/fluidRenderingTextures.d.ts +56 -0
  202. package/Rendering/fluidRenderer/fluidRenderingTextures.js +261 -0
  203. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -0
  204. package/Rendering/fluidRenderer/index.d.ts +5 -0
  205. package/Rendering/fluidRenderer/index.js +6 -0
  206. package/Rendering/fluidRenderer/index.js.map +1 -0
  207. package/Rendering/index.d.ts +1 -0
  208. package/Rendering/index.js +2 -0
  209. package/Rendering/index.js.map +1 -1
  210. package/Shaders/copyTextureToTexture.fragment.js +4 -1
  211. package/Shaders/copyTextureToTexture.fragment.js.map +1 -1
  212. package/Shaders/fluidRenderingBilateralBlur.fragment.d.ts +5 -0
  213. package/Shaders/fluidRenderingBilateralBlur.fragment.js +9 -0
  214. package/Shaders/fluidRenderingBilateralBlur.fragment.js.map +1 -0
  215. package/Shaders/fluidRenderingParticleDepth.fragment.d.ts +5 -0
  216. package/Shaders/fluidRenderingParticleDepth.fragment.js +17 -0
  217. package/Shaders/fluidRenderingParticleDepth.fragment.js.map +1 -0
  218. package/Shaders/fluidRenderingParticleDepth.vertex.d.ts +5 -0
  219. package/Shaders/fluidRenderingParticleDepth.vertex.js +13 -0
  220. package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -0
  221. package/Shaders/fluidRenderingParticleDiffuse.fragment.d.ts +5 -0
  222. package/Shaders/fluidRenderingParticleDiffuse.fragment.js +9 -0
  223. package/Shaders/fluidRenderingParticleDiffuse.fragment.js.map +1 -0
  224. package/Shaders/fluidRenderingParticleDiffuse.vertex.d.ts +5 -0
  225. package/Shaders/fluidRenderingParticleDiffuse.vertex.js +4 -0
  226. package/Shaders/fluidRenderingParticleDiffuse.vertex.js.map +1 -0
  227. package/Shaders/fluidRenderingParticleThickness.fragment.d.ts +5 -0
  228. package/Shaders/fluidRenderingParticleThickness.fragment.js +9 -0
  229. package/Shaders/fluidRenderingParticleThickness.fragment.js.map +1 -0
  230. package/Shaders/fluidRenderingParticleThickness.vertex.d.ts +5 -0
  231. package/Shaders/fluidRenderingParticleThickness.vertex.js +9 -0
  232. package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -0
  233. package/Shaders/fluidRenderingRender.fragment.d.ts +5 -0
  234. package/Shaders/fluidRenderingRender.fragment.js +46 -0
  235. package/Shaders/fluidRenderingRender.fragment.js.map +1 -0
  236. package/Shaders/fluidRenderingStandardBlur.fragment.d.ts +5 -0
  237. package/Shaders/fluidRenderingStandardBlur.fragment.js +9 -0
  238. package/Shaders/fluidRenderingStandardBlur.fragment.js.map +1 -0
  239. package/XR/features/WebXRControllerPhysics.d.ts +1 -1
  240. package/XR/features/WebXRControllerPhysics.js +1 -1
  241. package/XR/features/WebXRControllerPhysics.js.map +1 -1
  242. package/XR/features/WebXRHandTracking.js +1 -1
  243. package/XR/features/WebXRHandTracking.js.map +1 -1
  244. package/package.json +1 -1
  245. package/scene.js +6 -1
  246. package/scene.js.map +1 -1
  247. package/sceneComponent.d.ts +3 -0
  248. package/sceneComponent.js +3 -0
  249. package/sceneComponent.js.map +1 -1
  250. package/Physics/Plugins/index.js.map +0 -1
@@ -1,640 +1 @@
1
- import type { Nullable, IndicesArray } from "../types";
2
- import type { Matrix } from "../Maths/math.vector";
3
- import { Vector3, Quaternion } from "../Maths/math.vector";
4
- import type { TransformNode } from "../Meshes/transformNode";
5
- import { AbstractMesh } from "../Meshes/abstractMesh";
6
- import type { Scene } from "../scene";
7
- import type { Bone } from "../Bones/bone";
8
- import type { BoundingInfo } from "../Culling/boundingInfo";
9
- import type { PhysicsJointData } from "./physicsJoint";
10
- import { PhysicsJoint } from "./physicsJoint";
11
- import { Space } from "../Maths/math.axis";
12
- /**
13
- * The interface for the physics imposter parameters
14
- * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine
15
- */
16
- export interface PhysicsImpostorParameters {
17
- /**
18
- * The mass of the physics imposter
19
- */
20
- mass: number;
21
- /**
22
- * The friction of the physics imposter
23
- */
24
- friction?: number;
25
- /**
26
- * The coefficient of restitution of the physics imposter
27
- */
28
- restitution?: number;
29
- /**
30
- * The native options of the physics imposter
31
- */
32
- nativeOptions?: any;
33
- /**
34
- * Specifies if the parent should be ignored
35
- */
36
- ignoreParent?: boolean;
37
- /**
38
- * Specifies if bi-directional transformations should be disabled
39
- */
40
- disableBidirectionalTransformation?: boolean;
41
- /**
42
- * The pressure inside the physics imposter, soft object only
43
- */
44
- pressure?: number;
45
- /**
46
- * The stiffness the physics imposter, soft object only
47
- */
48
- stiffness?: number;
49
- /**
50
- * The number of iterations used in maintaining consistent vertex velocities, soft object only
51
- */
52
- velocityIterations?: number;
53
- /**
54
- * The number of iterations used in maintaining consistent vertex positions, soft object only
55
- */
56
- positionIterations?: number;
57
- /**
58
- * The number used to fix points on a cloth (0, 1, 2, 4, 8) or rope (0, 1, 2) only
59
- * 0 None, 1, back left or top, 2, back right or bottom, 4, front left, 8, front right
60
- * Add to fix multiple points
61
- */
62
- fixedPoints?: number;
63
- /**
64
- * The collision margin around a soft object
65
- */
66
- margin?: number;
67
- /**
68
- * The collision margin around a soft object
69
- */
70
- damping?: number;
71
- /**
72
- * The path for a rope based on an extrusion
73
- */
74
- path?: any;
75
- /**
76
- * The shape of an extrusion used for a rope based on an extrusion
77
- */
78
- shape?: any;
79
- }
80
- /**
81
- * Interface for a physics-enabled object
82
- * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine
83
- */
84
- export interface IPhysicsEnabledObject {
85
- /**
86
- * The position of the physics-enabled object
87
- */
88
- position: Vector3;
89
- /**
90
- * The rotation of the physics-enabled object
91
- */
92
- rotationQuaternion: Nullable<Quaternion>;
93
- /**
94
- * The scale of the physics-enabled object
95
- */
96
- scaling: Vector3;
97
- /**
98
- * The rotation of the physics-enabled object
99
- */
100
- rotation?: Vector3;
101
- /**
102
- * The parent of the physics-enabled object
103
- */
104
- parent?: any;
105
- /**
106
- * The bounding info of the physics-enabled object
107
- * @returns The bounding info of the physics-enabled object
108
- */
109
- getBoundingInfo(): BoundingInfo;
110
- /**
111
- * Computes the world matrix
112
- * @param force Specifies if the world matrix should be computed by force
113
- * @returns A world matrix
114
- */
115
- computeWorldMatrix(force: boolean): Matrix;
116
- /**
117
- * Gets the world matrix
118
- * @returns A world matrix
119
- */
120
- getWorldMatrix?(): Matrix;
121
- /**
122
- * Gets the child meshes
123
- * @param directDescendantsOnly Specifies if only direct-descendants should be obtained
124
- * @returns An array of abstract meshes
125
- */
126
- getChildMeshes?(directDescendantsOnly?: boolean): Array<AbstractMesh>;
127
- /**
128
- * Gets the vertex data
129
- * @param kind The type of vertex data
130
- * @returns A nullable array of numbers, or a float32 array
131
- */
132
- getVerticesData(kind: string): Nullable<Array<number> | Float32Array>;
133
- /**
134
- * Gets the indices from the mesh
135
- * @returns A nullable array of index arrays
136
- */
137
- getIndices?(): Nullable<IndicesArray>;
138
- /**
139
- * Gets the scene from the mesh
140
- * @returns the indices array or null
141
- */
142
- getScene?(): Scene;
143
- /**
144
- * Gets the absolute position from the mesh
145
- * @returns the absolute position
146
- */
147
- getAbsolutePosition(): Vector3;
148
- /**
149
- * Gets the absolute pivot point from the mesh
150
- * @returns the absolute pivot point
151
- */
152
- getAbsolutePivotPoint(): Vector3;
153
- /**
154
- * Rotates the mesh
155
- * @param axis The axis of rotation
156
- * @param amount The amount of rotation
157
- * @param space The space of the rotation
158
- * @returns The rotation transform node
159
- */
160
- rotate(axis: Vector3, amount: number, space?: Space): TransformNode;
161
- /**
162
- * Translates the mesh
163
- * @param axis The axis of translation
164
- * @param distance The distance of translation
165
- * @param space The space of the translation
166
- * @returns The transform node
167
- */
168
- translate(axis: Vector3, distance: number, space?: Space): TransformNode;
169
- /**
170
- * Sets the absolute position of the mesh
171
- * @param absolutePosition The absolute position of the mesh
172
- * @returns The transform node
173
- */
174
- setAbsolutePosition(absolutePosition: Vector3): TransformNode;
175
- /**
176
- * Gets the class name of the mesh
177
- * @returns The class name
178
- */
179
- getClassName(): string;
180
- }
181
- /**
182
- * Represents a physics imposter
183
- * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine
184
- */
185
- export declare class PhysicsImpostor {
186
- /**
187
- * The physics-enabled object used as the physics imposter
188
- */
189
- object: IPhysicsEnabledObject;
190
- /**
191
- * The type of the physics imposter
192
- */
193
- type: number;
194
- private _options;
195
- private _scene?;
196
- /**
197
- * The default object size of the imposter
198
- */
199
- static DEFAULT_OBJECT_SIZE: Vector3;
200
- /**
201
- * The identity quaternion of the imposter
202
- */
203
- static IDENTITY_QUATERNION: Quaternion;
204
- /** @internal */
205
- _pluginData: any;
206
- private _physicsEngine;
207
- private _physicsBody;
208
- private _bodyUpdateRequired;
209
- private _onBeforePhysicsStepCallbacks;
210
- private _onAfterPhysicsStepCallbacks;
211
- /** @internal */
212
- _onPhysicsCollideCallbacks: Array<{
213
- callback: (collider: PhysicsImpostor, collidedAgainst: PhysicsImpostor, point: Nullable<Vector3>, distance: number, impulse: number, normal: Nullable<Vector3>) => void;
214
- otherImpostors: Array<PhysicsImpostor>;
215
- }>;
216
- private _deltaPosition;
217
- private _deltaRotation;
218
- private _deltaRotationConjugated;
219
- /** @internal */
220
- _isFromLine: boolean;
221
- private _parent;
222
- private _isDisposed;
223
- private static _TmpVecs;
224
- private static _TmpQuat;
225
- /**
226
- * Specifies if the physics imposter is disposed
227
- */
228
- get isDisposed(): boolean;
229
- /**
230
- * Gets the mass of the physics imposter
231
- */
232
- get mass(): number;
233
- set mass(value: number);
234
- /**
235
- * Gets the coefficient of friction
236
- */
237
- get friction(): number;
238
- /**
239
- * Sets the coefficient of friction
240
- */
241
- set friction(value: number);
242
- /**
243
- * Gets the coefficient of restitution
244
- */
245
- get restitution(): number;
246
- /**
247
- * Sets the coefficient of restitution
248
- */
249
- set restitution(value: number);
250
- /**
251
- * Gets the pressure of a soft body; only supported by the AmmoJSPlugin
252
- */
253
- get pressure(): number;
254
- /**
255
- * Sets the pressure of a soft body; only supported by the AmmoJSPlugin
256
- */
257
- set pressure(value: number);
258
- /**
259
- * Gets the stiffness of a soft body; only supported by the AmmoJSPlugin
260
- */
261
- get stiffness(): number;
262
- /**
263
- * Sets the stiffness of a soft body; only supported by the AmmoJSPlugin
264
- */
265
- set stiffness(value: number);
266
- /**
267
- * Gets the velocityIterations of a soft body; only supported by the AmmoJSPlugin
268
- */
269
- get velocityIterations(): number;
270
- /**
271
- * Sets the velocityIterations of a soft body; only supported by the AmmoJSPlugin
272
- */
273
- set velocityIterations(value: number);
274
- /**
275
- * Gets the positionIterations of a soft body; only supported by the AmmoJSPlugin
276
- */
277
- get positionIterations(): number;
278
- /**
279
- * Sets the positionIterations of a soft body; only supported by the AmmoJSPlugin
280
- */
281
- set positionIterations(value: number);
282
- /**
283
- * The unique id of the physics imposter
284
- * set by the physics engine when adding this impostor to the array
285
- */
286
- uniqueId: number;
287
- /**
288
- * @internal
289
- */
290
- soft: boolean;
291
- /**
292
- * @internal
293
- */
294
- segments: number;
295
- private _joints;
296
- /**
297
- * Initializes the physics imposter
298
- * @param object The physics-enabled object used as the physics imposter
299
- * @param type The type of the physics imposter. Types are available as static members of this class.
300
- * @param _options The options for the physics imposter
301
- * @param _scene The Babylon scene
302
- */
303
- constructor(
304
- /**
305
- * The physics-enabled object used as the physics imposter
306
- */
307
- object: IPhysicsEnabledObject,
308
- /**
309
- * The type of the physics imposter
310
- */
311
- type: number, _options?: PhysicsImpostorParameters, _scene?: Scene | undefined);
312
- /**
313
- * This function will completely initialize this impostor.
314
- * It will create a new body - but only if this mesh has no parent.
315
- * If it has, this impostor will not be used other than to define the impostor
316
- * of the child mesh.
317
- * @internal
318
- */
319
- _init(): void;
320
- private _getPhysicsParent;
321
- /**
322
- * Should a new body be generated.
323
- * @returns boolean specifying if body initialization is required
324
- */
325
- isBodyInitRequired(): boolean;
326
- /**
327
- * Sets the updated scaling
328
- */
329
- setScalingUpdated(): void;
330
- /**
331
- * Force a regeneration of this or the parent's impostor's body.
332
- * Use with caution - This will remove all previously-instantiated joints.
333
- */
334
- forceUpdate(): void;
335
- /**
336
- * Gets the body that holds this impostor. Either its own, or its parent.
337
- */
338
- get physicsBody(): any;
339
- /**
340
- * Get the parent of the physics imposter
341
- * @returns Physics imposter or null
342
- */
343
- get parent(): Nullable<PhysicsImpostor>;
344
- /**
345
- * Sets the parent of the physics imposter
346
- */
347
- set parent(value: Nullable<PhysicsImpostor>);
348
- /**
349
- * Set the physics body. Used mainly by the physics engine/plugin
350
- */
351
- set physicsBody(physicsBody: any);
352
- /**
353
- * Resets the update flags
354
- */
355
- resetUpdateFlags(): void;
356
- /**
357
- * Gets the object extents
358
- * @returns the object extents
359
- */
360
- getObjectExtents(): Vector3;
361
- /**
362
- * Gets the object center
363
- * @returns The object center
364
- */
365
- getObjectCenter(): Vector3;
366
- /**
367
- * Get a specific parameter from the options parameters
368
- * @param paramName The object parameter name
369
- * @returns The object parameter
370
- */
371
- getParam(paramName: string): any;
372
- /**
373
- * Sets a specific parameter in the options given to the physics plugin
374
- * @param paramName The parameter name
375
- * @param value The value of the parameter
376
- */
377
- setParam(paramName: string, value: number): void;
378
- /**
379
- * Specifically change the body's mass. Won't recreate the physics body object
380
- * @param mass The mass of the physics imposter
381
- */
382
- setMass(mass: number): void;
383
- /**
384
- * Gets the linear velocity
385
- * @returns linear velocity or null
386
- */
387
- getLinearVelocity(): Nullable<Vector3>;
388
- /**
389
- * Sets the linear velocity
390
- * @param velocity linear velocity or null
391
- */
392
- setLinearVelocity(velocity: Nullable<Vector3>): void;
393
- /**
394
- * Gets the angular velocity
395
- * @returns angular velocity or null
396
- */
397
- getAngularVelocity(): Nullable<Vector3>;
398
- /**
399
- * Sets the angular velocity
400
- * @param velocity The velocity or null
401
- */
402
- setAngularVelocity(velocity: Nullable<Vector3>): void;
403
- /**
404
- * Execute a function with the physics plugin native code
405
- * Provide a function the will have two variables - the world object and the physics body object
406
- * @param func The function to execute with the physics plugin native code
407
- */
408
- executeNativeFunction(func: (world: any, physicsBody: any) => void): void;
409
- /**
410
- * Register a function that will be executed before the physics world is stepping forward
411
- * @param func The function to execute before the physics world is stepped forward
412
- */
413
- registerBeforePhysicsStep(func: (impostor: PhysicsImpostor) => void): void;
414
- /**
415
- * Unregister a function that will be executed before the physics world is stepping forward
416
- * @param func The function to execute before the physics world is stepped forward
417
- */
418
- unregisterBeforePhysicsStep(func: (impostor: PhysicsImpostor) => void): void;
419
- /**
420
- * Register a function that will be executed after the physics step
421
- * @param func The function to execute after physics step
422
- */
423
- registerAfterPhysicsStep(func: (impostor: PhysicsImpostor) => void): void;
424
- /**
425
- * Unregisters a function that will be executed after the physics step
426
- * @param func The function to execute after physics step
427
- */
428
- unregisterAfterPhysicsStep(func: (impostor: PhysicsImpostor) => void): void;
429
- /**
430
- * register a function that will be executed when this impostor collides against a different body
431
- * @param collideAgainst Physics imposter, or array of physics imposters to collide against
432
- * @param func Callback that is executed on collision
433
- */
434
- registerOnPhysicsCollide(collideAgainst: PhysicsImpostor | Array<PhysicsImpostor>, func: (collider: PhysicsImpostor, collidedAgainst: PhysicsImpostor, point: Nullable<Vector3>) => void): void;
435
- /**
436
- * Unregisters the physics imposter's collision callback
437
- * @param collideAgainst The physics object to collide against
438
- * @param func Callback to execute on collision
439
- */
440
- unregisterOnPhysicsCollide(collideAgainst: PhysicsImpostor | Array<PhysicsImpostor>, func: (collider: PhysicsImpostor, collidedAgainst: PhysicsImpostor | Array<PhysicsImpostor>, point: Nullable<Vector3>) => void): void;
441
- private _tmpQuat;
442
- private _tmpQuat2;
443
- /**
444
- * Get the parent rotation
445
- * @returns The parent rotation
446
- */
447
- getParentsRotation(): Quaternion;
448
- /**
449
- * this function is executed by the physics engine.
450
- */
451
- beforeStep: () => void;
452
- /**
453
- * this function is executed by the physics engine
454
- */
455
- afterStep: () => void;
456
- /**
457
- * Legacy collision detection event support
458
- */
459
- onCollideEvent: Nullable<(collider: PhysicsImpostor, collidedWith: PhysicsImpostor) => void>;
460
- /**
461
- * event and body object due to cannon's event-based architecture.
462
- * @param e
463
- * @param e.body
464
- * @param e.point
465
- * @param e.distance
466
- * @param e.impulse
467
- * @param e.normal
468
- */
469
- onCollide: (e: {
470
- body: any;
471
- point: Nullable<Vector3>;
472
- distance: number;
473
- impulse: number;
474
- normal: Nullable<Vector3>;
475
- }) => void;
476
- /**
477
- * Apply a force
478
- * @param force The force to apply
479
- * @param contactPoint The contact point for the force
480
- * @returns The physics imposter
481
- */
482
- applyForce(force: Vector3, contactPoint: Vector3): PhysicsImpostor;
483
- /**
484
- * Apply an impulse
485
- * @param force The impulse force
486
- * @param contactPoint The contact point for the impulse force
487
- * @returns The physics imposter
488
- */
489
- applyImpulse(force: Vector3, contactPoint: Vector3): PhysicsImpostor;
490
- /**
491
- * A help function to create a joint
492
- * @param otherImpostor A physics imposter used to create a joint
493
- * @param jointType The type of joint
494
- * @param jointData The data for the joint
495
- * @returns The physics imposter
496
- */
497
- createJoint(otherImpostor: PhysicsImpostor, jointType: number, jointData: PhysicsJointData): PhysicsImpostor;
498
- /**
499
- * Add a joint to this impostor with a different impostor
500
- * @param otherImpostor A physics imposter used to add a joint
501
- * @param joint The joint to add
502
- * @returns The physics imposter
503
- */
504
- addJoint(otherImpostor: PhysicsImpostor, joint: PhysicsJoint): PhysicsImpostor;
505
- /**
506
- * Add an anchor to a cloth impostor
507
- * @param otherImpostor rigid impostor to anchor to
508
- * @param width ratio across width from 0 to 1
509
- * @param height ratio up height from 0 to 1
510
- * @param influence the elasticity between cloth impostor and anchor from 0, very stretchy to 1, little stretch
511
- * @param noCollisionBetweenLinkedBodies when true collisions between cloth impostor and anchor are ignored; default false
512
- * @returns impostor the soft imposter
513
- */
514
- addAnchor(otherImpostor: PhysicsImpostor, width: number, height: number, influence: number, noCollisionBetweenLinkedBodies: boolean): PhysicsImpostor;
515
- /**
516
- * Add a hook to a rope impostor
517
- * @param otherImpostor rigid impostor to anchor to
518
- * @param length ratio across rope from 0 to 1
519
- * @param influence the elasticity between rope impostor and anchor from 0, very stretchy to 1, little stretch
520
- * @param noCollisionBetweenLinkedBodies when true collisions between soft impostor and anchor are ignored; default false
521
- * @returns impostor the rope imposter
522
- */
523
- addHook(otherImpostor: PhysicsImpostor, length: number, influence: number, noCollisionBetweenLinkedBodies: boolean): PhysicsImpostor;
524
- /**
525
- * Will keep this body still, in a sleep mode.
526
- * @returns the physics imposter
527
- */
528
- sleep(): PhysicsImpostor;
529
- /**
530
- * Wake the body up.
531
- * @returns The physics imposter
532
- */
533
- wakeUp(): PhysicsImpostor;
534
- /**
535
- * Clones the physics imposter
536
- * @param newObject The physics imposter clones to this physics-enabled object
537
- * @returns A nullable physics imposter
538
- */
539
- clone(newObject: IPhysicsEnabledObject): Nullable<PhysicsImpostor>;
540
- /**
541
- * Disposes the physics imposter
542
- */
543
- dispose(): void;
544
- /**
545
- * Sets the delta position
546
- * @param position The delta position amount
547
- */
548
- setDeltaPosition(position: Vector3): void;
549
- /**
550
- * Sets the delta rotation
551
- * @param rotation The delta rotation amount
552
- */
553
- setDeltaRotation(rotation: Quaternion): void;
554
- /**
555
- * Gets the box size of the physics imposter and stores the result in the input parameter
556
- * @param result Stores the box size
557
- * @returns The physics imposter
558
- */
559
- getBoxSizeToRef(result: Vector3): PhysicsImpostor;
560
- /**
561
- * Gets the radius of the physics imposter
562
- * @returns Radius of the physics imposter
563
- */
564
- getRadius(): number;
565
- /**
566
- * Sync a bone with this impostor
567
- * @param bone The bone to sync to the impostor.
568
- * @param boneMesh The mesh that the bone is influencing.
569
- * @param jointPivot The pivot of the joint / bone in local space.
570
- * @param distToJoint Optional distance from the impostor to the joint.
571
- * @param adjustRotation Optional quaternion for adjusting the local rotation of the bone.
572
- */
573
- syncBoneWithImpostor(bone: Bone, boneMesh: AbstractMesh, jointPivot: Vector3, distToJoint?: number, adjustRotation?: Quaternion): void;
574
- /**
575
- * Sync impostor to a bone
576
- * @param bone The bone that the impostor will be synced to.
577
- * @param boneMesh The mesh that the bone is influencing.
578
- * @param jointPivot The pivot of the joint / bone in local space.
579
- * @param distToJoint Optional distance from the impostor to the joint.
580
- * @param adjustRotation Optional quaternion for adjusting the local rotation of the bone.
581
- * @param boneAxis Optional vector3 axis the bone is aligned with
582
- */
583
- syncImpostorWithBone(bone: Bone, boneMesh: AbstractMesh, jointPivot: Vector3, distToJoint?: number, adjustRotation?: Quaternion, boneAxis?: Vector3): void;
584
- /**
585
- * No-Imposter type
586
- */
587
- static NoImpostor: number;
588
- /**
589
- * Sphere-Imposter type
590
- */
591
- static SphereImpostor: number;
592
- /**
593
- * Box-Imposter type
594
- */
595
- static BoxImpostor: number;
596
- /**
597
- * Plane-Imposter type
598
- */
599
- static PlaneImpostor: number;
600
- /**
601
- * Mesh-imposter type (Only available to objects with vertices data)
602
- */
603
- static MeshImpostor: number;
604
- /**
605
- * Capsule-Impostor type (Ammo.js plugin only)
606
- */
607
- static CapsuleImpostor: number;
608
- /**
609
- * Cylinder-Imposter type
610
- */
611
- static CylinderImpostor: number;
612
- /**
613
- * Particle-Imposter type
614
- */
615
- static ParticleImpostor: number;
616
- /**
617
- * Heightmap-Imposter type
618
- */
619
- static HeightmapImpostor: number;
620
- /**
621
- * ConvexHull-Impostor type (Ammo.js plugin only)
622
- */
623
- static ConvexHullImpostor: number;
624
- /**
625
- * Custom-Imposter type (Ammo.js plugin only)
626
- */
627
- static CustomImpostor: number;
628
- /**
629
- * Rope-Imposter type
630
- */
631
- static RopeImpostor: number;
632
- /**
633
- * Cloth-Imposter type
634
- */
635
- static ClothImpostor: number;
636
- /**
637
- * Softbody-Imposter type
638
- */
639
- static SoftbodyImpostor: number;
640
- }
1
+ export * from "./v1/physicsImpostor";