@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
@@ -0,0 +1,396 @@
1
+ import { resolveSceneAuthoringTransforms, MAX_SCENE_PATTERN_INSTANCES, deriveSceneInstanceNodeId, resolveScenePrefabRoot, getSceneNodeCollisionRadius, generateScenePatternTransforms, deriveScenePatternNodeId, deriveScenePatternInstanceNamespace } from '@iwsdk/scene-composition';
2
+ export { MAX_SCENE_PATTERN_INSTANCES, deriveSceneInstanceNodeId, deriveScenePatternNodeId, generateScenePatternTransforms } from '@iwsdk/scene-composition';
3
+ import '../runtime/three.js';
4
+ import { disposeScenePrimitiveObject } from './level-scene-primitive.js';
5
+ import { InstancedMesh, Object3D, Mesh, Vector3, Quaternion, Matrix4 } from 'three';
6
+
7
+ /**
8
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
9
+ *
10
+ * This source code is licensed under the MIT license found in the
11
+ * LICENSE file in the root directory of this source tree.
12
+ */
13
+ /** Lower one authored node, including prefab and pattern content, to Object3D. */
14
+ async function lowerSceneNodeObject(document, node, options = {}) {
15
+ var _a;
16
+ const resolvedDocument = resolveSceneDocumentForLowering(document);
17
+ const resolvedNode = (_a = findSceneNode(resolvedDocument.nodes, node.id)) !== null && _a !== void 0 ? _a : resolveSceneNodeConstraints(document, node);
18
+ const context = createLoweringContext(resolvedDocument, options);
19
+ try {
20
+ const lowered = await lowerNode(context, resolvedNode, {
21
+ derived: false,
22
+ prefabStack: [],
23
+ });
24
+ return lowered;
25
+ }
26
+ catch (error) {
27
+ disposeSceneObjectResources(...context.createdObjects);
28
+ throw error;
29
+ }
30
+ }
31
+ /** Lower all top-level nodes while sharing one deterministic expansion budget. */
32
+ async function lowerSceneDocumentObjects(document, options = {}) {
33
+ const resolvedDocument = resolveSceneDocumentForLowering(document);
34
+ const context = createLoweringContext(resolvedDocument, options);
35
+ const roots = [];
36
+ try {
37
+ for (const node of resolvedDocument.nodes) {
38
+ roots.push(await lowerNode(context, node, { derived: false, prefabStack: [] }));
39
+ }
40
+ return roots;
41
+ }
42
+ catch (error) {
43
+ disposeSceneObjectResources(...context.createdObjects);
44
+ throw error;
45
+ }
46
+ }
47
+ /** Resolve document-scoped constraints exactly as the shared object lowerer does. */
48
+ function resolveSceneDocumentForLowering(document) {
49
+ return resolveSceneAuthoringTransforms(document);
50
+ }
51
+ /** Create only a node's direct render content, without its transform or children. */
52
+ async function createSceneContentObject(document, node, options = {}) {
53
+ const context = createLoweringContext(document, options);
54
+ try {
55
+ const object = await createDirectContentObject(context, node);
56
+ return object;
57
+ }
58
+ catch (error) {
59
+ throw error;
60
+ }
61
+ }
62
+ /** Apply a scene transform to an Object3D using Three.js' XYZ Euler convention. */
63
+ function applySceneTransform(object, transform) {
64
+ if ((transform === null || transform === void 0 ? void 0 : transform.position) != null) {
65
+ object.position.set(...transform.position);
66
+ }
67
+ if ((transform === null || transform === void 0 ? void 0 : transform.rotationDeg) != null) {
68
+ object.rotation.set(degreesToRadians(transform.rotationDeg[0]), degreesToRadians(transform.rotationDeg[1]), degreesToRadians(transform.rotationDeg[2]));
69
+ }
70
+ if ((transform === null || transform === void 0 ? void 0 : transform.scale) != null) {
71
+ object.scale.set(...scaleToVec3(transform.scale));
72
+ }
73
+ object.updateMatrix();
74
+ object.updateMatrixWorld(true);
75
+ }
76
+ /** Release lowering-owned instance state without disposing shared asset resources. */
77
+ function disposeSceneObjectResources(...roots) {
78
+ for (const root of roots) {
79
+ root.traverse((object) => {
80
+ const disposeAsset = object.userData.iwsdkDisposeAsset;
81
+ if (typeof disposeAsset === 'function') {
82
+ object.userData.iwsdkDisposeAsset = null;
83
+ disposeAsset();
84
+ }
85
+ if (object instanceof InstancedMesh) {
86
+ object.dispose();
87
+ }
88
+ disposeScenePrimitiveObject(object);
89
+ });
90
+ }
91
+ }
92
+ /** Dispose all resources owned by one or more returned lowering trees. */
93
+ function disposeLoweredSceneNodes(...nodes) {
94
+ disposeSceneObjectResources(...nodes.map((node) => node.object));
95
+ }
96
+ function createLoweringContext(document, options) {
97
+ var _a, _b;
98
+ return {
99
+ createdObjects: new Set(),
100
+ document,
101
+ expandedNodeCount: 0,
102
+ loadAsset: options.loadAsset,
103
+ maxPatternInstances: (_a = options.maxPatternInstances) !== null && _a !== void 0 ? _a : MAX_SCENE_PATTERN_INSTANCES,
104
+ resolveAssetBounds: options.resolveAssetBounds,
105
+ runtimeHash: options.runtimeHash,
106
+ useInstancing: (_b = options.useInstancing) !== null && _b !== void 0 ? _b : true,
107
+ };
108
+ }
109
+ async function lowerNode(context, sourceNode, options) {
110
+ var _a, _b, _c, _d, _e, _f, _g;
111
+ if (options.derived) {
112
+ claimExpandedNodes(context, 1);
113
+ }
114
+ const id = options.namespace == null
115
+ ? sourceNode.id
116
+ : deriveSceneInstanceNodeId(options.namespace, sourceNode.id);
117
+ const override = (_a = options.overrides) === null || _a === void 0 ? void 0 : _a[sourceNode.id];
118
+ const node = options.overridesApplied
119
+ ? applyDerivedNodeId(sourceNode, id)
120
+ : applyPrefabOverride(sourceNode, id, override);
121
+ const inheritedFramingRole = (_b = node.framingRole) !== null && _b !== void 0 ? _b : options.framingRole;
122
+ const object = await createDirectContentObject(context, node);
123
+ context.createdObjects.add(object);
124
+ object.name = (_c = node.name) !== null && _c !== void 0 ? _c : id;
125
+ object.visible = (_d = override === null || override === void 0 ? void 0 : override.visible) !== null && _d !== void 0 ? _d : sceneNodeVisible(node);
126
+ applyLoweredTransform(object, node.transform, options.prefixMatrix);
127
+ markSceneObject(object, node, sourceNode.id, context.runtimeHash, inheritedFramingRole !== null && inheritedFramingRole !== void 0 ? inheritedFramingRole : 'content');
128
+ const lowered = {
129
+ children: [],
130
+ id,
131
+ node,
132
+ object,
133
+ parentNodeId: options.parentNodeId,
134
+ sourceNodeId: sourceNode.id,
135
+ virtualNodes: [],
136
+ };
137
+ if (((_e = node.content) === null || _e === void 0 ? void 0 : _e.type) === 'instance') {
138
+ const prefab = findRequiredPrefab(context.document, node.content.prefab);
139
+ assertPrefabNotRecursive(options.prefabStack, prefab.id);
140
+ const root = resolveScenePrefabRoot(context.document, prefab.root, node.content.overrides);
141
+ const child = await lowerNode(context, root, {
142
+ derived: true,
143
+ framingRole: inheritedFramingRole,
144
+ namespace: id,
145
+ overrides: node.content.overrides,
146
+ overridesApplied: true,
147
+ parentNodeId: id,
148
+ prefabStack: [...options.prefabStack, prefab.id],
149
+ });
150
+ object.add(child.object);
151
+ lowered.children.push(child);
152
+ }
153
+ else if (((_f = node.content) === null || _f === void 0 ? void 0 : _f.type) === 'pattern') {
154
+ await lowerPatternContent(context, lowered, options.prefabStack, inheritedFramingRole);
155
+ }
156
+ for (const childNode of (_g = sourceNode.children) !== null && _g !== void 0 ? _g : []) {
157
+ const child = await lowerNode(context, childNode, {
158
+ derived: options.derived,
159
+ framingRole: inheritedFramingRole,
160
+ namespace: options.namespace,
161
+ overrides: options.overrides,
162
+ overridesApplied: options.overridesApplied,
163
+ parentNodeId: id,
164
+ prefabStack: options.prefabStack,
165
+ });
166
+ object.add(child.object);
167
+ lowered.children.push(child);
168
+ }
169
+ return lowered;
170
+ }
171
+ async function createDirectContentObject(context, node) {
172
+ const content = node.content;
173
+ if (content == null ||
174
+ content.type === 'group' ||
175
+ content.type === 'instance' ||
176
+ content.type === 'pattern') {
177
+ return new Object3D();
178
+ }
179
+ return createAssetContentObject(context, content);
180
+ }
181
+ async function createAssetContentObject(context, content) {
182
+ if (context.loadAsset == null) {
183
+ throw new Error(`Scene asset "${content.asset}" requires an asset registry`);
184
+ }
185
+ const object = await context.loadAsset(content.asset);
186
+ if (object == null || object.isObject3D !== true) {
187
+ throw new Error(`Scene asset registry returned an invalid object for "${content.asset}"`);
188
+ }
189
+ if (object.parent != null) {
190
+ throw new Error(`Scene asset registry returned a parented object for "${content.asset}"`);
191
+ }
192
+ object.traverse((child) => {
193
+ var _a, _b;
194
+ if (child instanceof Mesh) {
195
+ child.castShadow = (_a = content.castShadow) !== null && _a !== void 0 ? _a : false;
196
+ child.receiveShadow = (_b = content.receiveShadow) !== null && _b !== void 0 ? _b : false;
197
+ }
198
+ });
199
+ object.userData.iwsdkSceneAssetId = content.asset;
200
+ return object;
201
+ }
202
+ async function lowerPatternContent(context, lowered, prefabStack, framingRole) {
203
+ var _a, _b, _c, _d, _e;
204
+ const content = lowered.node.content;
205
+ if ((content === null || content === void 0 ? void 0 : content.type) !== 'pattern') {
206
+ return;
207
+ }
208
+ const prefab = findRequiredPrefab(context.document, content.prefab);
209
+ assertPrefabNotRecursive(prefabStack, prefab.id);
210
+ const root = resolveScenePrefabRoot(context.document, prefab.root, content.overrides);
211
+ const collisionRadius = getSceneNodeCollisionRadius(context.document, root, {
212
+ resolveAssetBounds: context.resolveAssetBounds,
213
+ });
214
+ const transforms = generateScenePatternTransforms(content.distribution, {
215
+ collisionRadius,
216
+ maxInstances: context.maxPatternInstances,
217
+ seedKey: lowered.id,
218
+ });
219
+ const nextStack = [...prefabStack, prefab.id];
220
+ if (context.useInstancing && isPrefabSafeToInstance(root)) {
221
+ const template = await createDirectContentObject(context, root);
222
+ if (template instanceof Mesh && template.children.length === 0) {
223
+ claimExpandedNodes(context, transforms.length);
224
+ const instances = new InstancedMesh(template.geometry, template.material, transforms.length);
225
+ instances.name = `${lowered.id}:instances`;
226
+ instances.castShadow = template.castShadow;
227
+ instances.receiveShadow = template.receiveShadow;
228
+ instances.visible =
229
+ (_c = (_b = (_a = content.overrides) === null || _a === void 0 ? void 0 : _a[root.id]) === null || _b === void 0 ? void 0 : _b.visible) !== null && _c !== void 0 ? _c : sceneNodeVisible(root);
230
+ instances.userData.iwsdkSceneFramingRole =
231
+ (_e = (_d = root.framingRole) !== null && _d !== void 0 ? _d : framingRole) !== null && _e !== void 0 ? _e : 'content';
232
+ const localMatrix = sceneTransformMatrix(root.transform);
233
+ const ids = [];
234
+ for (let index = 0; index < transforms.length; index += 1) {
235
+ const id = deriveScenePatternNodeId(lowered.id, index, root.id);
236
+ const matrix = sceneTransformMatrix(transforms[index]).multiply(localMatrix);
237
+ instances.setMatrixAt(index, matrix);
238
+ ids.push(id);
239
+ lowered.virtualNodes.push({
240
+ id,
241
+ instanceIndex: index,
242
+ node: { ...cloneJson(root), id },
243
+ object: instances,
244
+ parentNodeId: lowered.id,
245
+ sourceNodeId: root.id,
246
+ });
247
+ }
248
+ instances.instanceMatrix.needsUpdate = true;
249
+ instances.userData.iwsdkSceneInstanceIds = ids;
250
+ instances.userData.iwsdkSceneNodeId = lowered.id;
251
+ instances.userData.iwsdkSceneRuntimeHash = context.runtimeHash;
252
+ lowered.object.add(instances);
253
+ return;
254
+ }
255
+ }
256
+ for (let index = 0; index < transforms.length; index += 1) {
257
+ const namespace = deriveScenePatternInstanceNamespace(lowered.id, index);
258
+ const child = await lowerNode(context, root, {
259
+ derived: true,
260
+ framingRole,
261
+ namespace,
262
+ overrides: content.overrides,
263
+ overridesApplied: true,
264
+ parentNodeId: lowered.id,
265
+ prefixMatrix: sceneTransformMatrix(transforms[index]),
266
+ prefabStack: nextStack,
267
+ });
268
+ lowered.object.add(child.object);
269
+ lowered.children.push(child);
270
+ }
271
+ }
272
+ function applyPrefabOverride(source, id, override) {
273
+ var _a, _b;
274
+ const node = cloneJson(source);
275
+ node.id = id;
276
+ if ((override === null || override === void 0 ? void 0 : override.transform) != null) {
277
+ node.transform = { ...((_a = node.transform) !== null && _a !== void 0 ? _a : {}), ...override.transform };
278
+ }
279
+ if ((override === null || override === void 0 ? void 0 : override.components) != null) {
280
+ node.components = {
281
+ ...((_b = node.components) !== null && _b !== void 0 ? _b : {}),
282
+ ...cloneJson(override.components),
283
+ };
284
+ }
285
+ return node;
286
+ }
287
+ function applyDerivedNodeId(source, id) {
288
+ const node = cloneJson(source);
289
+ node.id = id;
290
+ return node;
291
+ }
292
+ function resolveSceneNodeConstraints(document, root) {
293
+ const scope = {
294
+ nodes: [root],
295
+ resources: {},
296
+ units: document.units,
297
+ version: document.version,
298
+ };
299
+ return resolveSceneAuthoringTransforms(scope).nodes[0];
300
+ }
301
+ function findSceneNode(nodes, nodeId) {
302
+ var _a;
303
+ for (const node of nodes) {
304
+ if (node.id === nodeId) {
305
+ return node;
306
+ }
307
+ const child = findSceneNode((_a = node.children) !== null && _a !== void 0 ? _a : [], nodeId);
308
+ if (child != null) {
309
+ return child;
310
+ }
311
+ }
312
+ return undefined;
313
+ }
314
+ function markSceneObject(object, node, sourceNodeId, runtimeHash, framingRole) {
315
+ var _a;
316
+ const values = {
317
+ iwsdkSceneContent: cloneJson(node.content),
318
+ iwsdkSceneContentType: (_a = node.content) === null || _a === void 0 ? void 0 : _a.type,
319
+ iwsdkSceneFramingRole: framingRole,
320
+ iwsdkSceneMetadata: cloneJson(node.metadata),
321
+ iwsdkSceneNodeId: node.id,
322
+ iwsdkSceneRuntimeHash: runtimeHash,
323
+ iwsdkSceneSourceNodeId: sourceNodeId,
324
+ };
325
+ object.traverse((child) => Object.assign(child.userData, values));
326
+ }
327
+ function applyLoweredTransform(object, transform, prefixMatrix) {
328
+ if (prefixMatrix == null) {
329
+ applySceneTransform(object, transform);
330
+ return;
331
+ }
332
+ object.matrix.copy(prefixMatrix).multiply(sceneTransformMatrix(transform));
333
+ object.matrix.decompose(object.position, object.quaternion, object.scale);
334
+ object.matrixAutoUpdate = false;
335
+ object.updateMatrixWorld(true);
336
+ }
337
+ function sceneTransformMatrix(transform) {
338
+ var _a, _b;
339
+ const position = new Vector3(...((_a = transform === null || transform === void 0 ? void 0 : transform.position) !== null && _a !== void 0 ? _a : [0, 0, 0]));
340
+ const rotation = (_b = transform === null || transform === void 0 ? void 0 : transform.rotationDeg) !== null && _b !== void 0 ? _b : [0, 0, 0];
341
+ const quaternion = new Quaternion().setFromEuler(new Object3D().rotation.set(degreesToRadians(rotation[0]), degreesToRadians(rotation[1]), degreesToRadians(rotation[2])));
342
+ const scale = new Vector3(...scaleToVec3(transform === null || transform === void 0 ? void 0 : transform.scale));
343
+ return new Matrix4().compose(position, quaternion, scale);
344
+ }
345
+ function isPrefabSafeToInstance(root) {
346
+ var _a, _b, _c;
347
+ return (((_a = root.content) === null || _a === void 0 ? void 0 : _a.type) === 'asset' &&
348
+ ((_c = (_b = root.children) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) === 0 &&
349
+ (root.components == null || Object.keys(root.components).length === 0) &&
350
+ root.constraints == null);
351
+ }
352
+ function findRequiredPrefab(document, prefabId) {
353
+ var _a;
354
+ const prefab = (_a = document.resources.prefabs) === null || _a === void 0 ? void 0 : _a.find((entry) => entry.id === prefabId);
355
+ if (prefab == null) {
356
+ throw new Error(`Scene references unknown prefab "${prefabId}"`);
357
+ }
358
+ return prefab;
359
+ }
360
+ function assertPrefabNotRecursive(stack, prefabId) {
361
+ if (stack.includes(prefabId)) {
362
+ throw new Error(`Recursive scene prefab expansion: ${[...stack, prefabId].join(' -> ')}`);
363
+ }
364
+ }
365
+ function claimExpandedNodes(context, count) {
366
+ context.expandedNodeCount += count;
367
+ if (context.expandedNodeCount > context.maxPatternInstances) {
368
+ throw new Error(`Scene derived-node expansion exceeds the limit of ${context.maxPatternInstances}`);
369
+ }
370
+ }
371
+ function scaleToVec3(scale) {
372
+ if (scale == null) {
373
+ return [1, 1, 1];
374
+ }
375
+ return typeof scale === 'number' ? [scale, scale, scale] : scale;
376
+ }
377
+ function sceneNodeVisible(node) {
378
+ var _a, _b, _c;
379
+ if (typeof node.visible === 'boolean') {
380
+ return node.visible;
381
+ }
382
+ const legacy = (_b = (_a = node.components) === null || _a === void 0 ? void 0 : _a.Visibility) !== null && _b !== void 0 ? _b : (_c = node.components) === null || _c === void 0 ? void 0 : _c['com.iwsdk.components.Visibility'];
383
+ return (legacy === null || legacy === void 0 ? void 0 : legacy.isVisible) !== false;
384
+ }
385
+ function degreesToRadians(degrees) {
386
+ return (degrees * Math.PI) / 180;
387
+ }
388
+ function cloneJson(value) {
389
+ if (value === undefined) {
390
+ return value;
391
+ }
392
+ return JSON.parse(JSON.stringify(value));
393
+ }
394
+
395
+ export { applySceneTransform, createSceneContentObject, disposeLoweredSceneNodes, disposeSceneObjectResources, lowerSceneDocumentObjects, lowerSceneNodeObject, resolveSceneDocumentForLowering };
396
+ //# sourceMappingURL=level-scene-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-scene-object.js","sources":["../../src/level/level-scene-object.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
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 SceneGeometry, type SceneMaterial } from '@iwsdk/scene-composition';
8
+ import { BufferGeometry, Material, Mesh, Object3D } from '../runtime/index.js';
9
+ export { createSceneMaterial } from './level-scene-material.js';
10
+ export interface SceneProceduralMeshDescriptor {
11
+ geometry: SceneGeometry;
12
+ castShadow?: boolean;
13
+ receiveShadow?: boolean;
14
+ }
15
+ /** Build a Three.js geometry from a scene geometry recipe. */
16
+ export declare function createSceneGeometry(geometry: SceneGeometry): BufferGeometry;
17
+ /** Create a renderable Three.js mesh from a scene primitive descriptor. */
18
+ export declare function createScenePrimitiveObject(primitive: SceneProceduralMeshDescriptor, material: SceneMaterial | Material): Mesh;
19
+ /** Dispose only the resources owned directly by a scene primitive mesh. */
20
+ export declare function disposeScenePrimitiveObject(object: Object3D): void;
21
+ //# sourceMappingURL=level-scene-primitive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-scene-primitive.d.ts","sourceRoot":"","sources":["../../src/level/level-scene-primitive.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,aAAa,EAGnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,cAAc,EAOd,QAAQ,EACR,IAAI,EACJ,QAAQ,EAST,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AA2BhE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,cAAc,CA4G3E;AAED,2EAA2E;AAC3E,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,6BAA6B,EACxC,QAAQ,EAAE,aAAa,GAAG,QAAQ,GACjC,IAAI,CAaN;AAED,2EAA2E;AAC3E,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAmBlE"}
@@ -0,0 +1,159 @@
1
+ import { DEFAULT_SCENE_PRIMITIVE_SEGMENTS } from '@iwsdk/scene-composition';
2
+ import { RoundedBoxGeometry } from 'three/examples/jsm/geometries/RoundedBoxGeometry.js';
3
+ import '../runtime/three.js';
4
+ import { disposeStandaloneSceneMaterial, createSceneMaterial } from './level-scene-material.js';
5
+ import { TorusGeometry, LatheGeometry, Vector2, CatmullRomCurve3, Vector3, TubeGeometry, ExtrudeGeometry, CapsuleGeometry, PlaneGeometry, ConeGeometry, CylinderGeometry, SphereGeometry, BoxGeometry, Mesh, Shape, Path, Material } from 'three';
6
+
7
+ /**
8
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
9
+ *
10
+ * This source code is licensed under the MIT license found in the
11
+ * LICENSE file in the root directory of this source tree.
12
+ */
13
+ /** Build a Three.js geometry from a scene geometry recipe. */
14
+ function createSceneGeometry(geometry) {
15
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
16
+ const descriptor = geometry;
17
+ switch (descriptor.type) {
18
+ case 'box':
19
+ return new BoxGeometry(...descriptor.size);
20
+ case 'roundedBox':
21
+ return new RoundedBoxGeometry(descriptor.size[0], descriptor.size[1], descriptor.size[2], (_a = descriptor.segments) !== null && _a !== void 0 ? _a : 4, descriptor.radius);
22
+ case 'sphere': {
23
+ const segments = (_b = descriptor.segments) !== null && _b !== void 0 ? _b : DEFAULT_SCENE_PRIMITIVE_SEGMENTS;
24
+ return new SphereGeometry(descriptor.radius, segments, Math.max(3, Math.floor(segments / 2)));
25
+ }
26
+ case 'cylinder': {
27
+ const radiusTop = 'radius' in descriptor ? descriptor.radius : descriptor.radiusTop;
28
+ const radiusBottom = 'radius' in descriptor ? descriptor.radius : descriptor.radiusBottom;
29
+ return new CylinderGeometry(radiusTop, radiusBottom, descriptor.height, (_c = descriptor.segments) !== null && _c !== void 0 ? _c : DEFAULT_SCENE_PRIMITIVE_SEGMENTS);
30
+ }
31
+ case 'cone':
32
+ return new ConeGeometry(descriptor.radius, descriptor.height, (_d = descriptor.segments) !== null && _d !== void 0 ? _d : DEFAULT_SCENE_PRIMITIVE_SEGMENTS);
33
+ case 'plane':
34
+ return new PlaneGeometry(...descriptor.size);
35
+ case 'capsule':
36
+ return new CapsuleGeometry(descriptor.radius, descriptor.length, (_e = descriptor.capSegments) !== null && _e !== void 0 ? _e : 4, (_f = descriptor.radialSegments) !== null && _f !== void 0 ? _f : 8);
37
+ case 'extrude': {
38
+ const shape = createShape(descriptor.points);
39
+ for (const hole of (_g = descriptor.holes) !== null && _g !== void 0 ? _g : []) {
40
+ shape.holes.push(createPath(hole));
41
+ }
42
+ const bevel = descriptor.bevel;
43
+ const result = new ExtrudeGeometry(shape, {
44
+ bevelEnabled: (_h = bevel === null || bevel === void 0 ? void 0 : bevel.enabled) !== null && _h !== void 0 ? _h : false,
45
+ bevelSegments: (_j = bevel === null || bevel === void 0 ? void 0 : bevel.segments) !== null && _j !== void 0 ? _j : 1,
46
+ bevelSize: (_k = bevel === null || bevel === void 0 ? void 0 : bevel.size) !== null && _k !== void 0 ? _k : 0,
47
+ bevelThickness: (_l = bevel === null || bevel === void 0 ? void 0 : bevel.thickness) !== null && _l !== void 0 ? _l : 0,
48
+ depth: descriptor.depth,
49
+ });
50
+ result.translate(0, 0, -descriptor.depth / 2);
51
+ return result;
52
+ }
53
+ case 'tube': {
54
+ const curve = new CatmullRomCurve3(descriptor.points.map((point) => new Vector3(...point)), (_m = descriptor.closed) !== null && _m !== void 0 ? _m : false);
55
+ return new TubeGeometry(curve, (_o = descriptor.tubularSegments) !== null && _o !== void 0 ? _o : 64, descriptor.radius, (_p = descriptor.radialSegments) !== null && _p !== void 0 ? _p : 8, (_q = descriptor.closed) !== null && _q !== void 0 ? _q : false);
56
+ }
57
+ case 'lathe': {
58
+ const geometry = new LatheGeometry(descriptor.profile.map((point) => new Vector2(...point)), (_r = descriptor.segments) !== null && _r !== void 0 ? _r : DEFAULT_SCENE_PRIMITIVE_SEGMENTS, degreesToRadians((_s = descriptor.phiStartDeg) !== null && _s !== void 0 ? _s : 0), degreesToRadians((_t = descriptor.phiLengthDeg) !== null && _t !== void 0 ? _t : 360));
59
+ if (Math.abs(((_u = descriptor.phiLengthDeg) !== null && _u !== void 0 ? _u : 360) - 360) < 1e-9) {
60
+ averageLatheSeamNormals(geometry, descriptor.profile.length, (_v = descriptor.segments) !== null && _v !== void 0 ? _v : DEFAULT_SCENE_PRIMITIVE_SEGMENTS);
61
+ }
62
+ return geometry;
63
+ }
64
+ case 'torus':
65
+ return new TorusGeometry(descriptor.radius, descriptor.tube, (_w = descriptor.radialSegments) !== null && _w !== void 0 ? _w : 12, (_x = descriptor.tubularSegments) !== null && _x !== void 0 ? _x : 48, degreesToRadians((_y = descriptor.arcDeg) !== null && _y !== void 0 ? _y : 360));
66
+ default:
67
+ throw new Error(`Unsupported scene geometry type "${String(descriptor.type)}"`);
68
+ }
69
+ }
70
+ /** Create a renderable Three.js mesh from a scene primitive descriptor. */
71
+ function createScenePrimitiveObject(primitive, material) {
72
+ var _a, _b;
73
+ const suppliedRuntimeMaterial = material instanceof Material;
74
+ const geometrySpec = primitive.geometry;
75
+ const resolvedMaterial = resolveMaterialArgument(material);
76
+ const object = new Mesh(createSceneGeometry(geometrySpec), resolvedMaterial);
77
+ object.castShadow = (_a = primitive.castShadow) !== null && _a !== void 0 ? _a : false;
78
+ object.receiveShadow = (_b = primitive.receiveShadow) !== null && _b !== void 0 ? _b : false;
79
+ object.userData.iwsdkSceneGeometry = cloneJson(geometrySpec);
80
+ object.userData.iwsdkScenePrimitive = cloneJson(primitive);
81
+ object.userData.iwsdkOwnsPrimitiveGeometry = true;
82
+ object.userData.iwsdkOwnsPrimitiveMaterial = !suppliedRuntimeMaterial;
83
+ object.userData.iwsdkOwnsPrimitiveResources = true;
84
+ return object;
85
+ }
86
+ /** Dispose only the resources owned directly by a scene primitive mesh. */
87
+ function disposeScenePrimitiveObject(object) {
88
+ var _a;
89
+ if (object.userData.iwsdkOwnsPrimitiveResources !== true) {
90
+ return;
91
+ }
92
+ const primitiveMesh = object;
93
+ (_a = primitiveMesh.geometry) === null || _a === void 0 ? void 0 : _a.dispose();
94
+ const materials = Array.isArray(primitiveMesh.material)
95
+ ? primitiveMesh.material
96
+ : primitiveMesh.material
97
+ ? [primitiveMesh.material]
98
+ : [];
99
+ if (object.userData.iwsdkOwnsPrimitiveMaterial === true) {
100
+ for (const material of new Set(materials)) {
101
+ disposeStandaloneSceneMaterial(material);
102
+ }
103
+ }
104
+ delete object.userData.iwsdkOwnsPrimitiveGeometry;
105
+ delete object.userData.iwsdkOwnsPrimitiveMaterial;
106
+ delete object.userData.iwsdkOwnsPrimitiveResources;
107
+ }
108
+ function createShape(points) {
109
+ const shape = new Shape();
110
+ appendPathPoints(shape, points);
111
+ return shape;
112
+ }
113
+ function createPath(points) {
114
+ const path = new Path();
115
+ appendPathPoints(path, points);
116
+ return path;
117
+ }
118
+ function appendPathPoints(path, points) {
119
+ const first = points[0];
120
+ if (first == null) {
121
+ return;
122
+ }
123
+ path.moveTo(first[0], first[1]);
124
+ for (let index = 1; index < points.length; index += 1) {
125
+ path.lineTo(points[index][0], points[index][1]);
126
+ }
127
+ path.closePath();
128
+ }
129
+ function resolveMaterialArgument(material) {
130
+ if (material == null) {
131
+ throw new Error('A scene primitive requires a resolved material resource');
132
+ }
133
+ return material instanceof Material
134
+ ? material
135
+ : createSceneMaterial(material);
136
+ }
137
+ function averageLatheSeamNormals(geometry, profilePointCount, radialSegments) {
138
+ const normal = geometry.getAttribute('normal');
139
+ if (normal == null) {
140
+ return;
141
+ }
142
+ for (let point = 0; point < profilePointCount; point += 1) {
143
+ const first = point;
144
+ const last = radialSegments * profilePointCount + point;
145
+ const averaged = new Vector3(normal.getX(first) + normal.getX(last), normal.getY(first) + normal.getY(last), normal.getZ(first) + normal.getZ(last)).normalize();
146
+ normal.setXYZ(first, averaged.x, averaged.y, averaged.z);
147
+ normal.setXYZ(last, averaged.x, averaged.y, averaged.z);
148
+ }
149
+ normal.needsUpdate = true;
150
+ }
151
+ function degreesToRadians(degrees) {
152
+ return (degrees * Math.PI) / 180;
153
+ }
154
+ function cloneJson(value) {
155
+ return JSON.parse(JSON.stringify(value));
156
+ }
157
+
158
+ export { createSceneGeometry, createSceneMaterial, createScenePrimitiveObject, disposeScenePrimitiveObject };
159
+ //# sourceMappingURL=level-scene-primitive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-scene-primitive.js","sources":["../../src/level/level-scene-primitive.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}