@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,110 @@
1
+ import { ComponentRegistry, Types } from 'elics';
2
+ import '@preact/signals-core';
3
+ import '../ecs/world.js';
4
+ import '../ecs/component-registry.js';
5
+ import '@pmndrs/uikit';
6
+ import 'three';
7
+ import { PanelUI } from '../ui/ui.js';
8
+ import '../ui/follow.js';
9
+ import '../ui/screenspace.js';
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
+ /** Component id prefix expected in GLXF extras. */
18
+ const PACKAGE_PREFIX = 'com.iwsdk.components.';
19
+ /**
20
+ * Creates ECS entities from Three.js Object3D graphs and applies IWSDK components
21
+ * found in GLXF `meta_spatial.components` extras.
22
+ *
23
+ * @remarks
24
+ * - Only nodes present in the GLXF `nodes` array are converted to entities.
25
+ * - Component ids are matched against the registry by `com.iwsdk.components.<id>`.
26
+ * - Panel UI extras are mapped to {@link PanelUI} with JSON config paths.
27
+ *
28
+ * @category Scene
29
+ */
30
+ class EntityCreator {
31
+ static createEntitiesFromObject3D(object, nodes, parentEntity, world) {
32
+ var _a, _b, _c, _d;
33
+ const inNodes = nodes.includes(object);
34
+ if (!inNodes) {
35
+ return;
36
+ }
37
+ const isLevelMetaEntity = typeof object.name === 'string' && object.name.toLowerCase() === 'level';
38
+ // Special case: a GLXF node named "level" acts as a container for level-root components.
39
+ // Do not create a new ECS entity for it; attach its components to the existing parentEntity (level root),
40
+ // and continue processing its children under the same parentEntity.
41
+ if (isLevelMetaEntity && ((_b = (_a = object.userData) === null || _a === void 0 ? void 0 : _a.meta_spatial) === null || _b === void 0 ? void 0 : _b.components)) {
42
+ this.applyComponents(parentEntity, object.userData.meta_spatial.components, world);
43
+ // Remove the carrier node from the scene graph; it's metadata-only
44
+ object.removeFromParent();
45
+ return;
46
+ }
47
+ const entity = world.createTransformEntity(object, parentEntity);
48
+ if ((_d = (_c = object.userData) === null || _c === void 0 ? void 0 : _c.meta_spatial) === null || _d === void 0 ? void 0 : _d.components) {
49
+ this.applyComponents(entity, object.userData.meta_spatial.components, world);
50
+ }
51
+ object.children.forEach((child) => {
52
+ this.createEntitiesFromObject3D(child, nodes, entity, world);
53
+ });
54
+ }
55
+ static applyComponents(entity, glxfComponents, world) {
56
+ const allComponents = ComponentRegistry.getAllComponents();
57
+ this.handleMetaSpatialPanelComponents(entity, glxfComponents, world);
58
+ Object.entries(glxfComponents).forEach(([componentName, componentData]) => {
59
+ if (componentName === 'com.iwsdk.components.PanelUI') {
60
+ return;
61
+ }
62
+ if (!componentName.startsWith(PACKAGE_PREFIX)) {
63
+ return;
64
+ }
65
+ const targetId = componentName.slice(PACKAGE_PREFIX.length);
66
+ const component = allComponents.find((comp) => comp.id === targetId);
67
+ if (component) {
68
+ const componentProps = this.mapGLXFDataToProps(component, componentData);
69
+ if (!component.bitmask) {
70
+ world.registerComponent(component);
71
+ }
72
+ entity.addComponent(component, componentProps);
73
+ }
74
+ else {
75
+ console.warn(`Component "${componentName}" not found in registry. Available components:`, allComponents.map((comp) => comp.id));
76
+ }
77
+ });
78
+ }
79
+ static mapGLXFDataToProps(component, glxfData) {
80
+ const props = {};
81
+ Object.entries(glxfData).forEach(([key, fieldData]) => {
82
+ if (fieldData && typeof fieldData === 'object' && component.schema[key]) {
83
+ if (component.schema[key].type === Types.Enum && 'alias' in fieldData) {
84
+ props[key] = fieldData.alias;
85
+ }
86
+ else if ('value' in fieldData) {
87
+ props[key] = fieldData.value;
88
+ }
89
+ }
90
+ });
91
+ return props;
92
+ }
93
+ static handleMetaSpatialPanelComponents(entity, glxfComponents, world) {
94
+ var _a, _b, _c, _d, _e;
95
+ const panelComponent = glxfComponents['com.iwsdk.components.PanelUI'];
96
+ if (!panelComponent || !((_a = panelComponent.config) === null || _a === void 0 ? void 0 : _a.value)) {
97
+ return;
98
+ }
99
+ const config = panelComponent.config.value.replace('.uikitml', '.json');
100
+ const maxWidth = ((_c = (_b = panelComponent.maxWidth) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 1);
101
+ const maxHeight = ((_e = (_d = panelComponent.maxHeight) === null || _d === void 0 ? void 0 : _d.value) !== null && _e !== void 0 ? _e : 1);
102
+ if (!PanelUI.bitmask) {
103
+ world.registerComponent(PanelUI);
104
+ }
105
+ entity.addComponent(PanelUI, { config, maxWidth, maxHeight });
106
+ }
107
+ }
108
+
109
+ export { EntityCreator };
110
+ //# sourceMappingURL=level-entity-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-entity-creator.js","sources":["../../src/level/level-entity-creator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
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 type { Entity, World } from '../ecs/index.js';
8
+ /**
9
+ * Loads a GLXF composition, attaches the scene graph, and creates ECS entities/components
10
+ * based on `meta_spatial.components` extras.
11
+ *
12
+ * @remarks
13
+ * - Uses the {@link AssetManager} GLTF loader so previously cached assets are reused.
14
+ * - Each top‑level child of the GLXF active scene is attached to the current level root.
15
+ * - Component names are resolved against the registry as `com.iwsdk.components.<id>`.
16
+ *
17
+ * @category Scene
18
+ */
19
+ export declare class GLXFImporter {
20
+ static load(world: World, url: string, parentEntity: Entity): Promise<void>;
21
+ }
22
+ //# sourceMappingURL=level-glxf-importer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-glxf-importer.d.ts","sourceRoot":"","sources":["../../src/level/level-glxf-importer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;WACV,IAAI,CACf,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;CAqBjB"}
@@ -0,0 +1,40 @@
1
+ import { GLXFLoader } from '@iwsdk/glxf';
2
+ import { AssetManager } from '../asset/asset-manager.js';
3
+ import '../asset/cache-manager.js';
4
+ import { EntityCreator } from './level-entity-creator.js';
5
+
6
+ /**
7
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ /**
13
+ * Loads a GLXF composition, attaches the scene graph, and creates ECS entities/components
14
+ * based on `meta_spatial.components` extras.
15
+ *
16
+ * @remarks
17
+ * - Uses the {@link AssetManager} GLTF loader so previously cached assets are reused.
18
+ * - Each top‑level child of the GLXF active scene is attached to the current level root.
19
+ * - Component names are resolved against the registry as `com.iwsdk.components.<id>`.
20
+ *
21
+ * @category Scene
22
+ */
23
+ class GLXFImporter {
24
+ static async load(world, url, parentEntity) {
25
+ var _a, _b;
26
+ const loader = new GLXFLoader(AssetManager.loadingManager).setGLTFLoader({
27
+ loadAsync: (u) => AssetManager.loadGLTF(u),
28
+ });
29
+ const glxf = await loader.loadAsync(url);
30
+ const levelRoot = (_a = parentEntity.object3D) !== null && _a !== void 0 ? _a : world.getActiveRoot();
31
+ const levelParentEntity = (_b = parentEntity !== null && parentEntity !== void 0 ? parentEntity : world.activeLevel.value) !== null && _b !== void 0 ? _b : world.sceneEntity;
32
+ [...glxf.scene.children].forEach((child) => {
33
+ levelRoot.attach(child);
34
+ EntityCreator.createEntitiesFromObject3D(child, glxf.nodes, levelParentEntity, world);
35
+ });
36
+ }
37
+ }
38
+
39
+ export { GLXFImporter };
40
+ //# sourceMappingURL=level-glxf-importer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-glxf-importer.js","sources":["../../src/level/level-glxf-importer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;;;;;AAKG;AAOH;;;;;;;;;;AAUG;MACU,YAAY,CAAA;IACvB,aAAa,IAAI,CACf,KAAY,EACZ,GAAW,EACX,YAAoB,EAAA;;QAEpB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC;YACvE,SAAS,EAAE,CAAC,CAAS,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnD,SAAA,CAAC;QAEF,MAAM,IAAI,GAAS,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;QAE9C,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,YAAY,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK,CAAC,aAAa,EAAE;AAChE,QAAA,MAAM,iBAAiB,GACrB,CAAA,EAAA,GAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,cAAZ,YAAY,GAAI,KAAK,CAAC,WAAW,CAAC,KAAK,mCAAI,KAAK,CAAC,WAAW;AAE9D,QAAA,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACzC,YAAA,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AACvB,YAAA,aAAa,CAAC,0BAA0B,CACtC,KAAK,EACL,IAAI,CAAC,KAAK,EACV,iBAAiB,EACjB,KAAK,CACN;AACH,QAAA,CAAC,CAAC;IACJ;AACD;;;;"}
@@ -0,0 +1,18 @@
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
+ /**
8
+ * Marker component placed on the active level's root entity.
9
+ *
10
+ * @remarks
11
+ * Systems can scope level‑wide behavior by requiring {@link LevelRoot} in their queries
12
+ * to avoid scanning all level entities.
13
+ *
14
+ * @category Scene
15
+ * @hideineditor
16
+ */
17
+ export declare const LevelRoot: import("elics").Component<{}>;
18
+ //# sourceMappingURL=level-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-root.d.ts","sourceRoot":"","sources":["../../src/level/level-root.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,+BAIrB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import '@preact/signals-core';
2
+ import '../ecs/world.js';
3
+ import { createComponent } from 'elics';
4
+ import '../ecs/component-registry.js';
5
+
6
+ /**
7
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ /**
13
+ * Marker component placed on the active level's root entity.
14
+ *
15
+ * @remarks
16
+ * Systems can scope level‑wide behavior by requiring {@link LevelRoot} in their queries
17
+ * to avoid scanning all level entities.
18
+ *
19
+ * @category Scene
20
+ * @hideineditor
21
+ */
22
+ const LevelRoot = createComponent('LevelRoot', {}, 'Marker component attached to level root entities');
23
+
24
+ export { LevelRoot };
25
+ //# sourceMappingURL=level-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-root.js","sources":["../../src/level/level-root.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;;;;;AAKG;AAIH;;;;;;;;;AASG;AACI,MAAM,SAAS,GAAG,eAAe,CACtC,WAAW,EACX,EAAE,EACF,kDAAkD;;;;"}
@@ -0,0 +1,54 @@
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 { Types } from '../ecs/index.js';
8
+ declare const LevelSystem_base: import("elics").SystemConstructor<{
9
+ /** Attach a default gradient dome on level roots when none provided. */
10
+ defaultLighting: {
11
+ type: Types.Boolean;
12
+ default: true;
13
+ };
14
+ }, {
15
+ levelEntities: {
16
+ required: import("elics").Component<{
17
+ id: {
18
+ type: Types.String;
19
+ default: string;
20
+ };
21
+ }>[];
22
+ };
23
+ }, import("../ecs/world.js").World, import("../ecs/system.js").System<{
24
+ /** Attach a default gradient dome on level roots when none provided. */
25
+ defaultLighting: {
26
+ type: Types.Boolean;
27
+ default: true;
28
+ };
29
+ }, {
30
+ levelEntities: {
31
+ required: import("elics").Component<{
32
+ id: {
33
+ type: Types.String;
34
+ default: string;
35
+ };
36
+ }>[];
37
+ };
38
+ }>>;
39
+ /**
40
+ * Manages the active level root, enforces identity transforms, and loads new levels on request.
41
+ *
42
+ * @remarks
43
+ * - Destroys all {@link LevelTag}-tagged entities on level change.
44
+ * - Loads GLXF via {@link GLXFImporter} when a URL is requested through {@link World.loadLevel}.
45
+ * @category Scene
46
+ */
47
+ export declare class LevelSystem extends LevelSystem_base {
48
+ private loading;
49
+ init(): void;
50
+ update(): void;
51
+ private startLevelChange;
52
+ }
53
+ export {};
54
+ //# sourceMappingURL=level-system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-system.d.ts","sourceRoot":"","sources":["../../src/level/level-system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,EAAgB,MAAM,iBAAiB,CAAC;;IA0BlD,wEAAwE;;;;;;;;;;;;;;;IAAxE,wEAAwE;;;;;;;;;;;;;;;AAd5E;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,gBAShC;IACC,OAAO,CAAC,OAAO,CAAS;IAExB,IAAI,IAAI,IAAI;IAiBZ,MAAM,IAAI,IAAI;IAgCd,OAAO,CAAC,gBAAgB;CAiDzB"}
@@ -0,0 +1,134 @@
1
+ import { signal } from '@preact/signals-core';
2
+ import { createSystem } from '../ecs/system.js';
3
+ import '../ecs/world.js';
4
+ import { Types } from 'elics';
5
+ import '../ecs/component-registry.js';
6
+ import { DomeTexture } from '../environment/dome-texture.js';
7
+ import { DomeGradient } from '../environment/dome-gradient.js';
8
+ import { IBLTexture } from '../environment/ibl-texture.js';
9
+ import { IBLGradient } from '../environment/ibl-gradient.js';
10
+ import '../environment/environment-system.js';
11
+ import { GLXFImporter } from './level-glxf-importer.js';
12
+ import { LevelRoot } from './level-root.js';
13
+ import { LevelTag } from './level-tag.js';
14
+
15
+ /**
16
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
17
+ *
18
+ * This source code is licensed under the MIT license found in the
19
+ * LICENSE file in the root directory of this source tree.
20
+ */
21
+ /**
22
+ * Manages the active level root, enforces identity transforms, and loads new levels on request.
23
+ *
24
+ * @remarks
25
+ * - Destroys all {@link LevelTag}-tagged entities on level change.
26
+ * - Loads GLXF via {@link GLXFImporter} when a URL is requested through {@link World.loadLevel}.
27
+ * @category Scene
28
+ */
29
+ class LevelSystem extends createSystem({
30
+ // All entities that belong to a level (will be destroyed on level change)
31
+ levelEntities: { required: [LevelTag] },
32
+ }, {
33
+ /** Attach a default gradient dome on level roots when none provided. */
34
+ defaultLighting: { type: Types.Boolean, default: true },
35
+ }) {
36
+ constructor() {
37
+ super(...arguments);
38
+ this.loading = false;
39
+ }
40
+ init() {
41
+ // Ensure there is always an active level signal and a root entity
42
+ if (!this.world.activeLevel || !this.world.activeLevel.value) {
43
+ const root = this.world.createTransformEntity(undefined, {
44
+ parent: this.world.sceneEntity,
45
+ });
46
+ root.object3D.name = 'LevelRoot';
47
+ root.addComponent(LevelRoot);
48
+ if (!this.world.activeLevel) {
49
+ // @ts-ignore initialize the signal if missing
50
+ this.world.activeLevel = signal(root);
51
+ }
52
+ else {
53
+ this.world.activeLevel.value = root;
54
+ }
55
+ }
56
+ }
57
+ update() {
58
+ // Enforce identity transform on the level root every frame
59
+ const root = this.world.activeLevel.value;
60
+ const obj = root.object3D;
61
+ if (obj.position.x !== 0 ||
62
+ obj.position.y !== 0 ||
63
+ obj.position.z !== 0 ||
64
+ obj.scale.x !== 1 ||
65
+ obj.scale.y !== 1 ||
66
+ obj.scale.z !== 1 ||
67
+ obj.rotation.x !== 0 ||
68
+ obj.rotation.y !== 0 ||
69
+ obj.rotation.z !== 0) {
70
+ obj.position.set(0, 0, 0);
71
+ obj.rotation.set(0, 0, 0);
72
+ obj.scale.set(1, 1, 1);
73
+ obj.updateMatrixWorld(true);
74
+ }
75
+ // Check if a new level is requested
76
+ if (this.loading) {
77
+ return;
78
+ }
79
+ const pending = this.world.requestedLevelUrl;
80
+ if (pending === undefined) {
81
+ return;
82
+ }
83
+ this.startLevelChange(pending);
84
+ }
85
+ startLevelChange(url) {
86
+ this.loading = true;
87
+ // Unset request now to avoid re-entry during async flow
88
+ this.world.requestedLevelUrl = undefined;
89
+ // Destroy all level-tagged entities (current level content)
90
+ for (const ent of this.queries.levelEntities.entities) {
91
+ try {
92
+ ent.destroy();
93
+ }
94
+ catch (_a) { }
95
+ }
96
+ // Create a fresh level root and make it active
97
+ const newRoot = this.world.createTransformEntity(undefined, {
98
+ parent: this.world.sceneEntity,
99
+ });
100
+ newRoot.object3D.name = 'LevelRoot';
101
+ newRoot.addComponent(LevelRoot);
102
+ this.world.activeLevel.value = newRoot;
103
+ const doLoad = url
104
+ ? GLXFImporter.load(this.world, url, newRoot)
105
+ : Promise.resolve();
106
+ void doLoad
107
+ .catch((err) => console.error('[LevelSystem] Failed to load level', err))
108
+ .finally(() => {
109
+ this.loading = false;
110
+ // Attach default lighting if requested and the level root has no dome/IBL
111
+ try {
112
+ if (this.config.defaultLighting.value) {
113
+ const hasDome = newRoot.hasComponent(DomeTexture) ||
114
+ newRoot.hasComponent(DomeGradient);
115
+ const hasIBL = newRoot.hasComponent(IBLTexture) ||
116
+ newRoot.hasComponent(IBLGradient);
117
+ if (!hasDome && !hasIBL) {
118
+ newRoot.addComponent(DomeGradient).addComponent(IBLGradient);
119
+ }
120
+ }
121
+ }
122
+ catch (e) {
123
+ console.warn('[LevelSystem] defaultLighting setup failed:', e);
124
+ }
125
+ if (this.world._resolveLevelLoad) {
126
+ this.world._resolveLevelLoad();
127
+ this.world._resolveLevelLoad = undefined;
128
+ }
129
+ });
130
+ }
131
+ }
132
+
133
+ export { LevelSystem };
134
+ //# sourceMappingURL=level-system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-system.js","sources":["../../src/level/level-system.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
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 { Types } from '../ecs/index.js';
8
+ /**
9
+ * Tags entities as belonging to the active level.
10
+ *
11
+ * @remarks
12
+ * - The {@link LevelSystem} destroys all entities with this tag when switching levels.
13
+ * - Entities created via {@link World.createTransformEntity} are automatically tagged,
14
+ * unless created as persistent.
15
+ *
16
+ * @category Scene
17
+ * @hideineditor
18
+ */
19
+ export declare const LevelTag: import("elics").Component<{
20
+ id: {
21
+ type: Types.String;
22
+ default: string;
23
+ };
24
+ }>;
25
+ //# sourceMappingURL=level-tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-tag.d.ts","sourceRoot":"","sources":["../../src/level/level-tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ;;;;;EAMpB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import '@preact/signals-core';
2
+ import '../ecs/world.js';
3
+ import { createComponent, Types } from 'elics';
4
+ import '../ecs/component-registry.js';
5
+
6
+ /**
7
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ /**
13
+ * Tags entities as belonging to the active level.
14
+ *
15
+ * @remarks
16
+ * - The {@link LevelSystem} destroys all entities with this tag when switching levels.
17
+ * - Entities created via {@link World.createTransformEntity} are automatically tagged,
18
+ * unless created as persistent.
19
+ *
20
+ * @category Scene
21
+ * @hideineditor
22
+ */
23
+ const LevelTag = createComponent('LevelTag', {
24
+ id: { type: Types.String, default: '' }, // Optional identifier for the current level instance
25
+ }, 'Marker component for level membership');
26
+
27
+ export { LevelTag };
28
+ //# sourceMappingURL=level-tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-tag.js","sources":["../../src/level/level-tag.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;;;;;AAKG;AAIH;;;;;;;;;;AAUG;AACI,MAAM,QAAQ,GAAG,eAAe,CACrC,UAAU,EACV;AACE,IAAA,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;CACxC,EACD,uCAAuC;;;;"}
@@ -0,0 +1,12 @@
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 { BufferGeometry } from '../../runtime/three.js';
8
+ declare class BeveledCylinderGeometry extends BufferGeometry {
9
+ constructor(radiusTop?: number, radiusBottom?: number, height?: number, bevelSegments?: number, bevelSize?: number, radialSegments?: number, heightSegments?: number, openEnded?: boolean, thetaStart?: number, thetaLength?: number);
10
+ }
11
+ export { BeveledCylinderGeometry };
12
+ //# sourceMappingURL=beveled-cylinder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beveled-cylinder.d.ts","sourceRoot":"","sources":["../../../src/locomotion/geometries/beveled-cylinder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,cAAc,EAKf,MAAM,wBAAwB,CAAC;AAEhC,cAAM,uBAAwB,SAAQ,cAAc;gBAEhD,SAAS,SAAI,EACb,YAAY,SAAI,EAChB,MAAM,SAAI,EACV,aAAa,SAAI,EACjB,SAAS,SAAI,EACb,cAAc,SAAK,EACnB,cAAc,SAAI,EAClB,SAAS,UAAQ,EACjB,UAAU,SAAI,EACd,WAAW,SAAc;CA0E5B;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { mergeGeometries } from 'three/examples/jsm/utils/BufferGeometryUtils.js';
2
+ import '../../runtime/three.js';
3
+ import { BufferGeometry, Vector2, MathUtils, LatheGeometry, CircleGeometry } from 'three';
4
+
5
+ /**
6
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
7
+ *
8
+ * This source code is licensed under the MIT license found in the
9
+ * LICENSE file in the root directory of this source tree.
10
+ */
11
+ class BeveledCylinderGeometry extends BufferGeometry {
12
+ constructor(radiusTop = 1, radiusBottom = 1, height = 2, bevelSegments = 4, bevelSize = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2) {
13
+ super();
14
+ const halfHeight = height / 2;
15
+ const profilePoints = [];
16
+ const deltaAngle = Math.atan2(radiusBottom - radiusTop, height);
17
+ for (let i = 0; i <= bevelSegments; i++) {
18
+ const t = i / bevelSegments;
19
+ const angle = -Math.PI / 2 + t * (Math.PI / 2 + deltaAngle);
20
+ const x = radiusBottom - bevelSize + bevelSize * Math.cos(angle);
21
+ const y = -halfHeight + bevelSize + bevelSize * Math.sin(angle);
22
+ profilePoints.push(new Vector2(x, y));
23
+ }
24
+ for (let i = 1; i < heightSegments; i++) {
25
+ const t = i / heightSegments;
26
+ const y = -halfHeight +
27
+ bevelSize +
28
+ t * (halfHeight - bevelSize - (-halfHeight + bevelSize));
29
+ // Linear interpolation between bottom and top radii.
30
+ const r = MathUtils.lerp(radiusBottom, radiusTop, t);
31
+ profilePoints.push(new Vector2(r, y));
32
+ }
33
+ for (let i = 0; i <= bevelSegments; i++) {
34
+ const t = i / bevelSegments;
35
+ const angle = deltaAngle + t * (Math.PI / 2); // from 0° to 90°
36
+ const x = radiusTop - bevelSize + bevelSize * Math.cos(angle);
37
+ const y = halfHeight - bevelSize + bevelSize * Math.sin(angle);
38
+ profilePoints.push(new Vector2(x, y));
39
+ }
40
+ // --- Create the lathe geometry by revolving the profile ---
41
+ const latheGeo = new LatheGeometry(profilePoints, radialSegments, thetaStart, thetaLength);
42
+ // --- If the geometry should have end caps, add them ---
43
+ if (!openEnded) {
44
+ // Top cap: a flat circle. The effective radius is reduced by bevelSize.
45
+ const topCap = new CircleGeometry(radiusTop - bevelSize, radialSegments, thetaStart, thetaLength);
46
+ topCap.rotateX(-Math.PI / 2);
47
+ topCap.translate(0, halfHeight, 0);
48
+ // Bottom cap.
49
+ const bottomCap = new CircleGeometry(radiusBottom - bevelSize, radialSegments, thetaStart, thetaLength);
50
+ bottomCap.rotateX(Math.PI / 2);
51
+ bottomCap.translate(0, -halfHeight, 0);
52
+ // Merge the lathe geometry and the caps.
53
+ const merged = mergeGeometries([latheGeo, topCap, bottomCap]);
54
+ this.copy(merged);
55
+ }
56
+ else {
57
+ this.copy(latheGeo);
58
+ }
59
+ this.computeVertexNormals();
60
+ }
61
+ }
62
+
63
+ export { BeveledCylinderGeometry };
64
+ //# sourceMappingURL=beveled-cylinder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beveled-cylinder.js","sources":["../../../src/locomotion/geometries/beveled-cylinder.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
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
+ export * from './slide.js';
8
+ export * from './teleport.js';
9
+ export * from './turn.js';
10
+ export * from './locomotion.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/locomotion/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC"}