@iwsdk/core 0.4.1 → 0.5.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 (407) hide show
  1. package/README.md +4 -7
  2. package/dist/asset/asset-manager.d.ts +137 -9
  3. package/dist/asset/asset-manager.d.ts.map +1 -1
  4. package/dist/asset/asset-manager.js +491 -47
  5. package/dist/asset/asset-manager.js.map +1 -1
  6. package/dist/asset/cache-manager.d.ts +4 -2
  7. package/dist/asset/cache-manager.d.ts.map +1 -1
  8. package/dist/asset/cache-manager.js +10 -3
  9. package/dist/asset/cache-manager.js.map +1 -1
  10. package/dist/asset/loaders/audio-loader.d.ts +1 -1
  11. package/dist/asset/loaders/audio-loader.d.ts.map +1 -1
  12. package/dist/asset/loaders/audio-loader.js +8 -26
  13. package/dist/asset/loaders/audio-loader.js.map +1 -1
  14. package/dist/asset/loaders/cached-asset-load.d.ts +35 -0
  15. package/dist/asset/loaders/cached-asset-load.d.ts.map +1 -0
  16. package/dist/asset/loaders/cached-asset-load.js +100 -0
  17. package/dist/asset/loaders/cached-asset-load.js.map +1 -0
  18. package/dist/asset/loaders/gltf-loader.d.ts +28 -1
  19. package/dist/asset/loaders/gltf-loader.d.ts.map +1 -1
  20. package/dist/asset/loaders/gltf-loader.js +254 -33
  21. package/dist/asset/loaders/gltf-loader.js.map +1 -1
  22. package/dist/asset/loaders/hdr-texture-loader.d.ts +1 -1
  23. package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -1
  24. package/dist/asset/loaders/hdr-texture-loader.js +19 -29
  25. package/dist/asset/loaders/hdr-texture-loader.js.map +1 -1
  26. package/dist/asset/loaders/texture-loader.d.ts +1 -1
  27. package/dist/asset/loaders/texture-loader.d.ts.map +1 -1
  28. package/dist/asset/loaders/texture-loader.js +9 -26
  29. package/dist/asset/loaders/texture-loader.js.map +1 -1
  30. package/dist/asset/loaders/uikitml-loader.d.ts +12 -0
  31. package/dist/asset/loaders/uikitml-loader.d.ts.map +1 -0
  32. package/dist/asset/loaders/uikitml-loader.js +44 -0
  33. package/dist/asset/loaders/uikitml-loader.js.map +1 -0
  34. package/dist/audio/audio-pool.d.ts +7 -0
  35. package/dist/audio/audio-pool.d.ts.map +1 -1
  36. package/dist/audio/audio-pool.js.map +1 -1
  37. package/dist/audio/audio-system.d.ts +3 -2
  38. package/dist/audio/audio-system.d.ts.map +1 -1
  39. package/dist/audio/audio-system.js +17 -6
  40. package/dist/audio/audio-system.js.map +1 -1
  41. package/dist/audio/audio-utils.d.ts +2 -2
  42. package/dist/audio/audio-utils.d.ts.map +1 -1
  43. package/dist/audio/audio.d.ts +1 -1
  44. package/dist/audio/audio.d.ts.map +1 -1
  45. package/dist/audio/audio.js +2 -4
  46. package/dist/audio/audio.js.map +1 -1
  47. package/dist/camera/camera-source.d.ts +1 -1
  48. package/dist/camera/camera-source.d.ts.map +1 -1
  49. package/dist/camera/camera-source.js +0 -4
  50. package/dist/camera/camera-source.js.map +1 -1
  51. package/dist/camera/camera-system.d.ts +18 -18
  52. package/dist/camera/camera-system.d.ts.map +1 -1
  53. package/dist/camera/camera-system.js +5 -6
  54. package/dist/camera/camera-system.js.map +1 -1
  55. package/dist/camera/camera-utils.d.ts +1 -1
  56. package/dist/camera/camera-utils.d.ts.map +1 -1
  57. package/dist/depth/depth-occludable.d.ts +1 -1
  58. package/dist/depth/depth-occludable.d.ts.map +1 -1
  59. package/dist/depth/depth-occludable.js +0 -4
  60. package/dist/depth/depth-occludable.js.map +1 -1
  61. package/dist/depth/depth-sensing-system.d.ts +2 -2
  62. package/dist/depth/depth-sensing-system.d.ts.map +1 -1
  63. package/dist/depth/depth-sensing-system.js +31 -13
  64. package/dist/depth/depth-sensing-system.js.map +1 -1
  65. package/dist/ecs/builtin-components.d.ts +1239 -0
  66. package/dist/ecs/builtin-components.d.ts.map +1 -0
  67. package/dist/ecs/builtin-components.js +87 -0
  68. package/dist/ecs/builtin-components.js.map +1 -0
  69. package/dist/ecs/component-editor-metadata.d.ts +19 -0
  70. package/dist/ecs/component-editor-metadata.d.ts.map +1 -0
  71. package/dist/ecs/component-editor-metadata.js +19 -0
  72. package/dist/ecs/component-editor-metadata.js.map +1 -0
  73. package/dist/ecs/component-manifest.d.ts +24 -0
  74. package/dist/ecs/component-manifest.d.ts.map +1 -0
  75. package/dist/ecs/component-manifest.js +121 -0
  76. package/dist/ecs/component-manifest.js.map +1 -0
  77. package/dist/ecs/component.d.ts +1 -0
  78. package/dist/ecs/component.d.ts.map +1 -1
  79. package/dist/ecs/entity.d.ts +20 -2
  80. package/dist/ecs/entity.d.ts.map +1 -1
  81. package/dist/ecs/entity.js +59 -3
  82. package/dist/ecs/entity.js.map +1 -1
  83. package/dist/ecs/index.d.ts +3 -1
  84. package/dist/ecs/index.d.ts.map +1 -1
  85. package/dist/ecs/system.d.ts +9 -0
  86. package/dist/ecs/system.d.ts.map +1 -1
  87. package/dist/ecs/system.js.map +1 -1
  88. package/dist/ecs/world.d.ts +160 -5
  89. package/dist/ecs/world.d.ts.map +1 -1
  90. package/dist/ecs/world.js +306 -19
  91. package/dist/ecs/world.js.map +1 -1
  92. package/dist/environment/dome-gradient.d.ts +3 -2
  93. package/dist/environment/dome-gradient.d.ts.map +1 -1
  94. package/dist/environment/dome-gradient.js +2 -5
  95. package/dist/environment/dome-gradient.js.map +1 -1
  96. package/dist/environment/dome-texture.d.ts +1 -1
  97. package/dist/environment/dome-texture.d.ts.map +1 -1
  98. package/dist/environment/dome-texture.js +0 -4
  99. package/dist/environment/dome-texture.js.map +1 -1
  100. package/dist/environment/environment-system.d.ts +20 -4
  101. package/dist/environment/environment-system.d.ts.map +1 -1
  102. package/dist/environment/environment-system.js +79 -61
  103. package/dist/environment/environment-system.js.map +1 -1
  104. package/dist/environment/gradient-environment.d.ts.map +1 -1
  105. package/dist/environment/gradient-environment.js +13 -7
  106. package/dist/environment/gradient-environment.js.map +1 -1
  107. package/dist/environment/ibl-gradient.d.ts +1 -1
  108. package/dist/environment/ibl-gradient.d.ts.map +1 -1
  109. package/dist/environment/ibl-gradient.js +0 -4
  110. package/dist/environment/ibl-gradient.js.map +1 -1
  111. package/dist/environment/ibl-texture.d.ts +1 -1
  112. package/dist/environment/ibl-texture.d.ts.map +1 -1
  113. package/dist/environment/ibl-texture.js +0 -4
  114. package/dist/environment/ibl-texture.js.map +1 -1
  115. package/dist/environment/scene-ar-environment.d.ts +39 -0
  116. package/dist/environment/scene-ar-environment.d.ts.map +1 -0
  117. package/dist/environment/scene-ar-environment.js +93 -0
  118. package/dist/environment/scene-ar-environment.js.map +1 -0
  119. package/dist/environment-raycast/environment-raycast.d.ts +21 -21
  120. package/dist/environment-raycast/environment-raycast.d.ts.map +1 -1
  121. package/dist/environment-raycast/environment-raycast.js +0 -4
  122. package/dist/environment-raycast/environment-raycast.js.map +1 -1
  123. package/dist/environment-raycast/raycast-target.d.ts +1 -1
  124. package/dist/environment-raycast/raycast-target.d.ts.map +1 -1
  125. package/dist/environment-raycast/raycast-target.js +0 -4
  126. package/dist/environment-raycast/raycast-target.js.map +1 -1
  127. package/dist/grab/distance-grabbable.d.ts +1 -1
  128. package/dist/grab/distance-grabbable.d.ts.map +1 -1
  129. package/dist/grab/distance-grabbable.js +0 -4
  130. package/dist/grab/distance-grabbable.js.map +1 -1
  131. package/dist/grab/grab-helpers.d.ts +39 -0
  132. package/dist/grab/grab-helpers.d.ts.map +1 -0
  133. package/dist/grab/grab-helpers.js +59 -0
  134. package/dist/grab/grab-helpers.js.map +1 -0
  135. package/dist/grab/grab-system.d.ts +47 -2
  136. package/dist/grab/grab-system.d.ts.map +1 -1
  137. package/dist/grab/grab-system.js +67 -8
  138. package/dist/grab/grab-system.js.map +1 -1
  139. package/dist/grab/grab-warnings.d.ts +14 -0
  140. package/dist/grab/grab-warnings.d.ts.map +1 -0
  141. package/dist/grab/grab-warnings.js +53 -0
  142. package/dist/grab/grab-warnings.js.map +1 -0
  143. package/dist/grab/grabbed.d.ts.map +1 -1
  144. package/dist/grab/grabbed.js +0 -4
  145. package/dist/grab/grabbed.js.map +1 -1
  146. package/dist/grab/handles.d.ts +1 -1
  147. package/dist/grab/handles.d.ts.map +1 -1
  148. package/dist/grab/handles.js +8 -7
  149. package/dist/grab/handles.js.map +1 -1
  150. package/dist/grab/one-hand-grabbable.d.ts +1 -1
  151. package/dist/grab/one-hand-grabbable.d.ts.map +1 -1
  152. package/dist/grab/one-hand-grabbable.js +0 -4
  153. package/dist/grab/one-hand-grabbable.js.map +1 -1
  154. package/dist/grab/two-hands-grabbable.d.ts +1 -1
  155. package/dist/grab/two-hands-grabbable.d.ts.map +1 -1
  156. package/dist/grab/two-hands-grabbable.js +0 -4
  157. package/dist/grab/two-hands-grabbable.js.map +1 -1
  158. package/dist/index.d.ts +4 -0
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +42 -16
  161. package/dist/index.js.map +1 -1
  162. package/dist/init/world-initializer.d.ts +12 -8
  163. package/dist/init/world-initializer.d.ts.map +1 -1
  164. package/dist/init/world-initializer.js +127 -67
  165. package/dist/init/world-initializer.js.map +1 -1
  166. package/dist/init/xr.d.ts +1 -2
  167. package/dist/init/xr.d.ts.map +1 -1
  168. package/dist/init/xr.js +12 -3
  169. package/dist/init/xr.js.map +1 -1
  170. package/dist/input/input-system.d.ts +59 -59
  171. package/dist/input/input-system.d.ts.map +1 -1
  172. package/dist/input/input-system.js +26 -13
  173. package/dist/input/input-system.js.map +1 -1
  174. package/dist/input/state-tags.d.ts.map +1 -1
  175. package/dist/input/state-tags.js +0 -4
  176. package/dist/input/state-tags.js.map +1 -1
  177. package/dist/layers/xr-cylinder-layer.d.ts +1 -1
  178. package/dist/layers/xr-cylinder-layer.d.ts.map +1 -1
  179. package/dist/layers/xr-cylinder-layer.js +0 -4
  180. package/dist/layers/xr-cylinder-layer.js.map +1 -1
  181. package/dist/layers/xr-layer-state.d.ts +47 -0
  182. package/dist/layers/xr-layer-state.d.ts.map +1 -0
  183. package/dist/layers/xr-layer-state.js +23 -0
  184. package/dist/layers/xr-layer-state.js.map +1 -0
  185. package/dist/layers/xr-layer-system.d.ts +46 -94
  186. package/dist/layers/xr-layer-system.d.ts.map +1 -1
  187. package/dist/layers/xr-layer-system.js +4 -28
  188. package/dist/layers/xr-layer-system.js.map +1 -1
  189. package/dist/layers/xr-quad-layer.d.ts +1 -1
  190. package/dist/layers/xr-quad-layer.d.ts.map +1 -1
  191. package/dist/layers/xr-quad-layer.js +0 -4
  192. package/dist/layers/xr-quad-layer.js.map +1 -1
  193. package/dist/level/index.d.ts +6 -2
  194. package/dist/level/index.d.ts.map +1 -1
  195. package/dist/level/level-component-applier.d.ts +24 -0
  196. package/dist/level/level-component-applier.d.ts.map +1 -0
  197. package/dist/level/level-component-applier.js +199 -0
  198. package/dist/level/level-component-applier.js.map +1 -0
  199. package/dist/level/level-player-rig.d.ts +17 -0
  200. package/dist/level/level-player-rig.d.ts.map +1 -0
  201. package/dist/level/level-player-rig.js +113 -0
  202. package/dist/level/level-player-rig.js.map +1 -0
  203. package/dist/level/level-root.d.ts.map +1 -1
  204. package/dist/level/level-root.js +0 -4
  205. package/dist/level/level-root.js.map +1 -1
  206. package/dist/level/level-scene-environment.d.ts +28 -0
  207. package/dist/level/level-scene-environment.d.ts.map +1 -0
  208. package/dist/level/level-scene-environment.js +121 -0
  209. package/dist/level/level-scene-environment.js.map +1 -0
  210. package/dist/level/level-scene-json-importer.d.ts +53 -0
  211. package/dist/level/level-scene-json-importer.d.ts.map +1 -0
  212. package/dist/level/level-scene-json-importer.js +256 -0
  213. package/dist/level/level-scene-json-importer.js.map +1 -0
  214. package/dist/level/level-scene-material.d.ts +22 -0
  215. package/dist/level/level-scene-material.d.ts.map +1 -0
  216. package/dist/level/level-scene-material.js +231 -0
  217. package/dist/level/level-scene-material.js.map +1 -0
  218. package/dist/level/level-scene-object.d.ts +49 -0
  219. package/dist/level/level-scene-object.d.ts.map +1 -0
  220. package/dist/level/level-scene-object.js +396 -0
  221. package/dist/level/level-scene-object.js.map +1 -0
  222. package/dist/level/level-scene-primitive.d.ts +21 -0
  223. package/dist/level/level-scene-primitive.d.ts.map +1 -0
  224. package/dist/level/level-scene-primitive.js +159 -0
  225. package/dist/level/level-scene-primitive.js.map +1 -0
  226. package/dist/level/level-system.d.ts +14 -20
  227. package/dist/level/level-system.d.ts.map +1 -1
  228. package/dist/level/level-system.js +114 -52
  229. package/dist/level/level-system.js.map +1 -1
  230. package/dist/level/level-tag.d.ts +1 -1
  231. package/dist/level/level-tag.d.ts.map +1 -1
  232. package/dist/level/level-tag.js +0 -4
  233. package/dist/level/level-tag.js.map +1 -1
  234. package/dist/lighting/index.d.ts +10 -0
  235. package/dist/lighting/index.d.ts.map +1 -0
  236. package/dist/lighting/index.js +4 -0
  237. package/dist/lighting/index.js.map +1 -0
  238. package/dist/lighting/light-binding.d.ts +76 -0
  239. package/dist/lighting/light-binding.d.ts.map +1 -0
  240. package/dist/lighting/light-binding.js +229 -0
  241. package/dist/lighting/light-binding.js.map +1 -0
  242. package/dist/lighting/light-components.d.ts +885 -0
  243. package/dist/lighting/light-components.d.ts.map +1 -0
  244. package/dist/lighting/light-components.js +146 -0
  245. package/dist/lighting/light-components.js.map +1 -0
  246. package/dist/lighting/light-system.d.ts +919 -0
  247. package/dist/lighting/light-system.d.ts.map +1 -0
  248. package/dist/lighting/light-system.js +244 -0
  249. package/dist/lighting/light-system.js.map +1 -0
  250. package/dist/locomotion/locomotion-environment.d.ts +27 -0
  251. package/dist/locomotion/locomotion-environment.d.ts.map +1 -0
  252. package/dist/locomotion/locomotion-environment.js +22 -0
  253. package/dist/locomotion/locomotion-environment.js.map +1 -0
  254. package/dist/locomotion/locomotion-input-provider.d.ts +1 -1
  255. package/dist/locomotion/locomotion.d.ts +5 -34
  256. package/dist/locomotion/locomotion.d.ts.map +1 -1
  257. package/dist/locomotion/locomotion.js +33 -31
  258. package/dist/locomotion/locomotion.js.map +1 -1
  259. package/dist/locomotion/materials/line.js +1 -1
  260. package/dist/locomotion/slide.d.ts +2 -2
  261. package/dist/locomotion/slide.d.ts.map +1 -1
  262. package/dist/locomotion/slide.js +3 -6
  263. package/dist/locomotion/slide.js.map +1 -1
  264. package/dist/locomotion/teleport.d.ts +2 -2
  265. package/dist/locomotion/teleport.d.ts.map +1 -1
  266. package/dist/locomotion/teleport.js +1 -4
  267. package/dist/locomotion/teleport.js.map +1 -1
  268. package/dist/mcp/ecs-debug-tools.d.ts.map +1 -1
  269. package/dist/mcp/ecs-debug-tools.js +10 -2
  270. package/dist/mcp/ecs-debug-tools.js.map +1 -1
  271. package/dist/mcp/mcp-runtime.d.ts.map +1 -1
  272. package/dist/mcp/mcp-runtime.js +4 -1
  273. package/dist/mcp/mcp-runtime.js.map +1 -1
  274. package/dist/mcp/scene-tools.d.ts +152 -1
  275. package/dist/mcp/scene-tools.d.ts.map +1 -1
  276. package/dist/mcp/scene-tools.js +538 -8
  277. package/dist/mcp/scene-tools.js.map +1 -1
  278. package/dist/physics/index.js +12 -0
  279. package/dist/physics/index.js.map +1 -0
  280. package/dist/physics/physics-system.d.ts +704 -11
  281. package/dist/physics/physics-system.d.ts.map +1 -1
  282. package/dist/physics/physics-system.js +310 -29
  283. package/dist/physics/physics-system.js.map +1 -1
  284. package/dist/physics/physicsBody.d.ts +40 -1
  285. package/dist/physics/physicsBody.d.ts.map +1 -1
  286. package/dist/physics/physicsBody.js +39 -1
  287. package/dist/physics/physicsBody.js.map +1 -1
  288. package/dist/physics/physicsManipulation.d.ts +1 -1
  289. package/dist/physics/physicsManipulation.d.ts.map +1 -1
  290. package/dist/physics/physicsManipulation.js +0 -1
  291. package/dist/physics/physicsManipulation.js.map +1 -1
  292. package/dist/physics/physicsShape.d.ts +5 -3
  293. package/dist/physics/physicsShape.d.ts.map +1 -1
  294. package/dist/physics/physicsShape.js +2 -2
  295. package/dist/physics/physicsShape.js.map +1 -1
  296. package/dist/physics/utils.d.ts +10 -0
  297. package/dist/physics/utils.d.ts.map +1 -1
  298. package/dist/physics/utils.js +82 -48
  299. package/dist/physics/utils.js.map +1 -1
  300. package/dist/project/index.d.ts +11 -0
  301. package/dist/project/index.d.ts.map +1 -0
  302. package/dist/project/index.js +5 -0
  303. package/dist/project/index.js.map +1 -0
  304. package/dist/project/normalize.d.ts +19 -0
  305. package/dist/project/normalize.d.ts.map +1 -0
  306. package/dist/project/normalize.js +206 -0
  307. package/dist/project/normalize.js.map +1 -0
  308. package/dist/project/paths.d.ts +21 -0
  309. package/dist/project/paths.d.ts.map +1 -0
  310. package/dist/project/paths.js +75 -0
  311. package/dist/project/paths.js.map +1 -0
  312. package/dist/project/types.d.ts +159 -0
  313. package/dist/project/types.d.ts.map +1 -0
  314. package/dist/project/types.js +11 -0
  315. package/dist/project/types.js.map +1 -0
  316. package/dist/project/validation.d.ts +17 -0
  317. package/dist/project/validation.d.ts.map +1 -0
  318. package/dist/project/validation.js +501 -0
  319. package/dist/project/validation.js.map +1 -0
  320. package/dist/scene-understanding/anchor.d.ts +1 -1
  321. package/dist/scene-understanding/anchor.d.ts.map +1 -1
  322. package/dist/scene-understanding/anchor.js +0 -4
  323. package/dist/scene-understanding/anchor.js.map +1 -1
  324. package/dist/scene-understanding/mesh.d.ts +1 -1
  325. package/dist/scene-understanding/mesh.d.ts.map +1 -1
  326. package/dist/scene-understanding/mesh.js +0 -4
  327. package/dist/scene-understanding/mesh.js.map +1 -1
  328. package/dist/scene-understanding/plane.d.ts +1 -1
  329. package/dist/scene-understanding/plane.d.ts.map +1 -1
  330. package/dist/scene-understanding/plane.js +0 -4
  331. package/dist/scene-understanding/plane.js.map +1 -1
  332. package/dist/scene-understanding/scene-understanding-system.d.ts +25 -4
  333. package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
  334. package/dist/scene-understanding/scene-understanding-system.js +76 -57
  335. package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
  336. package/dist/schemas/iwsdk-project.v1.schema.json +305 -0
  337. package/dist/transform/transform-component.d.ts +32 -0
  338. package/dist/transform/transform-component.d.ts.map +1 -0
  339. package/dist/transform/transform-component.js +24 -0
  340. package/dist/transform/transform-component.js.map +1 -0
  341. package/dist/transform/transform.d.ts +10 -43
  342. package/dist/transform/transform.d.ts.map +1 -1
  343. package/dist/transform/transform.js +9 -28
  344. package/dist/transform/transform.js.map +1 -1
  345. package/dist/ui/document.d.ts +9 -2
  346. package/dist/ui/document.d.ts.map +1 -1
  347. package/dist/ui/document.js +30 -5
  348. package/dist/ui/document.js.map +1 -1
  349. package/dist/ui/follow-component.d.ts +57 -0
  350. package/dist/ui/follow-component.d.ts.map +1 -0
  351. package/dist/ui/follow-component.js +38 -0
  352. package/dist/ui/follow-component.js.map +1 -0
  353. package/dist/ui/follow.d.ts +29 -103
  354. package/dist/ui/follow.d.ts.map +1 -1
  355. package/dist/ui/follow.js +10 -51
  356. package/dist/ui/follow.js.map +1 -1
  357. package/dist/ui/index.d.ts +3 -0
  358. package/dist/ui/index.d.ts.map +1 -1
  359. package/dist/ui/panel-components.d.ts +29 -0
  360. package/dist/ui/panel-components.d.ts.map +1 -0
  361. package/dist/ui/panel-components.js +22 -0
  362. package/dist/ui/panel-components.js.map +1 -0
  363. package/dist/ui/screenspace-component.d.ts +39 -0
  364. package/dist/ui/screenspace-component.d.ts.map +1 -0
  365. package/dist/ui/screenspace-component.js +21 -0
  366. package/dist/ui/screenspace-component.js.map +1 -0
  367. package/dist/ui/screenspace.d.ts +47 -135
  368. package/dist/ui/screenspace.d.ts.map +1 -1
  369. package/dist/ui/screenspace.js +127 -65
  370. package/dist/ui/screenspace.js.map +1 -1
  371. package/dist/ui/ui.d.ts +20 -122
  372. package/dist/ui/ui.d.ts.map +1 -1
  373. package/dist/ui/ui.js +44 -107
  374. package/dist/ui/ui.js.map +1 -1
  375. package/dist/ui/uikitml-asset.d.ts +25 -0
  376. package/dist/ui/uikitml-asset.d.ts.map +1 -0
  377. package/dist/ui/uikitml-asset.js +56 -0
  378. package/dist/ui/uikitml-asset.js.map +1 -0
  379. package/dist/ui/uikitml.d.ts +41 -0
  380. package/dist/ui/uikitml.d.ts.map +1 -0
  381. package/dist/ui/uikitml.js +119 -0
  382. package/dist/ui/uikitml.js.map +1 -0
  383. package/dist/vendor/draco/gltf/draco_encoder.js +0 -0
  384. package/dist/version.d.ts +1 -1
  385. package/dist/version.js +1 -1
  386. package/dist/visibility/visibility-component.d.ts +14 -0
  387. package/dist/visibility/visibility-component.d.ts.map +1 -0
  388. package/dist/visibility/visibility-component.js +15 -0
  389. package/dist/visibility/visibility-component.js.map +1 -0
  390. package/dist/visibility/visibility.d.ts +4 -11
  391. package/dist/visibility/visibility.d.ts.map +1 -1
  392. package/dist/visibility/visibility.js +9 -15
  393. package/dist/visibility/visibility.js.map +1 -1
  394. package/package.json +71 -19
  395. package/LICENSE +0 -21
  396. package/dist/ecs/component-registry.d.ts +0 -54
  397. package/dist/ecs/component-registry.d.ts.map +0 -1
  398. package/dist/ecs/component-registry.js +0 -86
  399. package/dist/ecs/component-registry.js.map +0 -1
  400. package/dist/level/level-entity-creator.d.ts +0 -27
  401. package/dist/level/level-entity-creator.d.ts.map +0 -1
  402. package/dist/level/level-entity-creator.js +0 -111
  403. package/dist/level/level-entity-creator.js.map +0 -1
  404. package/dist/level/level-glxf-importer.d.ts +0 -22
  405. package/dist/level/level-glxf-importer.d.ts.map +0 -1
  406. package/dist/level/level-glxf-importer.js +0 -40
  407. package/dist/level/level-glxf-importer.js.map +0 -1
@@ -4,7 +4,25 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { Types } from '.././index.js';
7
+ import { Entity, Types } from '.././index.js';
8
+ import { Vector3, Quaternion } from '../runtime/three.js';
9
+ type Vector3Input = Vector3 | readonly [number, number, number];
10
+ type QuaternionInput = Quaternion | readonly [number, number, number, number];
11
+ /** Pose passed to {@link PhysicsSystem.setBodyTransform}. */
12
+ export interface PhysicsBodyTransformPose {
13
+ position: Vector3Input;
14
+ quaternion: QuaternionInput;
15
+ }
16
+ /** Options for {@link PhysicsSystem.setBodyTransform}. */
17
+ export interface PhysicsBodyTransformOptions {
18
+ /**
19
+ * Clear linear and angular velocity after teleporting the body.
20
+ *
21
+ * @default true
22
+ */
23
+ resetVelocity?: boolean;
24
+ }
25
+ export declare function getCapsuleAxisEndpoints(radius: number, totalHeight: number): [[number, number, number], [number, number, number]] | null;
8
26
  declare const PhysicsSystem_base: import("elics").SystemConstructor<{
9
27
  gravity: {
10
28
  type: Types.Vec3;
@@ -54,6 +72,18 @@ declare const PhysicsSystem_base: import("elics").SystemConstructor<{
54
72
  type: Types.Float64;
55
73
  default: number;
56
74
  };
75
+ _engineGravityFactor: {
76
+ type: Types.Float32;
77
+ default: number;
78
+ };
79
+ _engineLinearDamping: {
80
+ type: Types.Float32;
81
+ default: number;
82
+ };
83
+ _engineAngularDamping: {
84
+ type: Types.Float32;
85
+ default: number;
86
+ };
57
87
  }> | import("elics").Component<{
58
88
  shape: {
59
89
  type: Types.Enum;
@@ -133,6 +163,18 @@ declare const PhysicsSystem_base: import("elics").SystemConstructor<{
133
163
  type: Types.Float64;
134
164
  default: number;
135
165
  };
166
+ _engineGravityFactor: {
167
+ type: Types.Float32;
168
+ default: number;
169
+ };
170
+ _engineLinearDamping: {
171
+ type: Types.Float32;
172
+ default: number;
173
+ };
174
+ _engineAngularDamping: {
175
+ type: Types.Float32;
176
+ default: number;
177
+ };
136
178
  }> | import("elics").Component<{
137
179
  force: {
138
180
  type: Types.Vec3;
@@ -149,13 +191,99 @@ declare const PhysicsSystem_base: import("elics").SystemConstructor<{
149
191
  }>)[];
150
192
  where: import("elics").ValuePredicate[];
151
193
  };
152
- }, import("../ecs/world.js").World, import("../ecs/system.js").System<{
153
- gravity: {
154
- type: Types.Vec3;
155
- default: [number, number, number];
194
+ gravityOverrides: {
195
+ required: (import("elics").Component<{
196
+ state: {
197
+ type: Types.Enum;
198
+ enum: {
199
+ readonly Static: "STATIC";
200
+ readonly Dynamic: "DYNAMIC";
201
+ readonly Kinematic: "KINEMATIC";
202
+ };
203
+ default: "DYNAMIC";
204
+ };
205
+ linearDamping: {
206
+ type: Types.Float32;
207
+ default: number;
208
+ };
209
+ angularDamping: {
210
+ type: Types.Float32;
211
+ default: number;
212
+ };
213
+ gravityFactor: {
214
+ type: Types.Float32;
215
+ default: number;
216
+ };
217
+ centerOfMass: {
218
+ type: Types.Vec3;
219
+ default: [number, number, number];
220
+ };
221
+ _linearVelocity: {
222
+ type: Types.Vec3;
223
+ default: [number, number, number];
224
+ };
225
+ _angularVelocity: {
226
+ type: Types.Vec3;
227
+ default: [number, number, number];
228
+ };
229
+ _engineBody: {
230
+ type: Types.Float64;
231
+ default: number;
232
+ };
233
+ _engineOffset: {
234
+ type: Types.Float64;
235
+ default: number;
236
+ };
237
+ _engineGravityFactor: {
238
+ type: Types.Float32;
239
+ default: number;
240
+ };
241
+ _engineLinearDamping: {
242
+ type: Types.Float32;
243
+ default: number;
244
+ };
245
+ _engineAngularDamping: {
246
+ type: Types.Float32;
247
+ default: number;
248
+ };
249
+ }> | import("elics").Component<{
250
+ shape: {
251
+ type: Types.Enum;
252
+ enum: {
253
+ readonly Sphere: "Sphere";
254
+ readonly Box: "Box";
255
+ readonly Cylinder: "Cylinder";
256
+ readonly Capsules: "Capsules";
257
+ readonly ConvexHull: "ConvexHull";
258
+ readonly TriMesh: "TriMesh";
259
+ readonly Auto: "Auto";
260
+ };
261
+ default: "Auto";
262
+ };
263
+ dimensions: {
264
+ type: Types.Vec3;
265
+ default: [number, number, number];
266
+ };
267
+ density: {
268
+ type: Types.Float32;
269
+ default: number;
270
+ };
271
+ restitution: {
272
+ type: Types.Float32;
273
+ default: number;
274
+ };
275
+ friction: {
276
+ type: Types.Float32;
277
+ default: number;
278
+ };
279
+ _engineShape: {
280
+ type: Types.Float64;
281
+ default: number;
282
+ };
283
+ }>)[];
284
+ where: import("elics").ValuePredicate[];
156
285
  };
157
- }, {
158
- physicsEntities: {
286
+ linearDampingOverrides: {
159
287
  required: (import("elics").Component<{
160
288
  state: {
161
289
  type: Types.Enum;
@@ -198,6 +326,18 @@ declare const PhysicsSystem_base: import("elics").SystemConstructor<{
198
326
  type: Types.Float64;
199
327
  default: number;
200
328
  };
329
+ _engineGravityFactor: {
330
+ type: Types.Float32;
331
+ default: number;
332
+ };
333
+ _engineLinearDamping: {
334
+ type: Types.Float32;
335
+ default: number;
336
+ };
337
+ _engineAngularDamping: {
338
+ type: Types.Float32;
339
+ default: number;
340
+ };
201
341
  }> | import("elics").Component<{
202
342
  shape: {
203
343
  type: Types.Enum;
@@ -233,8 +373,9 @@ declare const PhysicsSystem_base: import("elics").SystemConstructor<{
233
373
  default: number;
234
374
  };
235
375
  }>)[];
376
+ where: import("elics").ValuePredicate[];
236
377
  };
237
- manipluatedEntities: {
378
+ angularDampingOverrides: {
238
379
  required: (import("elics").Component<{
239
380
  state: {
240
381
  type: Types.Enum;
@@ -277,19 +418,496 @@ declare const PhysicsSystem_base: import("elics").SystemConstructor<{
277
418
  type: Types.Float64;
278
419
  default: number;
279
420
  };
421
+ _engineGravityFactor: {
422
+ type: Types.Float32;
423
+ default: number;
424
+ };
425
+ _engineLinearDamping: {
426
+ type: Types.Float32;
427
+ default: number;
428
+ };
429
+ _engineAngularDamping: {
430
+ type: Types.Float32;
431
+ default: number;
432
+ };
280
433
  }> | import("elics").Component<{
281
- force: {
434
+ shape: {
435
+ type: Types.Enum;
436
+ enum: {
437
+ readonly Sphere: "Sphere";
438
+ readonly Box: "Box";
439
+ readonly Cylinder: "Cylinder";
440
+ readonly Capsules: "Capsules";
441
+ readonly ConvexHull: "ConvexHull";
442
+ readonly TriMesh: "TriMesh";
443
+ readonly Auto: "Auto";
444
+ };
445
+ default: "Auto";
446
+ };
447
+ dimensions: {
282
448
  type: Types.Vec3;
283
449
  default: [number, number, number];
284
450
  };
285
- linearVelocity: {
451
+ density: {
452
+ type: Types.Float32;
453
+ default: number;
454
+ };
455
+ restitution: {
456
+ type: Types.Float32;
457
+ default: number;
458
+ };
459
+ friction: {
460
+ type: Types.Float32;
461
+ default: number;
462
+ };
463
+ _engineShape: {
464
+ type: Types.Float64;
465
+ default: number;
466
+ };
467
+ }>)[];
468
+ where: import("elics").ValuePredicate[];
469
+ };
470
+ }, import("../ecs/world.js").World, import("../ecs/system.js").System<{
471
+ gravity: {
472
+ type: Types.Vec3;
473
+ default: [number, number, number];
474
+ };
475
+ }, {
476
+ physicsEntities: {
477
+ required: (import("elics").Component<{
478
+ state: {
479
+ type: Types.Enum;
480
+ enum: {
481
+ readonly Static: "STATIC";
482
+ readonly Dynamic: "DYNAMIC";
483
+ readonly Kinematic: "KINEMATIC";
484
+ };
485
+ default: "DYNAMIC";
486
+ };
487
+ linearDamping: {
488
+ type: Types.Float32;
489
+ default: number;
490
+ };
491
+ angularDamping: {
492
+ type: Types.Float32;
493
+ default: number;
494
+ };
495
+ gravityFactor: {
496
+ type: Types.Float32;
497
+ default: number;
498
+ };
499
+ centerOfMass: {
286
500
  type: Types.Vec3;
287
501
  default: [number, number, number];
288
502
  };
289
- angularVelocity: {
503
+ _linearVelocity: {
504
+ type: Types.Vec3;
505
+ default: [number, number, number];
506
+ };
507
+ _angularVelocity: {
508
+ type: Types.Vec3;
509
+ default: [number, number, number];
510
+ };
511
+ _engineBody: {
512
+ type: Types.Float64;
513
+ default: number;
514
+ };
515
+ _engineOffset: {
516
+ type: Types.Float64;
517
+ default: number;
518
+ };
519
+ _engineGravityFactor: {
520
+ type: Types.Float32;
521
+ default: number;
522
+ };
523
+ _engineLinearDamping: {
524
+ type: Types.Float32;
525
+ default: number;
526
+ };
527
+ _engineAngularDamping: {
528
+ type: Types.Float32;
529
+ default: number;
530
+ };
531
+ }> | import("elics").Component<{
532
+ shape: {
533
+ type: Types.Enum;
534
+ enum: {
535
+ readonly Sphere: "Sphere";
536
+ readonly Box: "Box";
537
+ readonly Cylinder: "Cylinder";
538
+ readonly Capsules: "Capsules";
539
+ readonly ConvexHull: "ConvexHull";
540
+ readonly TriMesh: "TriMesh";
541
+ readonly Auto: "Auto";
542
+ };
543
+ default: "Auto";
544
+ };
545
+ dimensions: {
290
546
  type: Types.Vec3;
291
547
  default: [number, number, number];
292
548
  };
549
+ density: {
550
+ type: Types.Float32;
551
+ default: number;
552
+ };
553
+ restitution: {
554
+ type: Types.Float32;
555
+ default: number;
556
+ };
557
+ friction: {
558
+ type: Types.Float32;
559
+ default: number;
560
+ };
561
+ _engineShape: {
562
+ type: Types.Float64;
563
+ default: number;
564
+ };
565
+ }>)[];
566
+ };
567
+ manipluatedEntities: {
568
+ required: (import("elics").Component<{
569
+ state: {
570
+ type: Types.Enum;
571
+ enum: {
572
+ readonly Static: "STATIC";
573
+ readonly Dynamic: "DYNAMIC";
574
+ readonly Kinematic: "KINEMATIC";
575
+ };
576
+ default: "DYNAMIC";
577
+ };
578
+ linearDamping: {
579
+ type: Types.Float32;
580
+ default: number;
581
+ };
582
+ angularDamping: {
583
+ type: Types.Float32;
584
+ default: number;
585
+ };
586
+ gravityFactor: {
587
+ type: Types.Float32;
588
+ default: number;
589
+ };
590
+ centerOfMass: {
591
+ type: Types.Vec3;
592
+ default: [number, number, number];
593
+ };
594
+ _linearVelocity: {
595
+ type: Types.Vec3;
596
+ default: [number, number, number];
597
+ };
598
+ _angularVelocity: {
599
+ type: Types.Vec3;
600
+ default: [number, number, number];
601
+ };
602
+ _engineBody: {
603
+ type: Types.Float64;
604
+ default: number;
605
+ };
606
+ _engineOffset: {
607
+ type: Types.Float64;
608
+ default: number;
609
+ };
610
+ _engineGravityFactor: {
611
+ type: Types.Float32;
612
+ default: number;
613
+ };
614
+ _engineLinearDamping: {
615
+ type: Types.Float32;
616
+ default: number;
617
+ };
618
+ _engineAngularDamping: {
619
+ type: Types.Float32;
620
+ default: number;
621
+ };
622
+ }> | import("elics").Component<{
623
+ force: {
624
+ type: Types.Vec3;
625
+ default: [number, number, number];
626
+ };
627
+ linearVelocity: {
628
+ type: Types.Vec3;
629
+ default: [number, number, number];
630
+ };
631
+ angularVelocity: {
632
+ type: Types.Vec3;
633
+ default: [number, number, number];
634
+ };
635
+ }>)[];
636
+ where: import("elics").ValuePredicate[];
637
+ };
638
+ gravityOverrides: {
639
+ required: (import("elics").Component<{
640
+ state: {
641
+ type: Types.Enum;
642
+ enum: {
643
+ readonly Static: "STATIC";
644
+ readonly Dynamic: "DYNAMIC";
645
+ readonly Kinematic: "KINEMATIC";
646
+ };
647
+ default: "DYNAMIC";
648
+ };
649
+ linearDamping: {
650
+ type: Types.Float32;
651
+ default: number;
652
+ };
653
+ angularDamping: {
654
+ type: Types.Float32;
655
+ default: number;
656
+ };
657
+ gravityFactor: {
658
+ type: Types.Float32;
659
+ default: number;
660
+ };
661
+ centerOfMass: {
662
+ type: Types.Vec3;
663
+ default: [number, number, number];
664
+ };
665
+ _linearVelocity: {
666
+ type: Types.Vec3;
667
+ default: [number, number, number];
668
+ };
669
+ _angularVelocity: {
670
+ type: Types.Vec3;
671
+ default: [number, number, number];
672
+ };
673
+ _engineBody: {
674
+ type: Types.Float64;
675
+ default: number;
676
+ };
677
+ _engineOffset: {
678
+ type: Types.Float64;
679
+ default: number;
680
+ };
681
+ _engineGravityFactor: {
682
+ type: Types.Float32;
683
+ default: number;
684
+ };
685
+ _engineLinearDamping: {
686
+ type: Types.Float32;
687
+ default: number;
688
+ };
689
+ _engineAngularDamping: {
690
+ type: Types.Float32;
691
+ default: number;
692
+ };
693
+ }> | import("elics").Component<{
694
+ shape: {
695
+ type: Types.Enum;
696
+ enum: {
697
+ readonly Sphere: "Sphere";
698
+ readonly Box: "Box";
699
+ readonly Cylinder: "Cylinder";
700
+ readonly Capsules: "Capsules";
701
+ readonly ConvexHull: "ConvexHull";
702
+ readonly TriMesh: "TriMesh";
703
+ readonly Auto: "Auto";
704
+ };
705
+ default: "Auto";
706
+ };
707
+ dimensions: {
708
+ type: Types.Vec3;
709
+ default: [number, number, number];
710
+ };
711
+ density: {
712
+ type: Types.Float32;
713
+ default: number;
714
+ };
715
+ restitution: {
716
+ type: Types.Float32;
717
+ default: number;
718
+ };
719
+ friction: {
720
+ type: Types.Float32;
721
+ default: number;
722
+ };
723
+ _engineShape: {
724
+ type: Types.Float64;
725
+ default: number;
726
+ };
727
+ }>)[];
728
+ where: import("elics").ValuePredicate[];
729
+ };
730
+ linearDampingOverrides: {
731
+ required: (import("elics").Component<{
732
+ state: {
733
+ type: Types.Enum;
734
+ enum: {
735
+ readonly Static: "STATIC";
736
+ readonly Dynamic: "DYNAMIC";
737
+ readonly Kinematic: "KINEMATIC";
738
+ };
739
+ default: "DYNAMIC";
740
+ };
741
+ linearDamping: {
742
+ type: Types.Float32;
743
+ default: number;
744
+ };
745
+ angularDamping: {
746
+ type: Types.Float32;
747
+ default: number;
748
+ };
749
+ gravityFactor: {
750
+ type: Types.Float32;
751
+ default: number;
752
+ };
753
+ centerOfMass: {
754
+ type: Types.Vec3;
755
+ default: [number, number, number];
756
+ };
757
+ _linearVelocity: {
758
+ type: Types.Vec3;
759
+ default: [number, number, number];
760
+ };
761
+ _angularVelocity: {
762
+ type: Types.Vec3;
763
+ default: [number, number, number];
764
+ };
765
+ _engineBody: {
766
+ type: Types.Float64;
767
+ default: number;
768
+ };
769
+ _engineOffset: {
770
+ type: Types.Float64;
771
+ default: number;
772
+ };
773
+ _engineGravityFactor: {
774
+ type: Types.Float32;
775
+ default: number;
776
+ };
777
+ _engineLinearDamping: {
778
+ type: Types.Float32;
779
+ default: number;
780
+ };
781
+ _engineAngularDamping: {
782
+ type: Types.Float32;
783
+ default: number;
784
+ };
785
+ }> | import("elics").Component<{
786
+ shape: {
787
+ type: Types.Enum;
788
+ enum: {
789
+ readonly Sphere: "Sphere";
790
+ readonly Box: "Box";
791
+ readonly Cylinder: "Cylinder";
792
+ readonly Capsules: "Capsules";
793
+ readonly ConvexHull: "ConvexHull";
794
+ readonly TriMesh: "TriMesh";
795
+ readonly Auto: "Auto";
796
+ };
797
+ default: "Auto";
798
+ };
799
+ dimensions: {
800
+ type: Types.Vec3;
801
+ default: [number, number, number];
802
+ };
803
+ density: {
804
+ type: Types.Float32;
805
+ default: number;
806
+ };
807
+ restitution: {
808
+ type: Types.Float32;
809
+ default: number;
810
+ };
811
+ friction: {
812
+ type: Types.Float32;
813
+ default: number;
814
+ };
815
+ _engineShape: {
816
+ type: Types.Float64;
817
+ default: number;
818
+ };
819
+ }>)[];
820
+ where: import("elics").ValuePredicate[];
821
+ };
822
+ angularDampingOverrides: {
823
+ required: (import("elics").Component<{
824
+ state: {
825
+ type: Types.Enum;
826
+ enum: {
827
+ readonly Static: "STATIC";
828
+ readonly Dynamic: "DYNAMIC";
829
+ readonly Kinematic: "KINEMATIC";
830
+ };
831
+ default: "DYNAMIC";
832
+ };
833
+ linearDamping: {
834
+ type: Types.Float32;
835
+ default: number;
836
+ };
837
+ angularDamping: {
838
+ type: Types.Float32;
839
+ default: number;
840
+ };
841
+ gravityFactor: {
842
+ type: Types.Float32;
843
+ default: number;
844
+ };
845
+ centerOfMass: {
846
+ type: Types.Vec3;
847
+ default: [number, number, number];
848
+ };
849
+ _linearVelocity: {
850
+ type: Types.Vec3;
851
+ default: [number, number, number];
852
+ };
853
+ _angularVelocity: {
854
+ type: Types.Vec3;
855
+ default: [number, number, number];
856
+ };
857
+ _engineBody: {
858
+ type: Types.Float64;
859
+ default: number;
860
+ };
861
+ _engineOffset: {
862
+ type: Types.Float64;
863
+ default: number;
864
+ };
865
+ _engineGravityFactor: {
866
+ type: Types.Float32;
867
+ default: number;
868
+ };
869
+ _engineLinearDamping: {
870
+ type: Types.Float32;
871
+ default: number;
872
+ };
873
+ _engineAngularDamping: {
874
+ type: Types.Float32;
875
+ default: number;
876
+ };
877
+ }> | import("elics").Component<{
878
+ shape: {
879
+ type: Types.Enum;
880
+ enum: {
881
+ readonly Sphere: "Sphere";
882
+ readonly Box: "Box";
883
+ readonly Cylinder: "Cylinder";
884
+ readonly Capsules: "Capsules";
885
+ readonly ConvexHull: "ConvexHull";
886
+ readonly TriMesh: "TriMesh";
887
+ readonly Auto: "Auto";
888
+ };
889
+ default: "Auto";
890
+ };
891
+ dimensions: {
892
+ type: Types.Vec3;
893
+ default: [number, number, number];
894
+ };
895
+ density: {
896
+ type: Types.Float32;
897
+ default: number;
898
+ };
899
+ restitution: {
900
+ type: Types.Float32;
901
+ default: number;
902
+ };
903
+ friction: {
904
+ type: Types.Float32;
905
+ default: number;
906
+ };
907
+ _engineShape: {
908
+ type: Types.Float64;
909
+ default: number;
910
+ };
293
911
  }>)[];
294
912
  where: import("elics").ValuePredicate[];
295
913
  };
@@ -330,13 +948,88 @@ export declare class PhysicsSystem extends PhysicsSystem_base {
330
948
  private bodyBuffer?;
331
949
  private scaleBuffer;
332
950
  private matrixBuffer;
951
+ /**
952
+ * Cached Float32Array view over the entire Havok heap, reused across frames
953
+ * and bodies. Recreated only when the underlying ArrayBuffer changes (the
954
+ * WASM heap can grow and detach the old buffer), so per-body transform reads
955
+ * don't allocate a fresh typed-array view every frame.
956
+ */
957
+ private heapFloatView?;
958
+ /** Float32 view over the current Havok heap buffer (see {@link heapFloatView}). */
959
+ private getHeapFloatView;
333
960
  init(): Promise<void>;
961
+ /**
962
+ * Teleport an existing Havok body to `pose`.
963
+ *
964
+ * @remarks
965
+ * No-ops until the entity has a live {@link PhysicsBody}. The pose is pushed
966
+ * directly to Havok and mirrored onto `entity.object3D` immediately so callers
967
+ * do not need to wait for the next physics tick before reading the reset
968
+ * transform. Linear and angular velocity are cleared by default, which is the
969
+ * expected behavior for reset/home-position flows.
970
+ *
971
+ * @example Reset a fallen prop to its home pose
972
+ * ```ts
973
+ * const physics = world.getSystem(PhysicsSystem);
974
+ * physics.setBodyTransform(prop, {
975
+ * position: homePosition,
976
+ * quaternion: homeQuaternion,
977
+ * });
978
+ * ```
979
+ */
980
+ setBodyTransform(entity: Entity, pose: PhysicsBodyTransformPose, options?: PhysicsBodyTransformOptions): void;
981
+ /**
982
+ * Reset a body's gravityFactor / linearDamping / angularDamping to the engine
983
+ * default when its field returns to the default value. The entity then drops
984
+ * out of the override set, so {@link syncReactiveOverrides} no longer visits
985
+ * it — this is the one place that restores the default. The `hasComponent`
986
+ * guard distinguishes the value-returned-to-default case from the other
987
+ * disqualify cause (PhysicsBody/PhysicsShape removal), where the body is being
988
+ * released and must not be written to.
989
+ */
990
+ private subscribeReactiveOverrides;
334
991
  update(delta: number): void;
335
992
  private createBody;
993
+ /**
994
+ * Push post-creation gravityFactor / linearDamping / angularDamping edits to
995
+ * Havok. Only overridden bodies are visited (see the value-predicate queries
996
+ * in the system definition); each sync diffs the component value against the
997
+ * last-pushed shadow, so a body whose field is unchanged this frame costs only
998
+ * a typed-array compare.
999
+ */
1000
+ private syncReactiveOverrides;
1001
+ /**
1002
+ * Sync the entity's current {@link PhysicsBody.gravityFactor} onto its Havok
1003
+ * body. Diffs the component value against `_engineGravityFactor` (the last
1004
+ * value pushed) rather than reading back from Havok, so an unchanged body
1005
+ * costs only a typed-array compare — no WASM call and no allocation. The Havok
1006
+ * write and shadow update happen only on an actual change. No-op until the body
1007
+ * exists. See {@link gravityOverrides}.
1008
+ */
1009
+ private syncGravityFactor;
1010
+ /**
1011
+ * Sync the entity's current {@link PhysicsBody.linearDamping} onto its Havok
1012
+ * body. Diffs against `_engineLinearDamping` (the last value pushed) rather
1013
+ * than reading back from Havok, so an unchanged body costs only a typed-array
1014
+ * compare — no WASM call and no allocation. The Havok write and shadow update
1015
+ * happen only on an actual change. No-op until the body exists.
1016
+ * See {@link linearDampingOverrides}.
1017
+ */
1018
+ private syncLinearDamping;
1019
+ /**
1020
+ * Sync the entity's current {@link PhysicsBody.angularDamping} onto its Havok
1021
+ * body. Diffs against `_engineAngularDamping` (the last value pushed) rather
1022
+ * than reading back from Havok, so an unchanged body costs only a typed-array
1023
+ * compare — no WASM call and no allocation. The Havok write and shadow update
1024
+ * happen only on an actual change. No-op until the body exists.
1025
+ * See {@link angularDampingOverrides}.
1026
+ */
1027
+ private syncAngularDamping;
336
1028
  private createHavokShapes;
337
1029
  private createBallShape;
338
1030
  private createBoxShape;
339
1031
  private createCylinderShape;
1032
+ private createCapsuleShape;
340
1033
  private createConvexHullShape;
341
1034
  private createTriMeshShape;
342
1035
  private getVertices;