@iwsdk/core 0.1.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 (326) hide show
  1. package/LICENSE +21 -0
  2. package/dist/asset/asset-manager.d.ts +72 -0
  3. package/dist/asset/asset-manager.d.ts.map +1 -0
  4. package/dist/asset/asset-manager.js +138 -0
  5. package/dist/asset/asset-manager.js.map +1 -0
  6. package/dist/asset/cache-manager.d.ts +44 -0
  7. package/dist/asset/cache-manager.d.ts.map +1 -0
  8. package/dist/asset/cache-manager.js +80 -0
  9. package/dist/asset/cache-manager.js.map +1 -0
  10. package/dist/asset/index.d.ts +9 -0
  11. package/dist/asset/index.d.ts.map +1 -0
  12. package/dist/asset/loaders/audio-loader.d.ts +21 -0
  13. package/dist/asset/loaders/audio-loader.d.ts.map +1 -0
  14. package/dist/asset/loaders/audio-loader.js +57 -0
  15. package/dist/asset/loaders/audio-loader.js.map +1 -0
  16. package/dist/asset/loaders/gltf-loader.d.ts +33 -0
  17. package/dist/asset/loaders/gltf-loader.d.ts.map +1 -0
  18. package/dist/asset/loaders/gltf-loader.js +79 -0
  19. package/dist/asset/loaders/gltf-loader.js.map +1 -0
  20. package/dist/asset/loaders/hdr-texture-loader.d.ts +18 -0
  21. package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -0
  22. package/dist/asset/loaders/hdr-texture-loader.js +65 -0
  23. package/dist/asset/loaders/hdr-texture-loader.js.map +1 -0
  24. package/dist/asset/loaders/texture-loader.d.ts +21 -0
  25. package/dist/asset/loaders/texture-loader.d.ts.map +1 -0
  26. package/dist/asset/loaders/texture-loader.js +57 -0
  27. package/dist/asset/loaders/texture-loader.js.map +1 -0
  28. package/dist/audio/audio-pool.d.ts +59 -0
  29. package/dist/audio/audio-pool.d.ts.map +1 -0
  30. package/dist/audio/audio-pool.js +105 -0
  31. package/dist/audio/audio-pool.js.map +1 -0
  32. package/dist/audio/audio-system.d.ts +326 -0
  33. package/dist/audio/audio-system.d.ts.map +1 -0
  34. package/dist/audio/audio-system.js +478 -0
  35. package/dist/audio/audio-system.js.map +1 -0
  36. package/dist/audio/audio-utils.d.ts +71 -0
  37. package/dist/audio/audio-utils.d.ts.map +1 -0
  38. package/dist/audio/audio-utils.js +145 -0
  39. package/dist/audio/audio-utils.js.map +1 -0
  40. package/dist/audio/audio.d.ts +178 -0
  41. package/dist/audio/audio.d.ts.map +1 -0
  42. package/dist/audio/audio.js +104 -0
  43. package/dist/audio/audio.js.map +1 -0
  44. package/dist/audio/index.d.ts +11 -0
  45. package/dist/audio/index.d.ts.map +1 -0
  46. package/dist/ecs/component-registry.d.ts +54 -0
  47. package/dist/ecs/component-registry.d.ts.map +1 -0
  48. package/dist/ecs/component-registry.js +86 -0
  49. package/dist/ecs/component-registry.js.map +1 -0
  50. package/dist/ecs/component.d.ts +12 -0
  51. package/dist/ecs/component.d.ts.map +1 -0
  52. package/dist/ecs/entity.d.ts +17 -0
  53. package/dist/ecs/entity.d.ts.map +1 -0
  54. package/dist/ecs/entity.js +13 -0
  55. package/dist/ecs/entity.js.map +1 -0
  56. package/dist/ecs/index.d.ts +12 -0
  57. package/dist/ecs/index.d.ts.map +1 -0
  58. package/dist/ecs/system.d.ts +70 -0
  59. package/dist/ecs/system.d.ts.map +1 -0
  60. package/dist/ecs/system.js +79 -0
  61. package/dist/ecs/system.js.map +1 -0
  62. package/dist/ecs/world.d.ts +101 -0
  63. package/dist/ecs/world.d.ts.map +1 -0
  64. package/dist/ecs/world.js +165 -0
  65. package/dist/ecs/world.js.map +1 -0
  66. package/dist/environment/dome-gradient.d.ts +39 -0
  67. package/dist/environment/dome-gradient.d.ts.map +1 -0
  68. package/dist/environment/dome-gradient.js +30 -0
  69. package/dist/environment/dome-gradient.js.map +1 -0
  70. package/dist/environment/dome-texture.d.ts +39 -0
  71. package/dist/environment/dome-texture.d.ts.map +1 -0
  72. package/dist/environment/dome-texture.js +30 -0
  73. package/dist/environment/dome-texture.js.map +1 -0
  74. package/dist/environment/environment-system.d.ts +82 -0
  75. package/dist/environment/environment-system.d.ts.map +1 -0
  76. package/dist/environment/environment-system.js +389 -0
  77. package/dist/environment/environment-system.js.map +1 -0
  78. package/dist/environment/gradient-environment.d.ts +37 -0
  79. package/dist/environment/gradient-environment.d.ts.map +1 -0
  80. package/dist/environment/gradient-environment.js +99 -0
  81. package/dist/environment/gradient-environment.js.map +1 -0
  82. package/dist/environment/ibl-gradient.d.ts +38 -0
  83. package/dist/environment/ibl-gradient.d.ts.map +1 -0
  84. package/dist/environment/ibl-gradient.js +29 -0
  85. package/dist/environment/ibl-gradient.js.map +1 -0
  86. package/dist/environment/ibl-texture.d.ts +36 -0
  87. package/dist/environment/ibl-texture.d.ts.map +1 -0
  88. package/dist/environment/ibl-texture.js +30 -0
  89. package/dist/environment/ibl-texture.js.map +1 -0
  90. package/dist/environment/index.d.ts +12 -0
  91. package/dist/environment/index.d.ts.map +1 -0
  92. package/dist/grab/distance-grabbable.d.ts +115 -0
  93. package/dist/grab/distance-grabbable.d.ts.map +1 -0
  94. package/dist/grab/distance-grabbable.js +102 -0
  95. package/dist/grab/distance-grabbable.js.map +1 -0
  96. package/dist/grab/grab-system.d.ts +320 -0
  97. package/dist/grab/grab-system.d.ts.map +1 -0
  98. package/dist/grab/grab-system.js +239 -0
  99. package/dist/grab/grab-system.js.map +1 -0
  100. package/dist/grab/handles.d.ts +43 -0
  101. package/dist/grab/handles.d.ts.map +1 -0
  102. package/dist/grab/handles.js +132 -0
  103. package/dist/grab/handles.js.map +1 -0
  104. package/dist/grab/index.d.ts +13 -0
  105. package/dist/grab/index.d.ts.map +1 -0
  106. package/dist/grab/index.js +23 -0
  107. package/dist/grab/index.js.map +1 -0
  108. package/dist/grab/one-hand-grabbable.d.ts +80 -0
  109. package/dist/grab/one-hand-grabbable.d.ts.map +1 -0
  110. package/dist/grab/one-hand-grabbable.js +80 -0
  111. package/dist/grab/one-hand-grabbable.js.map +1 -0
  112. package/dist/grab/pointer-events-patch.d.ts +16 -0
  113. package/dist/grab/pointer-events-patch.d.ts.map +1 -0
  114. package/dist/grab/pointer-events-patch.js +223 -0
  115. package/dist/grab/pointer-events-patch.js.map +1 -0
  116. package/dist/grab/two-hands-grabbable.d.ts +103 -0
  117. package/dist/grab/two-hands-grabbable.d.ts.map +1 -0
  118. package/dist/grab/two-hands-grabbable.js +100 -0
  119. package/dist/grab/two-hands-grabbable.js.map +1 -0
  120. package/dist/index.d.ts +27 -0
  121. package/dist/index.d.ts.map +1 -0
  122. package/dist/index.js +82 -0
  123. package/dist/index.js.map +1 -0
  124. package/dist/init/index.d.ts +9 -0
  125. package/dist/init/index.d.ts.map +1 -0
  126. package/dist/init/world-initializer.d.ts +76 -0
  127. package/dist/init/world-initializer.d.ts.map +1 -0
  128. package/dist/init/world-initializer.js +403 -0
  129. package/dist/init/world-initializer.js.map +1 -0
  130. package/dist/init/xr.d.ts +87 -0
  131. package/dist/init/xr.d.ts.map +1 -0
  132. package/dist/init/xr.js +193 -0
  133. package/dist/init/xr.js.map +1 -0
  134. package/dist/input/index.d.ts +9 -0
  135. package/dist/input/index.d.ts.map +1 -0
  136. package/dist/input/input-system.d.ts +52 -0
  137. package/dist/input/input-system.d.ts.map +1 -0
  138. package/dist/input/input-system.js +176 -0
  139. package/dist/input/input-system.js.map +1 -0
  140. package/dist/input/state-tags.d.ts +56 -0
  141. package/dist/input/state-tags.d.ts.map +1 -0
  142. package/dist/input/state-tags.js +63 -0
  143. package/dist/input/state-tags.js.map +1 -0
  144. package/dist/level/index.d.ts +12 -0
  145. package/dist/level/index.d.ts.map +1 -0
  146. package/dist/level/level-entity-creator.d.ts +27 -0
  147. package/dist/level/level-entity-creator.d.ts.map +1 -0
  148. package/dist/level/level-entity-creator.js +110 -0
  149. package/dist/level/level-entity-creator.js.map +1 -0
  150. package/dist/level/level-glxf-importer.d.ts +22 -0
  151. package/dist/level/level-glxf-importer.d.ts.map +1 -0
  152. package/dist/level/level-glxf-importer.js +40 -0
  153. package/dist/level/level-glxf-importer.js.map +1 -0
  154. package/dist/level/level-root.d.ts +18 -0
  155. package/dist/level/level-root.d.ts.map +1 -0
  156. package/dist/level/level-root.js +25 -0
  157. package/dist/level/level-root.js.map +1 -0
  158. package/dist/level/level-system.d.ts +54 -0
  159. package/dist/level/level-system.d.ts.map +1 -0
  160. package/dist/level/level-system.js +134 -0
  161. package/dist/level/level-system.js.map +1 -0
  162. package/dist/level/level-tag.d.ts +25 -0
  163. package/dist/level/level-tag.d.ts.map +1 -0
  164. package/dist/level/level-tag.js +28 -0
  165. package/dist/level/level-tag.js.map +1 -0
  166. package/dist/locomotion/geometries/beveled-cylinder.d.ts +12 -0
  167. package/dist/locomotion/geometries/beveled-cylinder.d.ts.map +1 -0
  168. package/dist/locomotion/geometries/beveled-cylinder.js +64 -0
  169. package/dist/locomotion/geometries/beveled-cylinder.js.map +1 -0
  170. package/dist/locomotion/index.d.ts +11 -0
  171. package/dist/locomotion/index.d.ts.map +1 -0
  172. package/dist/locomotion/locomotion.d.ts +239 -0
  173. package/dist/locomotion/locomotion.d.ts.map +1 -0
  174. package/dist/locomotion/locomotion.js +256 -0
  175. package/dist/locomotion/locomotion.js.map +1 -0
  176. package/dist/locomotion/materials/line.d.ts +24 -0
  177. package/dist/locomotion/materials/line.d.ts.map +1 -0
  178. package/dist/locomotion/materials/line.js +307 -0
  179. package/dist/locomotion/materials/line.js.map +1 -0
  180. package/dist/locomotion/slide.d.ts +76 -0
  181. package/dist/locomotion/slide.d.ts.map +1 -0
  182. package/dist/locomotion/slide.js +131 -0
  183. package/dist/locomotion/slide.js.map +1 -0
  184. package/dist/locomotion/teleport.d.ts +68 -0
  185. package/dist/locomotion/teleport.d.ts.map +1 -0
  186. package/dist/locomotion/teleport.js +150 -0
  187. package/dist/locomotion/teleport.js.map +1 -0
  188. package/dist/locomotion/turn.d.ts +77 -0
  189. package/dist/locomotion/turn.d.ts.map +1 -0
  190. package/dist/locomotion/turn.js +126 -0
  191. package/dist/locomotion/turn.js.map +1 -0
  192. package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/index.js +13 -0
  193. package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/index.js.map +1 -0
  194. package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/interpreter/index.js +154 -0
  195. package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/interpreter/index.js.map +1 -0
  196. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js +66 -0
  197. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js.map +1 -0
  198. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js +162 -0
  199. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js.map +1 -0
  200. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js +519 -0
  201. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js.map +1 -0
  202. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js +15 -0
  203. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js.map +1 -0
  204. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js +32 -0
  205. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js.map +1 -0
  206. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js +10 -0
  207. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js.map +1 -0
  208. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js +41 -0
  209. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js.map +1 -0
  210. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js +35 -0
  211. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js.map +1 -0
  212. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js +24 -0
  213. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js.map +1 -0
  214. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js +92 -0
  215. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js.map +1 -0
  216. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js +382 -0
  217. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js.map +1 -0
  218. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js +2587 -0
  219. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js.map +1 -0
  220. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js +477 -0
  221. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js.map +1 -0
  222. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js +17 -0
  223. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js.map +1 -0
  224. package/dist/physics/index.d.ts +11 -0
  225. package/dist/physics/index.d.ts.map +1 -0
  226. package/dist/physics/physics-system.d.ts +314 -0
  227. package/dist/physics/physics-system.d.ts.map +1 -0
  228. package/dist/physics/physics-system.js +419 -0
  229. package/dist/physics/physics-system.js.map +1 -0
  230. package/dist/physics/physicsBody.d.ts +83 -0
  231. package/dist/physics/physicsBody.d.ts.map +1 -0
  232. package/dist/physics/physicsBody.js +60 -0
  233. package/dist/physics/physicsBody.js.map +1 -0
  234. package/dist/physics/physicsManipulation.d.ts +51 -0
  235. package/dist/physics/physicsManipulation.d.ts.map +1 -0
  236. package/dist/physics/physicsManipulation.js +46 -0
  237. package/dist/physics/physicsManipulation.js.map +1 -0
  238. package/dist/physics/physicsShape.d.ts +133 -0
  239. package/dist/physics/physicsShape.d.ts.map +1 -0
  240. package/dist/physics/physicsShape.js +97 -0
  241. package/dist/physics/physicsShape.js.map +1 -0
  242. package/dist/physics/utils.d.ts +21 -0
  243. package/dist/physics/utils.d.ts.map +1 -0
  244. package/dist/physics/utils.js +130 -0
  245. package/dist/physics/utils.js.map +1 -0
  246. package/dist/runtime/index.d.ts +8 -0
  247. package/dist/runtime/index.d.ts.map +1 -0
  248. package/dist/runtime/three.d.ts +8 -0
  249. package/dist/runtime/three.d.ts.map +1 -0
  250. package/dist/runtime/three.js +18 -0
  251. package/dist/runtime/three.js.map +1 -0
  252. package/dist/scene-understanding/anchor.d.ts +42 -0
  253. package/dist/scene-understanding/anchor.d.ts.map +1 -0
  254. package/dist/scene-understanding/anchor.js +45 -0
  255. package/dist/scene-understanding/anchor.js.map +1 -0
  256. package/dist/scene-understanding/index.d.ts +11 -0
  257. package/dist/scene-understanding/index.d.ts.map +1 -0
  258. package/dist/scene-understanding/mesh.d.ts +67 -0
  259. package/dist/scene-understanding/mesh.d.ts.map +1 -0
  260. package/dist/scene-understanding/mesh.js +55 -0
  261. package/dist/scene-understanding/mesh.js.map +1 -0
  262. package/dist/scene-understanding/plane.d.ts +39 -0
  263. package/dist/scene-understanding/plane.d.ts.map +1 -0
  264. package/dist/scene-understanding/plane.js +42 -0
  265. package/dist/scene-understanding/plane.js.map +1 -0
  266. package/dist/scene-understanding/scene-understanding-system.d.ts +180 -0
  267. package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -0
  268. package/dist/scene-understanding/scene-understanding-system.js +342 -0
  269. package/dist/scene-understanding/scene-understanding-system.js.map +1 -0
  270. package/dist/transform/index.d.ts +10 -0
  271. package/dist/transform/index.d.ts.map +1 -0
  272. package/dist/transform/synced-quaternion.d.ts +35 -0
  273. package/dist/transform/synced-quaternion.d.ts.map +1 -0
  274. package/dist/transform/synced-quaternion.js +128 -0
  275. package/dist/transform/synced-quaternion.js.map +1 -0
  276. package/dist/transform/synced-vector3.d.ts +34 -0
  277. package/dist/transform/synced-vector3.d.ts.map +1 -0
  278. package/dist/transform/synced-vector3.js +106 -0
  279. package/dist/transform/synced-vector3.js.map +1 -0
  280. package/dist/transform/transform.d.ts +100 -0
  281. package/dist/transform/transform.d.ts.map +1 -0
  282. package/dist/transform/transform.js +194 -0
  283. package/dist/transform/transform.js.map +1 -0
  284. package/dist/types/webxr-augmentations.d.ts +23 -0
  285. package/dist/types/webxr-augmentations.d.ts.map +1 -0
  286. package/dist/ui/document.d.ts +112 -0
  287. package/dist/ui/document.d.ts.map +1 -0
  288. package/dist/ui/document.js +298 -0
  289. package/dist/ui/document.js.map +1 -0
  290. package/dist/ui/follow.d.ts +197 -0
  291. package/dist/ui/follow.d.ts.map +1 -0
  292. package/dist/ui/follow.js +143 -0
  293. package/dist/ui/follow.js.map +1 -0
  294. package/dist/ui/index.d.ts +18 -0
  295. package/dist/ui/index.d.ts.map +1 -0
  296. package/dist/ui/screenspace.d.ts +219 -0
  297. package/dist/ui/screenspace.d.ts.map +1 -0
  298. package/dist/ui/screenspace.js +215 -0
  299. package/dist/ui/screenspace.js.map +1 -0
  300. package/dist/ui/ui.d.ts +209 -0
  301. package/dist/ui/ui.d.ts.map +1 -0
  302. package/dist/ui/ui.js +185 -0
  303. package/dist/ui/ui.js.map +1 -0
  304. package/dist/vendor/basis/README.md +46 -0
  305. package/dist/vendor/basis/basis_transcoder.js +19 -0
  306. package/dist/vendor/basis/basis_transcoder.wasm +0 -0
  307. package/dist/vendor/draco/README.md +32 -0
  308. package/dist/vendor/draco/draco_decoder.js +34 -0
  309. package/dist/vendor/draco/draco_decoder.wasm +0 -0
  310. package/dist/vendor/draco/draco_encoder.js +33 -0
  311. package/dist/vendor/draco/draco_wasm_wrapper.js +117 -0
  312. package/dist/vendor/draco/gltf/draco_decoder.js +33 -0
  313. package/dist/vendor/draco/gltf/draco_decoder.wasm +0 -0
  314. package/dist/vendor/draco/gltf/draco_encoder.js +33 -0
  315. package/dist/vendor/draco/gltf/draco_wasm_wrapper.js +116 -0
  316. package/dist/version.d.ts +2 -0
  317. package/dist/version.d.ts.map +1 -0
  318. package/dist/version.js +4 -0
  319. package/dist/version.js.map +1 -0
  320. package/dist/visibility/index.d.ts +8 -0
  321. package/dist/visibility/index.d.ts.map +1 -0
  322. package/dist/visibility/visibility.d.ts +37 -0
  323. package/dist/visibility/visibility.d.ts.map +1 -0
  324. package/dist/visibility/visibility.js +52 -0
  325. package/dist/visibility/visibility.js.map +1 -0
  326. package/package.json +46 -0
@@ -0,0 +1,239 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { InputComponent } from '@iwsdk/xr-input';
8
+ import { Types } from '../ecs/component.js';
9
+ import { TurningMethod } from './turn.js';
10
+ /**
11
+ * Marks an entity's object3D hierarchy as walkable environment for the locomotion engine.
12
+ *
13
+ * @remarks
14
+ * - Set {@link EnvironmentType} to `STATIC` for fixed geometry (merged once) or `KINEMATIC` for moving platforms
15
+ * (matrices streamed each frame via {@link LocomotionSystem.update}).
16
+ * - Attach this component to the environment root you want the player to stand on.
17
+ *
18
+ * @category Locomotion
19
+ * @example
20
+ * ```ts
21
+ * const floor = world.createTransformEntity(gltf.scene);
22
+ * floor.addComponent(LocomotionEnvironment, { type: EnvironmentType.STATIC });
23
+ * ```
24
+ */
25
+ export declare const LocomotionEnvironment: import("elics").Component<{
26
+ type: {
27
+ type: Types.Enum;
28
+ enum: {
29
+ readonly STATIC: "static";
30
+ readonly KINEMATIC: "kinematic";
31
+ };
32
+ default: "static";
33
+ };
34
+ _envHandle: {
35
+ type: Types.Float32;
36
+ default: number;
37
+ };
38
+ _initialized: {
39
+ type: Types.Boolean;
40
+ default: false;
41
+ };
42
+ }>;
43
+ declare const LocomotionSystem_base: import("elics").SystemConstructor<{
44
+ /** Starting player position before the first update. */
45
+ initialPlayerPosition: {
46
+ type: Types.Vec3;
47
+ default: [number, number, number];
48
+ };
49
+ /** Run the locomotion engine in a WebWorker for better main‑thread perf. */
50
+ useWorker: {
51
+ type: Types.Boolean;
52
+ default: true;
53
+ };
54
+ /** Comfort vignette strength forwarded to SlideSystem. */
55
+ comfortAssist: {
56
+ type: Types.Float32;
57
+ default: number;
58
+ };
59
+ /** Maximum sliding speed (m/s). */
60
+ slidingSpeed: {
61
+ type: Types.Float32;
62
+ default: number;
63
+ };
64
+ /** Turning mode: snap vs smooth. */
65
+ turningMethod: {
66
+ type: Types.Int8;
67
+ default: TurningMethod;
68
+ };
69
+ /** Degrees per snap turn. */
70
+ turningAngle: {
71
+ type: Types.Float32;
72
+ default: number;
73
+ };
74
+ /** Degrees per second for smooth turning. */
75
+ turningSpeed: {
76
+ type: Types.Float32;
77
+ default: number;
78
+ };
79
+ /** Parabolic ray gravity for teleport guide (negative). */
80
+ rayGravity: {
81
+ type: Types.Float32;
82
+ default: number;
83
+ };
84
+ /** Max drop allowed when projecting the player onto walkable surfaces. */
85
+ maxDropDistance: {
86
+ type: Types.Float32;
87
+ default: number;
88
+ };
89
+ /** Jump apex height in meters. */
90
+ jumpHeight: {
91
+ type: Types.Float32;
92
+ default: number;
93
+ };
94
+ /** Minimum seconds between jumps. */
95
+ jumpCooldown: {
96
+ type: Types.Float32;
97
+ default: number;
98
+ };
99
+ /** Button used to jump in SlideSystem. */
100
+ jumpButton: {
101
+ type: Types.String;
102
+ default: InputComponent;
103
+ };
104
+ }, {
105
+ envs: {
106
+ required: import("elics").Component<{
107
+ type: {
108
+ type: Types.Enum;
109
+ enum: {
110
+ readonly STATIC: "static";
111
+ readonly KINEMATIC: "kinematic";
112
+ };
113
+ default: "static";
114
+ };
115
+ _envHandle: {
116
+ type: Types.Float32;
117
+ default: number;
118
+ };
119
+ _initialized: {
120
+ type: Types.Boolean;
121
+ default: false;
122
+ };
123
+ }>[];
124
+ };
125
+ }, import("../index.js").World, import("../ecs/system.js").System<{
126
+ /** Starting player position before the first update. */
127
+ initialPlayerPosition: {
128
+ type: Types.Vec3;
129
+ default: [number, number, number];
130
+ };
131
+ /** Run the locomotion engine in a WebWorker for better main‑thread perf. */
132
+ useWorker: {
133
+ type: Types.Boolean;
134
+ default: true;
135
+ };
136
+ /** Comfort vignette strength forwarded to SlideSystem. */
137
+ comfortAssist: {
138
+ type: Types.Float32;
139
+ default: number;
140
+ };
141
+ /** Maximum sliding speed (m/s). */
142
+ slidingSpeed: {
143
+ type: Types.Float32;
144
+ default: number;
145
+ };
146
+ /** Turning mode: snap vs smooth. */
147
+ turningMethod: {
148
+ type: Types.Int8;
149
+ default: TurningMethod;
150
+ };
151
+ /** Degrees per snap turn. */
152
+ turningAngle: {
153
+ type: Types.Float32;
154
+ default: number;
155
+ };
156
+ /** Degrees per second for smooth turning. */
157
+ turningSpeed: {
158
+ type: Types.Float32;
159
+ default: number;
160
+ };
161
+ /** Parabolic ray gravity for teleport guide (negative). */
162
+ rayGravity: {
163
+ type: Types.Float32;
164
+ default: number;
165
+ };
166
+ /** Max drop allowed when projecting the player onto walkable surfaces. */
167
+ maxDropDistance: {
168
+ type: Types.Float32;
169
+ default: number;
170
+ };
171
+ /** Jump apex height in meters. */
172
+ jumpHeight: {
173
+ type: Types.Float32;
174
+ default: number;
175
+ };
176
+ /** Minimum seconds between jumps. */
177
+ jumpCooldown: {
178
+ type: Types.Float32;
179
+ default: number;
180
+ };
181
+ /** Button used to jump in SlideSystem. */
182
+ jumpButton: {
183
+ type: Types.String;
184
+ default: InputComponent;
185
+ };
186
+ }, {
187
+ envs: {
188
+ required: import("elics").Component<{
189
+ type: {
190
+ type: Types.Enum;
191
+ enum: {
192
+ readonly STATIC: "static";
193
+ readonly KINEMATIC: "kinematic";
194
+ };
195
+ default: "static";
196
+ };
197
+ _envHandle: {
198
+ type: Types.Float32;
199
+ default: number;
200
+ };
201
+ _initialized: {
202
+ type: Types.Boolean;
203
+ default: false;
204
+ };
205
+ }>[];
206
+ };
207
+ }>>;
208
+ /**
209
+ * Physics‑driven locomotion (slide, teleport, turn) backed by the {@link @iwsdk/locomotor!Locomotor} engine.
210
+ *
211
+ * @remarks
212
+ * - Enable this system via {@link WorldOptions.features.enableLocomotion}.
213
+ * - Add {@link LocomotionEnvironment} to level meshes to make them walkable.
214
+ * - For moving platforms, use `EnvironmentType.KINEMATIC` and keep transforms updated.
215
+ * - In hand‑tracking mode, micro‑gesture controls can toggle turn/teleport using swipe gestures.
216
+ *
217
+ * @category Locomotion
218
+ * @example
219
+ * ```ts
220
+ * world.registerSystem(LocomotionSystem, {
221
+ * configData: { turningAngle: 45, slidingSpeed: 4.5 }
222
+ * });
223
+ * ```
224
+ */
225
+ export declare class LocomotionSystem extends LocomotionSystem_base {
226
+ private locomotor;
227
+ private teleportSystem?;
228
+ private slideSystem?;
229
+ private turnSystem;
230
+ private microGestureControlsEnabled;
231
+ init(): void;
232
+ private initLocomotor;
233
+ private addEnvironmentToEngine;
234
+ private removeEnvironmentFromEngine;
235
+ update(delta: number): void;
236
+ destroy(): void;
237
+ }
238
+ export {};
239
+ //# sourceMappingURL=locomotion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locomotion.d.ts","sourceRoot":"","sources":["../../src/locomotion/locomotion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAmB,MAAM,qBAAqB,CAAC;AAM7D,OAAO,EAAc,aAAa,EAAE,MAAM,WAAW,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;EAYjC,CAAC;;IAwBE,wDAAwD;;;;;IAExD,4EAA4E;;;;;IAE5E,0DAA0D;;;;;IAE1D,mCAAmC;;;;;IAEnC,oCAAoC;;;;;IAEpC,6BAA6B;;;;;IAE7B,6CAA6C;;;;;IAE7C,2DAA2D;;;;;IAE3D,0EAA0E;;;;;IAE1E,kCAAkC;;;;;IAElC,qCAAqC;;;;;IAErC,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;IAtB1C,wDAAwD;;;;;IAExD,4EAA4E;;;;;IAE5E,0DAA0D;;;;;IAE1D,mCAAmC;;;;;IAEnC,oCAAoC;;;;;IAEpC,6BAA6B;;;;;IAE7B,6CAA6C;;;;;IAE7C,2DAA2D;;;;;IAE3D,0EAA0E;;;;;IAE1E,kCAAkC;;;;;IAElC,qCAAqC;;;;;IAErC,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;AA5C9C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAiB,SAAQ,qBA8BrC;IACC,OAAO,CAAC,SAAS,CAAa;IAE9B,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,2BAA2B,CAAS;IAE5C,IAAI;YA8DU,aAAa;IA0C3B,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,2BAA2B;IASnC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAmC3B,OAAO,IAAI,IAAI;CAchB"}
@@ -0,0 +1,256 @@
1
+ import { EnvironmentType, Locomotor } from '@iwsdk/locomotor';
2
+ import { InputComponent } from '@iwsdk/xr-input';
3
+ import { createComponent, Types } from 'elics';
4
+ import { createSystem } from '../ecs/system.js';
5
+ import '../runtime/three.js';
6
+ import { SlideSystem } from './slide.js';
7
+ import { TeleportSystem } from './teleport.js';
8
+ import { TurningMethod, TurnSystem } from './turn.js';
9
+ import { Vector3 } from 'three';
10
+
11
+ /**
12
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
13
+ *
14
+ * This source code is licensed under the MIT license found in the
15
+ * LICENSE file in the root directory of this source tree.
16
+ */
17
+ /**
18
+ * Marks an entity's object3D hierarchy as walkable environment for the locomotion engine.
19
+ *
20
+ * @remarks
21
+ * - Set {@link EnvironmentType} to `STATIC` for fixed geometry (merged once) or `KINEMATIC` for moving platforms
22
+ * (matrices streamed each frame via {@link LocomotionSystem.update}).
23
+ * - Attach this component to the environment root you want the player to stand on.
24
+ *
25
+ * @category Locomotion
26
+ * @example
27
+ * ```ts
28
+ * const floor = world.createTransformEntity(gltf.scene);
29
+ * floor.addComponent(LocomotionEnvironment, { type: EnvironmentType.STATIC });
30
+ * ```
31
+ */
32
+ const LocomotionEnvironment = createComponent('LocomotionEnvironment', {
33
+ type: {
34
+ type: Types.Enum,
35
+ enum: EnvironmentType,
36
+ default: EnvironmentType.STATIC,
37
+ }, // STATIC for fixed meshes, KINEMATIC for moving platforms
38
+ _envHandle: { type: Types.Float32, default: 0 }, // Engine handle for this environment (internal)
39
+ _initialized: { type: Types.Boolean, default: false }, // True after registration with Locomotor
40
+ }, 'Locomotion environment component that holds the environment mesh group');
41
+ /**
42
+ * Physics‑driven locomotion (slide, teleport, turn) backed by the {@link @iwsdk/locomotor!Locomotor} engine.
43
+ *
44
+ * @remarks
45
+ * - Enable this system via {@link WorldOptions.features.enableLocomotion}.
46
+ * - Add {@link LocomotionEnvironment} to level meshes to make them walkable.
47
+ * - For moving platforms, use `EnvironmentType.KINEMATIC` and keep transforms updated.
48
+ * - In hand‑tracking mode, micro‑gesture controls can toggle turn/teleport using swipe gestures.
49
+ *
50
+ * @category Locomotion
51
+ * @example
52
+ * ```ts
53
+ * world.registerSystem(LocomotionSystem, {
54
+ * configData: { turningAngle: 45, slidingSpeed: 4.5 }
55
+ * });
56
+ * ```
57
+ */
58
+ class LocomotionSystem extends createSystem({
59
+ envs: { required: [LocomotionEnvironment] },
60
+ }, {
61
+ /** Starting player position before the first update. */
62
+ initialPlayerPosition: { type: Types.Vec3, default: [0, 0, 0] },
63
+ /** Run the locomotion engine in a WebWorker for better main‑thread perf. */
64
+ useWorker: { type: Types.Boolean, default: true },
65
+ /** Comfort vignette strength forwarded to SlideSystem. */
66
+ comfortAssist: { type: Types.Float32, default: 0.5 },
67
+ /** Maximum sliding speed (m/s). */
68
+ slidingSpeed: { type: Types.Float32, default: 5 },
69
+ /** Turning mode: snap vs smooth. */
70
+ turningMethod: { type: Types.Int8, default: TurningMethod.SnapTurn },
71
+ /** Degrees per snap turn. */
72
+ turningAngle: { type: Types.Float32, default: 45 },
73
+ /** Degrees per second for smooth turning. */
74
+ turningSpeed: { type: Types.Float32, default: 180 },
75
+ /** Parabolic ray gravity for teleport guide (negative). */
76
+ rayGravity: { type: Types.Float32, default: -0.4 },
77
+ /** Max drop allowed when projecting the player onto walkable surfaces. */
78
+ maxDropDistance: { type: Types.Float32, default: 5.0 },
79
+ /** Jump apex height in meters. */
80
+ jumpHeight: { type: Types.Float32, default: 1.5 },
81
+ /** Minimum seconds between jumps. */
82
+ jumpCooldown: { type: Types.Float32, default: 0.1 },
83
+ /** Button used to jump in SlideSystem. */
84
+ jumpButton: { type: Types.String, default: InputComponent.A_Button },
85
+ }) {
86
+ constructor() {
87
+ super(...arguments);
88
+ this.microGestureControlsEnabled = false;
89
+ }
90
+ init() {
91
+ this.world.registerSystem(TurnSystem, {
92
+ configData: {
93
+ turningMethod: this.config.turningMethod.value,
94
+ turningAngle: this.config.turningAngle.value,
95
+ turningSpeed: this.config.turningSpeed.value,
96
+ microGestureControlsEnabled: false,
97
+ },
98
+ });
99
+ this.turnSystem = this.world.getSystem(TurnSystem);
100
+ this.initLocomotor().then(() => {
101
+ this.cleanupFuncs.push(this.config.rayGravity.subscribe((value) => {
102
+ this.locomotor.updateConfig({ rayGravity: value });
103
+ if (this.teleportSystem) {
104
+ this.teleportSystem.config.rayGravity.value = value;
105
+ }
106
+ }), this.config.slidingSpeed.subscribe((value) => {
107
+ if (this.slideSystem) {
108
+ this.slideSystem.config.maxSpeed.value = value;
109
+ }
110
+ }), this.config.comfortAssist.subscribe((value) => {
111
+ if (this.slideSystem) {
112
+ this.slideSystem.config.comfortAssist.value = value;
113
+ }
114
+ }), this.config.turningMethod.subscribe((value) => {
115
+ this.turnSystem.config.turningMethod.value = value;
116
+ }), this.config.turningAngle.subscribe((value) => {
117
+ this.turnSystem.config.turningAngle.value = value;
118
+ }), this.config.turningSpeed.subscribe((value) => {
119
+ this.turnSystem.config.turningSpeed.value = value;
120
+ }), this.config.maxDropDistance.subscribe((value) => {
121
+ this.locomotor.updateConfig({ maxDropDistance: value });
122
+ }), this.config.jumpHeight.subscribe((value) => {
123
+ this.locomotor.updateConfig({ jumpHeight: value });
124
+ }), this.config.jumpCooldown.subscribe((value) => {
125
+ this.locomotor.updateConfig({ jumpCooldown: value });
126
+ }), this.config.jumpButton.subscribe((value) => {
127
+ if (this.slideSystem) {
128
+ this.slideSystem.config.jumpButton.value = value;
129
+ }
130
+ }));
131
+ });
132
+ this.queries.envs.subscribe('qualify', (entity) => {
133
+ this.addEnvironmentToEngine(entity);
134
+ });
135
+ this.queries.envs.subscribe('disqualify', (entity) => {
136
+ this.removeEnvironmentFromEngine(entity);
137
+ });
138
+ }
139
+ async initLocomotor() {
140
+ // Create Locomotor with configuration
141
+ const locomotorConfig = {
142
+ initialPlayerPosition: new Vector3().fromArray(this.config.initialPlayerPosition.value),
143
+ rayGravity: this.config.rayGravity.value,
144
+ maxDropDistance: this.config.maxDropDistance.value,
145
+ jumpHeight: this.config.jumpHeight.value,
146
+ jumpCooldown: this.config.jumpCooldown.value,
147
+ useWorker: this.config.useWorker.value,
148
+ };
149
+ this.locomotor = new Locomotor(locomotorConfig);
150
+ await this.locomotor.initialize();
151
+ // Register subsystems with locomotor
152
+ this.world.registerSystem(TeleportSystem, {
153
+ configData: {
154
+ rayGravity: this.config.rayGravity.value,
155
+ locomotor: this.locomotor,
156
+ microGestureControlsEnabled: false,
157
+ },
158
+ });
159
+ this.world.registerSystem(SlideSystem, {
160
+ configData: {
161
+ maxSpeed: this.config.slidingSpeed.value,
162
+ comfortAssist: this.config.comfortAssist.value,
163
+ jumpButton: this.config.jumpButton.value,
164
+ locomotor: this.locomotor,
165
+ },
166
+ });
167
+ this.teleportSystem = this.world.getSystem(TeleportSystem);
168
+ this.slideSystem = this.world.getSystem(SlideSystem);
169
+ // Add any existing environments to the engine
170
+ for (const entity of this.queries.envs.entities) {
171
+ this.addEnvironmentToEngine(entity);
172
+ }
173
+ }
174
+ addEnvironmentToEngine(entity) {
175
+ if (entity.getValue(LocomotionEnvironment, '_initialized')) {
176
+ return; // Already initialized
177
+ }
178
+ const envGroup = entity.object3D;
179
+ if (!(envGroup === null || envGroup === void 0 ? void 0 : envGroup.isObject3D)) {
180
+ return;
181
+ }
182
+ const envType = entity.getValue(LocomotionEnvironment, 'type');
183
+ if (envType !== null) {
184
+ try {
185
+ // Add environment through Locomotor - returns handle
186
+ const envHandle = this.locomotor.addEnvironment(envGroup, envType);
187
+ // Store the generated handle for tracking
188
+ entity.setValue(LocomotionEnvironment, '_envHandle', envHandle);
189
+ entity.setValue(LocomotionEnvironment, '_initialized', true);
190
+ }
191
+ catch (error) {
192
+ console.error('Failed to add environment to locomotion engine:', error);
193
+ }
194
+ }
195
+ }
196
+ removeEnvironmentFromEngine(entity) {
197
+ const envHandle = entity.getValue(LocomotionEnvironment, '_envHandle');
198
+ if (envHandle === 0) {
199
+ return; // Not initialized or invalid handle
200
+ }
201
+ else if (envHandle !== null) {
202
+ this.locomotor.removeEnvironment(envHandle);
203
+ }
204
+ }
205
+ update(delta) {
206
+ this.locomotor.updateKinematicEnvironments();
207
+ this.locomotor.update(delta);
208
+ this.player.position.copy(this.locomotor.position);
209
+ // Toggle micro-gesture controls in hand-tracking mode
210
+ if (this.input.isPrimary('hand', 'right')) {
211
+ const gp = this.input.gamepads.right;
212
+ if (gp) {
213
+ // Swipe up (7) enables; swipe down (8) disables
214
+ if (gp.getButtonDownByIdx(7)) {
215
+ if (!this.microGestureControlsEnabled) {
216
+ this.microGestureControlsEnabled = true;
217
+ if (this.turnSystem) {
218
+ this.turnSystem.config.microGestureControlsEnabled.value = true;
219
+ }
220
+ if (this.teleportSystem) {
221
+ this.teleportSystem.config.microGestureControlsEnabled.value = true;
222
+ }
223
+ }
224
+ }
225
+ else if (gp.getButtonDownByIdx(8)) {
226
+ if (this.microGestureControlsEnabled) {
227
+ this.microGestureControlsEnabled = false;
228
+ if (this.turnSystem) {
229
+ this.turnSystem.config.microGestureControlsEnabled.value = false;
230
+ }
231
+ if (this.teleportSystem) {
232
+ this.teleportSystem.config.microGestureControlsEnabled.value = false;
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }
238
+ }
239
+ destroy() {
240
+ super.destroy();
241
+ if (this.locomotor) {
242
+ this.locomotor.terminate();
243
+ }
244
+ this.world.unregisterSystem(TurnSystem);
245
+ if (this.teleportSystem) {
246
+ this.world.unregisterSystem(TeleportSystem);
247
+ }
248
+ if (this.slideSystem) {
249
+ this.world.unregisterSystem(SlideSystem);
250
+ }
251
+ this.cleanupFuncs.forEach((fn) => fn());
252
+ }
253
+ }
254
+
255
+ export { LocomotionEnvironment, LocomotionSystem };
256
+ //# sourceMappingURL=locomotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locomotion.js","sources":["../../src/locomotion/locomotion.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { ShaderMaterial } from '../../runtime/three.js';
8
+ declare class LineMaterial extends ShaderMaterial {
9
+ isLineMaterial: boolean;
10
+ private _worldUnits;
11
+ constructor(parameters: any);
12
+ get color(): any;
13
+ set color(value: any);
14
+ get linewidth(): any;
15
+ set linewidth(value: any);
16
+ get dashed(): boolean;
17
+ set dashed(value: boolean);
18
+ get opacity(): any;
19
+ set opacity(value: any);
20
+ get worldUnits(): boolean;
21
+ set worldUnits(v: boolean);
22
+ }
23
+ export { LineMaterial };
24
+ //# sourceMappingURL=line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../src/locomotion/materials/line.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAGL,cAAc,EAIf,MAAM,wBAAwB,CAAC;AA0OhC,cAAM,YAAa,SAAQ,cAAc;IACvC,cAAc,UAAQ;IAGtB,OAAO,CAAC,WAAW,CAAiB;gBACxB,UAAU,EAAE,GAAG;IAe3B,IAAI,KAAK,QAER;IAED,IAAI,KAAK,CAAC,KAAK,KAAA,EAEd;IAGD,IAAI,SAAS,QAEZ;IAGD,IAAI,SAAS,CAAC,KAAK,KAAA,EAKlB;IAED,IAAI,MAAM,YAET;IAED,IAAI,MAAM,CAAC,KAAK,SAAA,EAUf;IAGD,IAAI,OAAO,QAEV;IAED,IAAI,OAAO,CAAC,KAAK,KAAA,EAKhB;IAKD,IAAI,UAAU,IAAI,OAAO,CAExB;IACD,IAAI,UAAU,CAAC,CAAC,EAAE,OAAO,EAExB;CAGF;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}