@iwsdk/core 0.4.2 → 0.5.1

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 (312) hide show
  1. package/README.md +4 -7
  2. package/dist/asset/asset-manager.d.ts +136 -8
  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 +1 -0
  38. package/dist/audio/audio-system.d.ts.map +1 -1
  39. package/dist/audio/audio-system.js +16 -2
  40. package/dist/audio/audio-system.js.map +1 -1
  41. package/dist/camera/camera-system.d.ts.map +1 -1
  42. package/dist/camera/camera-system.js +5 -3
  43. package/dist/camera/camera-system.js.map +1 -1
  44. package/dist/depth/depth-sensing-system.d.ts.map +1 -1
  45. package/dist/depth/depth-sensing-system.js +31 -10
  46. package/dist/depth/depth-sensing-system.js.map +1 -1
  47. package/dist/ecs/builtin-components.d.ts +1239 -0
  48. package/dist/ecs/builtin-components.d.ts.map +1 -0
  49. package/dist/ecs/builtin-components.js +87 -0
  50. package/dist/ecs/builtin-components.js.map +1 -0
  51. package/dist/ecs/component-editor-metadata.d.ts +19 -0
  52. package/dist/ecs/component-editor-metadata.d.ts.map +1 -0
  53. package/dist/ecs/component-editor-metadata.js +19 -0
  54. package/dist/ecs/component-editor-metadata.js.map +1 -0
  55. package/dist/ecs/component-manifest.d.ts +24 -0
  56. package/dist/ecs/component-manifest.d.ts.map +1 -0
  57. package/dist/ecs/component-manifest.js +121 -0
  58. package/dist/ecs/component-manifest.js.map +1 -0
  59. package/dist/ecs/component.d.ts +1 -0
  60. package/dist/ecs/component.d.ts.map +1 -1
  61. package/dist/ecs/entity.d.ts +20 -2
  62. package/dist/ecs/entity.d.ts.map +1 -1
  63. package/dist/ecs/entity.js +59 -3
  64. package/dist/ecs/entity.js.map +1 -1
  65. package/dist/ecs/index.d.ts +3 -1
  66. package/dist/ecs/index.d.ts.map +1 -1
  67. package/dist/ecs/system.d.ts +9 -0
  68. package/dist/ecs/system.d.ts.map +1 -1
  69. package/dist/ecs/system.js.map +1 -1
  70. package/dist/ecs/world.d.ts +158 -4
  71. package/dist/ecs/world.d.ts.map +1 -1
  72. package/dist/ecs/world.js +304 -5
  73. package/dist/ecs/world.js.map +1 -1
  74. package/dist/environment/dome-gradient.d.ts +2 -1
  75. package/dist/environment/dome-gradient.d.ts.map +1 -1
  76. package/dist/environment/dome-gradient.js +2 -1
  77. package/dist/environment/dome-gradient.js.map +1 -1
  78. package/dist/environment/environment-system.d.ts +19 -3
  79. package/dist/environment/environment-system.d.ts.map +1 -1
  80. package/dist/environment/environment-system.js +78 -48
  81. package/dist/environment/environment-system.js.map +1 -1
  82. package/dist/environment/gradient-environment.d.ts.map +1 -1
  83. package/dist/environment/gradient-environment.js +13 -7
  84. package/dist/environment/gradient-environment.js.map +1 -1
  85. package/dist/environment/scene-ar-environment.d.ts +39 -0
  86. package/dist/environment/scene-ar-environment.d.ts.map +1 -0
  87. package/dist/environment/scene-ar-environment.js +93 -0
  88. package/dist/environment/scene-ar-environment.js.map +1 -0
  89. package/dist/grab/grab-helpers.d.ts +39 -0
  90. package/dist/grab/grab-helpers.d.ts.map +1 -0
  91. package/dist/grab/grab-helpers.js +59 -0
  92. package/dist/grab/grab-helpers.js.map +1 -0
  93. package/dist/grab/grab-system.d.ts +45 -0
  94. package/dist/grab/grab-system.d.ts.map +1 -1
  95. package/dist/grab/grab-system.js +67 -5
  96. package/dist/grab/grab-system.js.map +1 -1
  97. package/dist/grab/grab-warnings.d.ts +14 -0
  98. package/dist/grab/grab-warnings.d.ts.map +1 -0
  99. package/dist/grab/grab-warnings.js +53 -0
  100. package/dist/grab/grab-warnings.js.map +1 -0
  101. package/dist/grab/handles.d.ts.map +1 -1
  102. package/dist/grab/handles.js +8 -3
  103. package/dist/grab/handles.js.map +1 -1
  104. package/dist/index.d.ts +4 -0
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +42 -16
  107. package/dist/index.js.map +1 -1
  108. package/dist/init/world-initializer.d.ts +11 -7
  109. package/dist/init/world-initializer.d.ts.map +1 -1
  110. package/dist/init/world-initializer.js +118 -57
  111. package/dist/init/world-initializer.js.map +1 -1
  112. package/dist/init/xr.d.ts +0 -1
  113. package/dist/init/xr.d.ts.map +1 -1
  114. package/dist/init/xr.js +12 -3
  115. package/dist/init/xr.js.map +1 -1
  116. package/dist/input/input-system.d.ts.map +1 -1
  117. package/dist/input/input-system.js +26 -11
  118. package/dist/input/input-system.js.map +1 -1
  119. package/dist/layers/xr-layer-state.d.ts +47 -0
  120. package/dist/layers/xr-layer-state.d.ts.map +1 -0
  121. package/dist/layers/xr-layer-state.js +23 -0
  122. package/dist/layers/xr-layer-state.js.map +1 -0
  123. package/dist/layers/xr-layer-system.d.ts +45 -93
  124. package/dist/layers/xr-layer-system.d.ts.map +1 -1
  125. package/dist/layers/xr-layer-system.js +4 -25
  126. package/dist/layers/xr-layer-system.js.map +1 -1
  127. package/dist/level/index.d.ts +6 -2
  128. package/dist/level/index.d.ts.map +1 -1
  129. package/dist/level/level-component-applier.d.ts +24 -0
  130. package/dist/level/level-component-applier.d.ts.map +1 -0
  131. package/dist/level/level-component-applier.js +199 -0
  132. package/dist/level/level-component-applier.js.map +1 -0
  133. package/dist/level/level-player-rig.d.ts +17 -0
  134. package/dist/level/level-player-rig.d.ts.map +1 -0
  135. package/dist/level/level-player-rig.js +113 -0
  136. package/dist/level/level-player-rig.js.map +1 -0
  137. package/dist/level/level-scene-environment.d.ts +28 -0
  138. package/dist/level/level-scene-environment.d.ts.map +1 -0
  139. package/dist/level/level-scene-environment.js +121 -0
  140. package/dist/level/level-scene-environment.js.map +1 -0
  141. package/dist/level/level-scene-json-importer.d.ts +53 -0
  142. package/dist/level/level-scene-json-importer.d.ts.map +1 -0
  143. package/dist/level/level-scene-json-importer.js +256 -0
  144. package/dist/level/level-scene-json-importer.js.map +1 -0
  145. package/dist/level/level-scene-material.d.ts +22 -0
  146. package/dist/level/level-scene-material.d.ts.map +1 -0
  147. package/dist/level/level-scene-material.js +231 -0
  148. package/dist/level/level-scene-material.js.map +1 -0
  149. package/dist/level/level-scene-object.d.ts +49 -0
  150. package/dist/level/level-scene-object.d.ts.map +1 -0
  151. package/dist/level/level-scene-object.js +396 -0
  152. package/dist/level/level-scene-object.js.map +1 -0
  153. package/dist/level/level-scene-primitive.d.ts +21 -0
  154. package/dist/level/level-scene-primitive.d.ts.map +1 -0
  155. package/dist/level/level-scene-primitive.js +159 -0
  156. package/dist/level/level-scene-primitive.js.map +1 -0
  157. package/dist/level/level-system.d.ts +14 -20
  158. package/dist/level/level-system.d.ts.map +1 -1
  159. package/dist/level/level-system.js +114 -49
  160. package/dist/level/level-system.js.map +1 -1
  161. package/dist/lighting/index.d.ts +10 -0
  162. package/dist/lighting/index.d.ts.map +1 -0
  163. package/dist/lighting/index.js +4 -0
  164. package/dist/lighting/index.js.map +1 -0
  165. package/dist/lighting/light-binding.d.ts +76 -0
  166. package/dist/lighting/light-binding.d.ts.map +1 -0
  167. package/dist/lighting/light-binding.js +229 -0
  168. package/dist/lighting/light-binding.js.map +1 -0
  169. package/dist/lighting/light-components.d.ts +885 -0
  170. package/dist/lighting/light-components.d.ts.map +1 -0
  171. package/dist/lighting/light-components.js +146 -0
  172. package/dist/lighting/light-components.js.map +1 -0
  173. package/dist/lighting/light-system.d.ts +919 -0
  174. package/dist/lighting/light-system.d.ts.map +1 -0
  175. package/dist/lighting/light-system.js +244 -0
  176. package/dist/lighting/light-system.js.map +1 -0
  177. package/dist/locomotion/locomotion-environment.d.ts +27 -0
  178. package/dist/locomotion/locomotion-environment.d.ts.map +1 -0
  179. package/dist/locomotion/locomotion-environment.js +22 -0
  180. package/dist/locomotion/locomotion-environment.js.map +1 -0
  181. package/dist/locomotion/locomotion.d.ts +5 -34
  182. package/dist/locomotion/locomotion.d.ts.map +1 -1
  183. package/dist/locomotion/locomotion.js +33 -31
  184. package/dist/locomotion/locomotion.js.map +1 -1
  185. package/dist/locomotion/materials/line.js +1 -1
  186. package/dist/locomotion/slide.d.ts.map +1 -1
  187. package/dist/locomotion/slide.js +2 -2
  188. package/dist/locomotion/slide.js.map +1 -1
  189. package/dist/mcp/ecs-debug-tools.d.ts.map +1 -1
  190. package/dist/mcp/ecs-debug-tools.js +10 -2
  191. package/dist/mcp/ecs-debug-tools.js.map +1 -1
  192. package/dist/mcp/mcp-runtime.d.ts.map +1 -1
  193. package/dist/mcp/mcp-runtime.js +4 -1
  194. package/dist/mcp/mcp-runtime.js.map +1 -1
  195. package/dist/mcp/scene-tools.d.ts +152 -1
  196. package/dist/mcp/scene-tools.d.ts.map +1 -1
  197. package/dist/mcp/scene-tools.js +538 -8
  198. package/dist/mcp/scene-tools.js.map +1 -1
  199. package/dist/physics/index.js +11 -4
  200. package/dist/physics/index.js.map +1 -1
  201. package/dist/physics/physics-system.d.ts +704 -11
  202. package/dist/physics/physics-system.d.ts.map +1 -1
  203. package/dist/physics/physics-system.js +307 -25
  204. package/dist/physics/physics-system.js.map +1 -1
  205. package/dist/physics/physicsBody.d.ts +40 -1
  206. package/dist/physics/physicsBody.d.ts.map +1 -1
  207. package/dist/physics/physicsBody.js +39 -0
  208. package/dist/physics/physicsBody.js.map +1 -1
  209. package/dist/physics/physicsManipulation.d.ts +1 -1
  210. package/dist/physics/physicsManipulation.d.ts.map +1 -1
  211. package/dist/physics/physicsShape.d.ts +5 -3
  212. package/dist/physics/physicsShape.d.ts.map +1 -1
  213. package/dist/physics/physicsShape.js +2 -1
  214. package/dist/physics/physicsShape.js.map +1 -1
  215. package/dist/physics/utils.d.ts +10 -0
  216. package/dist/physics/utils.d.ts.map +1 -1
  217. package/dist/physics/utils.js +82 -48
  218. package/dist/physics/utils.js.map +1 -1
  219. package/dist/project/index.d.ts +11 -0
  220. package/dist/project/index.d.ts.map +1 -0
  221. package/dist/project/index.js +5 -0
  222. package/dist/project/index.js.map +1 -0
  223. package/dist/project/normalize.d.ts +19 -0
  224. package/dist/project/normalize.d.ts.map +1 -0
  225. package/dist/project/normalize.js +206 -0
  226. package/dist/project/normalize.js.map +1 -0
  227. package/dist/project/paths.d.ts +21 -0
  228. package/dist/project/paths.d.ts.map +1 -0
  229. package/dist/project/paths.js +75 -0
  230. package/dist/project/paths.js.map +1 -0
  231. package/dist/project/types.d.ts +159 -0
  232. package/dist/project/types.d.ts.map +1 -0
  233. package/dist/project/types.js +11 -0
  234. package/dist/project/types.js.map +1 -0
  235. package/dist/project/validation.d.ts +17 -0
  236. package/dist/project/validation.d.ts.map +1 -0
  237. package/dist/project/validation.js +501 -0
  238. package/dist/project/validation.js.map +1 -0
  239. package/dist/scene-understanding/scene-understanding-system.d.ts +23 -2
  240. package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
  241. package/dist/scene-understanding/scene-understanding-system.js +76 -54
  242. package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
  243. package/dist/schemas/iwsdk-project.v1.schema.json +305 -0
  244. package/dist/transform/transform-component.d.ts +32 -0
  245. package/dist/transform/transform-component.d.ts.map +1 -0
  246. package/dist/transform/transform-component.js +24 -0
  247. package/dist/transform/transform-component.js.map +1 -0
  248. package/dist/transform/transform.d.ts +9 -42
  249. package/dist/transform/transform.d.ts.map +1 -1
  250. package/dist/transform/transform.js +8 -25
  251. package/dist/transform/transform.js.map +1 -1
  252. package/dist/ui/document.d.ts +9 -2
  253. package/dist/ui/document.d.ts.map +1 -1
  254. package/dist/ui/document.js +30 -5
  255. package/dist/ui/document.js.map +1 -1
  256. package/dist/ui/follow-component.d.ts +57 -0
  257. package/dist/ui/follow-component.d.ts.map +1 -0
  258. package/dist/ui/follow-component.js +38 -0
  259. package/dist/ui/follow-component.js.map +1 -0
  260. package/dist/ui/follow.d.ts +28 -102
  261. package/dist/ui/follow.d.ts.map +1 -1
  262. package/dist/ui/follow.js +10 -48
  263. package/dist/ui/follow.js.map +1 -1
  264. package/dist/ui/index.d.ts +3 -0
  265. package/dist/ui/index.d.ts.map +1 -1
  266. package/dist/ui/panel-components.d.ts +29 -0
  267. package/dist/ui/panel-components.d.ts.map +1 -0
  268. package/dist/ui/panel-components.js +22 -0
  269. package/dist/ui/panel-components.js.map +1 -0
  270. package/dist/ui/screenspace-component.d.ts +39 -0
  271. package/dist/ui/screenspace-component.d.ts.map +1 -0
  272. package/dist/ui/screenspace-component.js +21 -0
  273. package/dist/ui/screenspace-component.js.map +1 -0
  274. package/dist/ui/screenspace.d.ts +47 -135
  275. package/dist/ui/screenspace.d.ts.map +1 -1
  276. package/dist/ui/screenspace.js +127 -65
  277. package/dist/ui/screenspace.js.map +1 -1
  278. package/dist/ui/ui.d.ts +20 -122
  279. package/dist/ui/ui.d.ts.map +1 -1
  280. package/dist/ui/ui.js +44 -107
  281. package/dist/ui/ui.js.map +1 -1
  282. package/dist/ui/uikitml-asset.d.ts +25 -0
  283. package/dist/ui/uikitml-asset.d.ts.map +1 -0
  284. package/dist/ui/uikitml-asset.js +56 -0
  285. package/dist/ui/uikitml-asset.js.map +1 -0
  286. package/dist/ui/uikitml.d.ts +41 -0
  287. package/dist/ui/uikitml.d.ts.map +1 -0
  288. package/dist/ui/uikitml.js +119 -0
  289. package/dist/ui/uikitml.js.map +1 -0
  290. package/dist/version.d.ts +1 -1
  291. package/dist/version.js +1 -1
  292. package/dist/visibility/visibility-component.d.ts +14 -0
  293. package/dist/visibility/visibility-component.d.ts.map +1 -0
  294. package/dist/visibility/visibility-component.js +15 -0
  295. package/dist/visibility/visibility-component.js.map +1 -0
  296. package/dist/visibility/visibility.d.ts +3 -10
  297. package/dist/visibility/visibility.d.ts.map +1 -1
  298. package/dist/visibility/visibility.js +9 -12
  299. package/dist/visibility/visibility.js.map +1 -1
  300. package/package.json +36 -8
  301. package/dist/ecs/component-registry.d.ts +0 -54
  302. package/dist/ecs/component-registry.d.ts.map +0 -1
  303. package/dist/ecs/component-registry.js +0 -86
  304. package/dist/ecs/component-registry.js.map +0 -1
  305. package/dist/level/level-entity-creator.d.ts +0 -27
  306. package/dist/level/level-entity-creator.d.ts.map +0 -1
  307. package/dist/level/level-entity-creator.js +0 -108
  308. package/dist/level/level-entity-creator.js.map +0 -1
  309. package/dist/level/level-glxf-importer.d.ts +0 -23
  310. package/dist/level/level-glxf-importer.d.ts.map +0 -1
  311. package/dist/level/level-glxf-importer.js +0 -40
  312. package/dist/level/level-glxf-importer.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dome-gradient.js","sources":["../../src/environment/dome-gradient.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;AAKG;AAGH;;;;;;;;AAQG;AACI,MAAM,YAAY,GAAG,eAAe,CACzC,cAAc,EACd;AACE,IAAA,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;AAClE,IAAA,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;AACtE,IAAA,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;IACpE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;IAChD,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;CACrD,EACD,kCAAkC;;;;"}
1
+ {"version":3,"file":"dome-gradient.js","sources":["../../src/environment/dome-gradient.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;AAKG;AAGH;;;;;;;;;AASG;AACI,MAAM,YAAY,GAAG,eAAe,CACzC,cAAc,EACd;AACE,IAAA,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;AAClE,IAAA,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;AACtE,IAAA,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;IACpE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;IAChD,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;CACrD,EACD,kCAAkC;;;;"}
@@ -4,6 +4,18 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
+ import { Color } from '../runtime/index.js';
8
+ /**
9
+ * Compute sky/equator/ground hex colors from RGB views, reusing a single shared
10
+ * `Color` scratch object (`out`) instead of allocating one `Color` per channel
11
+ * per frame. Each `getHex()` is read before the next `setRGB()` overwrites
12
+ * `out`, so the shared instance is safe.
13
+ */
14
+ export declare function computeGradientHexes(out: Color, sky: ArrayLike<number>, equator: ArrayLike<number>, ground: ArrayLike<number>): {
15
+ skyHex: number;
16
+ equatorHex: number;
17
+ groundHex: number;
18
+ };
7
19
  declare const EnvironmentSystem_base: import("elics").SystemConstructor<import("elics").SystemSchema, {
8
20
  domeTextures: {
9
21
  required: import("elics").Component<{}>[];
@@ -35,10 +47,10 @@ declare const EnvironmentSystem_base: import("elics").SystemConstructor<import("
35
47
  * Unified background and image‑based lighting system.
36
48
  *
37
49
  * @remarks
38
- * - Background is driven by {@link DomeTexture} (HDR/LDR equirect) or {@link DomeGradient} (procedural sphere) and writes to `scene.background`.
50
+ * - {@link DomeTexture} writes an HDR/LDR equirectangular texture to `scene.background`; {@link DomeGradient} renders a procedural, clipping-proof sky mesh.
39
51
  * - IBL is driven by {@link IBLTexture} ("room" or HDR/LDR equirect via PMREM) or {@link IBLGradient} (PMREM of a gradient scene) and writes to `scene.environment`.
40
52
  * - Rotation and intensity hooks forward to `scene.backgroundRotation`, `scene.backgroundIntensity`, and `scene.environmentRotation`, `scene.environmentIntensity`.
41
- * - In immersive AR, background visuals are hidden while environment lighting remains active.
53
+ * - AR sessions always hide authored backgrounds for passthrough while retaining IBL.
42
54
  * - PMREM targets are regenerated only when sources change; the dome mesh and geometry are reused.
43
55
  *
44
56
  * @category Environment & Lighting
@@ -64,6 +76,7 @@ export declare class EnvironmentSystem extends EnvironmentSystem_base {
64
76
  private recenterYawOffset;
65
77
  private resetListenerCleanup;
66
78
  private needsResetListener;
79
+ private arEnvironment;
67
80
  init(): void;
68
81
  update(): void;
69
82
  private processBackground;
@@ -82,9 +95,12 @@ export declare class EnvironmentSystem extends EnvironmentSystem_base {
82
95
  private onXRSessionEnd;
83
96
  private onReferenceSpaceReset;
84
97
  private applyRecenterCompensation;
85
- private updateBackgroundForXRMode;
98
+ private updateSceneARMode;
86
99
  private ensureGradientDome;
87
100
  private clearGradientDome;
101
+ private clearGradientEnvironment;
102
+ private clearBackgroundSource;
103
+ private clearIBLSource;
88
104
  }
89
105
  export {};
90
106
  //# sourceMappingURL=environment-system.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-system.d.ts","sourceRoot":"","sources":["../../src/environment/environment-system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,iBAAkB,SAAQ,sBAKrC;IACA,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,kBAAkB,CAAkB;IAE5C,IAAI,IAAI,IAAI;IA2BZ,MAAM,IAAI,IAAI;YAqDA,iBAAiB;IAwB/B,OAAO,CAAC,+BAA+B;YASzB,2BAA2B;IAoBzC,OAAO,CAAC,qBAAqB;YAef,kBAAkB;YA4BlB,UAAU;IAwBxB,OAAO,CAAC,oBAAoB;YASd,gBAAgB;IAwB9B,OAAO,CAAC,cAAc;YAaR,iBAAiB;IA+C/B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,gBAAgB,CAQtB;IAEF,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,yBAAyB;IA2BjC,OAAO,CAAC,yBAAyB;IAoCjC,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,iBAAiB;CAW1B"}
1
+ {"version":3,"file":"environment-system.d.ts","sourceRoot":"","sources":["../../src/environment/environment-system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,EAEL,KAAK,EAQN,MAAM,qBAAqB,CAAC;AAW7B;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,KAAK,EACV,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,EACtB,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAC1B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GACxB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAK3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,iBAAkB,SAAQ,sBAKrC;IACA,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,aAAa,CAAgC;IAErD,IAAI,IAAI,IAAI;IAiCZ,MAAM,IAAI,IAAI;YAoDA,iBAAiB;IAwB/B,OAAO,CAAC,+BAA+B;YASzB,2BAA2B;IAoBzC,OAAO,CAAC,qBAAqB;YAef,kBAAkB;YAgClB,UAAU;IAwBxB,OAAO,CAAC,oBAAoB;YASd,gBAAgB;IAwB9B,OAAO,CAAC,cAAc;YAaR,iBAAiB;IAsD/B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,gBAAgB,CAStB;IAEF,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,yBAAyB;IA2BjC,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,kBAAkB;IAkC1B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,cAAc;CAUvB"}
@@ -9,6 +9,7 @@ import { DomeTexture } from './dome-texture.js';
9
9
  import { GradientEnvironment, createGradientMaterial } from './gradient-environment.js';
10
10
  import { IBLGradient } from './ibl-gradient.js';
11
11
  import { IBLTexture } from './ibl-texture.js';
12
+ import { SceneAREnvironmentController } from './scene-ar-environment.js';
12
13
  import { Color, PMREMGenerator, EquirectangularReflectionMapping, Mesh, SphereGeometry, BackSide } from 'three';
13
14
 
14
15
  /**
@@ -17,14 +18,26 @@ import { Color, PMREMGenerator, EquirectangularReflectionMapping, Mesh, SphereGe
17
18
  * This source code is licensed under the MIT license found in the
18
19
  * LICENSE file in the root directory of this source tree.
19
20
  */
21
+ /**
22
+ * Compute sky/equator/ground hex colors from RGB views, reusing a single shared
23
+ * `Color` scratch object (`out`) instead of allocating one `Color` per channel
24
+ * per frame. Each `getHex()` is read before the next `setRGB()` overwrites
25
+ * `out`, so the shared instance is safe.
26
+ */
27
+ function computeGradientHexes(out, sky, equator, ground) {
28
+ const skyHex = out.setRGB(sky[0], sky[1], sky[2]).getHex();
29
+ const equatorHex = out.setRGB(equator[0], equator[1], equator[2]).getHex();
30
+ const groundHex = out.setRGB(ground[0], ground[1], ground[2]).getHex();
31
+ return { skyHex, equatorHex, groundHex };
32
+ }
20
33
  /**
21
34
  * Unified background and image‑based lighting system.
22
35
  *
23
36
  * @remarks
24
- * - Background is driven by {@link DomeTexture} (HDR/LDR equirect) or {@link DomeGradient} (procedural sphere) and writes to `scene.background`.
37
+ * - {@link DomeTexture} writes an HDR/LDR equirectangular texture to `scene.background`; {@link DomeGradient} renders a procedural, clipping-proof sky mesh.
25
38
  * - IBL is driven by {@link IBLTexture} ("room" or HDR/LDR equirect via PMREM) or {@link IBLGradient} (PMREM of a gradient scene) and writes to `scene.environment`.
26
39
  * - Rotation and intensity hooks forward to `scene.backgroundRotation`, `scene.backgroundIntensity`, and `scene.environmentRotation`, `scene.environmentIntensity`.
27
- * - In immersive AR, background visuals are hidden while environment lighting remains active.
40
+ * - AR sessions always hide authored backgrounds for passthrough while retaining IBL.
28
41
  * - PMREM targets are regenerated only when sources change; the dome mesh and geometry are reused.
29
42
  *
30
43
  * @category Environment & Lighting
@@ -65,6 +78,7 @@ class EnvironmentSystem extends createSystem({
65
78
  else {
66
79
  this.needsResetListener = true;
67
80
  }
81
+ this.updateSceneARMode();
68
82
  };
69
83
  this.onXRSessionEnd = () => {
70
84
  var _a;
@@ -72,21 +86,25 @@ class EnvironmentSystem extends createSystem({
72
86
  this.resetListenerCleanup = null;
73
87
  this.recenterYawOffset = 0;
74
88
  this.needsResetListener = false;
89
+ this.updateSceneARMode(null);
75
90
  };
76
91
  }
77
92
  init() {
78
93
  this.pmrem = new PMREMGenerator(this.renderer);
94
+ this.arEnvironment = new SceneAREnvironmentController(this.scene, this.renderer);
79
95
  this.cleanupFuncs.push(() => {
80
96
  var _a, _b;
97
+ this.arEnvironment.restore();
81
98
  this.pmrem.dispose();
82
99
  (_a = this.state.environmentTarget) === null || _a === void 0 ? void 0 : _a.dispose();
83
100
  this.state.environmentTarget = undefined;
84
101
  this.clearGradientDome();
102
+ this.clearGradientEnvironment();
85
103
  (_b = this.gradientGeometry) === null || _b === void 0 ? void 0 : _b.dispose();
86
104
  this.gradientGeometry = undefined;
87
105
  });
88
106
  // XR background toggle
89
- this.cleanupFuncs.push(this.visibilityState.subscribe(() => this.updateBackgroundForXRMode()));
107
+ this.cleanupFuncs.push(this.visibilityState.subscribe(() => this.updateSceneARMode()));
90
108
  // XR recenter compensation
91
109
  this.xrManager.addEventListener('sessionstart', this.onXRSessionStart);
92
110
  this.xrManager.addEventListener('sessionend', this.onXRSessionEnd);
@@ -99,7 +117,6 @@ class EnvironmentSystem extends createSystem({
99
117
  });
100
118
  }
101
119
  update() {
102
- var _a;
103
120
  // Deferred reset listener attachment
104
121
  if (this.needsResetListener) {
105
122
  const refSpace = this.xrManager.getReferenceSpace();
@@ -123,6 +140,9 @@ class EnvironmentSystem extends createSystem({
123
140
  if (backgroundEntity) {
124
141
  this.processBackground(backgroundEntity);
125
142
  }
143
+ else {
144
+ this.clearBackgroundSource();
145
+ }
126
146
  // Choose IBL source: IBLTexture > IBLGradient
127
147
  let iblEntity;
128
148
  for (const e of this.queries.iblTextures.entities) {
@@ -138,12 +158,10 @@ class EnvironmentSystem extends createSystem({
138
158
  if (iblEntity) {
139
159
  this.processIBL(iblEntity);
140
160
  }
141
- // Keep gradient dome centered and sized
142
- if (this.state.gradientDome) {
143
- this.state.gradientDome.position.copy(this.camera.position);
144
- const r = Math.max(1e-3, (((_a = this.camera) === null || _a === void 0 ? void 0 : _a.far) || 1000) * 0.95);
145
- this.state.gradientDome.scale.setScalar(r);
161
+ else {
162
+ this.clearIBLSource();
146
163
  }
164
+ this.updateSceneARMode();
147
165
  }
148
166
  // Background handling
149
167
  async processBackground(entity) {
@@ -224,9 +242,13 @@ class EnvironmentSystem extends createSystem({
224
242
  if (!forIBL) {
225
243
  // Background gradient dome mesh
226
244
  this.ensureGradientDome(skyHex, equatorHex, groundHex, intensity);
227
- // Ensure correct visibility for AR sessions (hide in AR)
228
245
  if (this.state.gradientDome) {
229
- this.state.gradientDome.visible = !this.state.isAR;
246
+ this.state.gradientDome.userData.iwsdkSceneDomeGradient = {
247
+ equator: Array.from(equatorV),
248
+ ground: Array.from(groundV),
249
+ intensity,
250
+ sky: Array.from(skyV),
251
+ };
230
252
  }
231
253
  }
232
254
  }
@@ -303,9 +325,9 @@ class EnvironmentSystem extends createSystem({
303
325
  const equatorV = entity.getVectorView(IBLGradient, 'equator');
304
326
  const groundV = entity.getVectorView(IBLGradient, 'ground');
305
327
  const intensity = entity.getValue(IBLGradient, 'intensity') || 1.0;
306
- const skyHex = new Color().setRGB(skyV[0], skyV[1], skyV[2]).getHex();
307
- const equatorHex = new Color(equatorV[0], equatorV[1], equatorV[2]).getHex();
308
- const groundHex = new Color(groundV[0], groundV[1], groundV[2]).getHex();
328
+ // Reuse the shared scratch Color instead of allocating three new Color
329
+ // objects every frame (updateDomeGradient already uses this.tmpColor).
330
+ const { skyHex, equatorHex, groundHex } = computeGradientHexes(this.tmpColor, skyV, equatorV, groundV);
309
331
  let gradientScene = this.state.gradientEnvironmentScene;
310
332
  if (!gradientScene) {
311
333
  gradientScene = new GradientEnvironment(skyHex, equatorHex, groundHex, intensity);
@@ -326,6 +348,12 @@ class EnvironmentSystem extends createSystem({
326
348
  }
327
349
  }
328
350
  const target = this.pmrem.fromScene(gradientScene);
351
+ target.texture.userData.iwsdkSceneIBLGradient = {
352
+ equator: Array.from(equatorV),
353
+ ground: Array.from(groundV),
354
+ intensity,
355
+ sky: Array.from(skyV),
356
+ };
329
357
  this.setEnvironment(target);
330
358
  // Apply IBL intensity for gradient as well
331
359
  this.scene.environmentIntensity = intensity;
@@ -378,48 +406,28 @@ class EnvironmentSystem extends createSystem({
378
406
  break;
379
407
  }
380
408
  }
381
- // XR background handling
382
- updateBackgroundForXRMode() {
383
- var _a, _b, _c;
384
- const session = (_c = (_b = (_a = this.xrManager).getSession) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : this.world.session;
385
- const blend = session === null || session === void 0 ? void 0 : session.environmentBlendMode;
386
- const isAR = blend === 'alpha-blend' ||
387
- blend === 'additive' ||
388
- blend === 'subtractive';
389
- if (isAR === this.state.isAR) {
390
- return;
391
- }
392
- this.state.isAR = isAR;
393
- if (isAR) {
394
- if (this.scene.background !== null &&
395
- this.state.savedBackground === undefined) {
396
- this.state.savedBackground = this.scene.background;
397
- this.scene.background = null;
398
- }
399
- // Hide procedural gradient dome in AR as well
400
- if (this.state.gradientDome) {
401
- this.state.gradientDome.visible = false;
402
- }
403
- }
404
- else if (this.state.savedBackground !== undefined) {
405
- this.scene.background = this.state.savedBackground;
406
- this.state.savedBackground = undefined;
407
- // Restore gradient dome visibility when exiting AR
408
- if (this.state.gradientDome) {
409
- this.state.gradientDome.visible = true;
410
- }
411
- }
409
+ // Apply document AR overrides only while an actual AR session is active.
410
+ updateSceneARMode(sessionOverride) {
411
+ var _a, _b;
412
+ const managerSession = (_b = (_a = this.xrManager).getSession) === null || _b === void 0 ? void 0 : _b.call(_a);
413
+ const session = sessionOverride === undefined
414
+ ? managerSession === undefined
415
+ ? this.world.session
416
+ : managerSession
417
+ : sessionOverride;
418
+ this.arEnvironment.update({
419
+ session,
420
+ authoredBackgrounds: this.state.gradientDome == null ? [] : [this.state.gradientDome],
421
+ });
412
422
  }
413
423
  // Gradient dome mesh utilities (background)
414
424
  ensureGradientDome(skyHex, equatorHex, groundHex, intensity) {
415
- var _a;
416
425
  if (!this.gradientGeometry) {
417
426
  this.gradientGeometry = new SphereGeometry(1, 32, 15);
418
427
  }
419
428
  if (!this.state.gradientDome) {
420
429
  const material = createGradientMaterial(skyHex, equatorHex, groundHex, intensity, BackSide);
421
430
  const dome = new Mesh(this.gradientGeometry, material);
422
- dome.scale.setScalar(Math.max(1e-3, (((_a = this.camera) === null || _a === void 0 ? void 0 : _a.far) || 1000) * 0.95));
423
431
  dome.renderOrder = -1e9;
424
432
  dome.frustumCulled = false;
425
433
  this.scene.add(dome);
@@ -442,12 +450,34 @@ class EnvironmentSystem extends createSystem({
442
450
  this.state.gradientDome.material.dispose();
443
451
  this.state.gradientDome = undefined;
444
452
  }
453
+ }
454
+ clearGradientEnvironment() {
445
455
  if (this.state.gradientEnvironmentScene) {
446
456
  this.state.gradientEnvironmentScene.dispose();
447
457
  this.state.gradientEnvironmentScene = undefined;
448
458
  }
459
+ this.state.gradientEnvironmentMesh = undefined;
460
+ }
461
+ clearBackgroundSource() {
462
+ this.clearGradientDome();
463
+ if (this.state.backgroundTexture != null &&
464
+ this.scene.background === this.state.backgroundTexture) {
465
+ this.scene.background = null;
466
+ }
467
+ this.state.backgroundTexture = undefined;
468
+ this.state.backgroundSource = undefined;
469
+ }
470
+ clearIBLSource() {
471
+ const target = this.state.environmentTarget;
472
+ if (target != null && this.scene.environment === target.texture) {
473
+ this.scene.environment = null;
474
+ }
475
+ target === null || target === void 0 ? void 0 : target.dispose();
476
+ this.state.environmentTarget = undefined;
477
+ this.state.environmentSource = undefined;
478
+ this.clearGradientEnvironment();
449
479
  }
450
480
  }
451
481
 
452
- export { EnvironmentSystem };
482
+ export { EnvironmentSystem, computeGradientHexes };
453
483
  //# sourceMappingURL=environment-system.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-system.js","sources":["../../src/environment/environment-system.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment-system.js","sources":["../../src/environment/environment-system.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gradient-environment.d.ts","sourceRoot":"","sources":["../../src/environment/gradient-environment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,QAAQ,EAER,SAAS,EAET,KAAK,EACL,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,eAAe;;;CA8B3B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,OAAO,QAAQ,GAAG,OAAO,SAAqB,GACnD,cAAc,CAahB;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAE1C,MAAM,GAAE,MAAiB,EACzB,UAAU,GAAE,MAAiB,EAC7B,SAAS,GAAE,MAAiB,EAC5B,SAAS,GAAE,MAAY;IAkBzB,OAAO,IAAI,IAAI;CAchB"}
1
+ {"version":3,"file":"gradient-environment.d.ts","sourceRoot":"","sources":["../../src/environment/gradient-environment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,QAAQ,EAER,SAAS,EAET,KAAK,EACL,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,eAAe;;;CAoC3B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,OAAO,QAAQ,GAAG,OAAO,SAAqB,GACnD,cAAc,CAahB;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAE1C,MAAM,GAAE,MAAiB,EACzB,UAAU,GAAE,MAAiB,EAC7B,SAAS,GAAE,MAAiB,EAC5B,SAAS,GAAE,MAAY;IAkBzB,OAAO,IAAI,IAAI;CAchB"}
@@ -1,5 +1,5 @@
1
1
  import '../runtime/three.js';
2
- import { FrontSide, Scene, SphereGeometry, Mesh, ShaderMaterial, Color, BackSide } from 'three';
2
+ import { FrontSide, Scene, SphereGeometry, Mesh, ShaderMaterial, BackSide, Color } from 'three';
3
3
 
4
4
  /**
5
5
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -13,21 +13,27 @@ import { FrontSide, Scene, SphereGeometry, Mesh, ShaderMaterial, Color, BackSide
13
13
  */
14
14
  const GRADIENT_SHADER = {
15
15
  vertexShader: /* glsl */ `
16
- varying vec3 vWorldPosition;
16
+ varying vec3 vWorldDirection;
17
17
  void main() {
18
- vec4 worldPosition = modelMatrix * vec4(position, 1.0);
19
- vWorldPosition = worldPosition.xyz;
20
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
18
+ // A sky is directional, not positional. Strip camera translation so the
19
+ // dome follows every browser/XR camera without depending on its parent
20
+ // transform, then pin it to clip-space depth to avoid near/far clipping.
21
+ vec3 worldDirection = mat3(modelMatrix) * position;
22
+ vWorldDirection = worldDirection;
23
+ vec4 clipPosition = projectionMatrix
24
+ * mat4(mat3(viewMatrix))
25
+ * vec4(worldDirection, 1.0);
26
+ gl_Position = clipPosition.xyww;
21
27
  }
22
28
  `,
23
29
  fragmentShader: /* glsl */ `
24
30
  uniform vec3 skyColor;
25
31
  uniform vec3 equatorColor;
26
32
  uniform vec3 groundColor;
27
- varying vec3 vWorldPosition;
33
+ varying vec3 vWorldDirection;
28
34
 
29
35
  void main() {
30
- float h = normalize(vWorldPosition).y;
36
+ float h = normalize(vWorldDirection).y;
31
37
  vec3 color;
32
38
 
33
39
  if (h > 0.0) {
@@ -1 +1 @@
1
- {"version":3,"file":"gradient-environment.js","sources":["../../src/environment/gradient-environment.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;;;;;AAKG;AAYH;;;AAGG;AACI,MAAM,eAAe,GAAG;IAC7B,YAAY,aAAa;;;;;;;AAOxB,EAAA,CAAA;IACD,cAAc,aAAa;;;;;;;;;;;;;;;;;;;;AAoB1B,EAAA,CAAA;;AAGH;;;;;;;;AAQG;AACG,SAAU,sBAAsB,CACpC,MAAc,EACd,UAAkB,EAClB,SAAiB,EACjB,SAAiB,EACjB,IAAA,GAA2C,SAAS,EAAA;IAEpD,OAAO,IAAI,cAAc,CAAC;AACxB,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AAChE,YAAA,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AACxE,YAAA,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AACvE,SAAA;QACD,YAAY,EAAE,eAAe,CAAC,YAAY;QAC1C,cAAc,EAAE,eAAe,CAAC,cAAc;QAC9C,IAAI;QACJ,UAAU,EAAE,IAAI,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI;QAC5C,SAAS,EAAE,IAAI,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI;AAC5C,KAAA,CAAC;AACJ;AAEA;;;;;;AAMG;AACG,MAAO,mBAAoB,SAAQ,KAAK,CAAA;IAC5C,WAAA,CACE,MAAA,GAAiB,QAAQ,EACzB,UAAA,GAAqB,QAAQ,EAC7B,SAAA,GAAoB,QAAQ,EAC5B,SAAA,GAAoB,GAAG,EAAA;AAEvB,QAAA,KAAK,EAAE;;QAGP,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AAChD,QAAA,MAAM,QAAQ,GAAG,sBAAsB,CACrC,MAAM,EACN,UAAU,EACV,SAAS,EACT,SAAS,EACT,QAAQ,CACT;QAED,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACnD,QAAA,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1B;IAEA,OAAO,GAAA;AACL,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAO;AAEhC,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAW,KAAI;AAC5B,YAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,gBAAA,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9B,gBAAA,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChC;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,QAAQ,CAAC,OAAO,EAAE;QACpB;IACF;AACD;;;;"}
1
+ {"version":3,"file":"gradient-environment.js","sources":["../../src/environment/gradient-environment.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;;;;;AAKG;AAYH;;;AAGG;AACI,MAAM,eAAe,GAAG;IAC7B,YAAY,aAAa;;;;;;;;;;;;;AAaxB,EAAA,CAAA;IACD,cAAc,aAAa;;;;;;;;;;;;;;;;;;;;AAoB1B,EAAA,CAAA;;AAGH;;;;;;;;AAQG;AACG,SAAU,sBAAsB,CACpC,MAAc,EACd,UAAkB,EAClB,SAAiB,EACjB,SAAiB,EACjB,IAAA,GAA2C,SAAS,EAAA;IAEpD,OAAO,IAAI,cAAc,CAAC;AACxB,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AAChE,YAAA,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AACxE,YAAA,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AACvE,SAAA;QACD,YAAY,EAAE,eAAe,CAAC,YAAY;QAC1C,cAAc,EAAE,eAAe,CAAC,cAAc;QAC9C,IAAI;QACJ,UAAU,EAAE,IAAI,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI;QAC5C,SAAS,EAAE,IAAI,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI;AAC5C,KAAA,CAAC;AACJ;AAEA;;;;;;AAMG;AACG,MAAO,mBAAoB,SAAQ,KAAK,CAAA;IAC5C,WAAA,CACE,MAAA,GAAiB,QAAQ,EACzB,UAAA,GAAqB,QAAQ,EAC7B,SAAA,GAAoB,QAAQ,EAC5B,SAAA,GAAoB,GAAG,EAAA;AAEvB,QAAA,KAAK,EAAE;;QAGP,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AAChD,QAAA,MAAM,QAAQ,GAAG,sBAAsB,CACrC,MAAM,EACN,UAAU,EACV,SAAS,EACT,SAAS,EACT,QAAQ,CACT;QAED,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACnD,QAAA,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1B;IAEA,OAAO,GAAA;AACL,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAO;AAEhC,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAW,KAAI;AAC5B,YAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,gBAAA,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9B,gBAAA,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChC;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,QAAQ,CAAC,OAAO,EAAE;QACpB;IACF;AACD;;;;"}
@@ -0,0 +1,39 @@
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 { Object3D, Scene, WebGLRenderer } from '../runtime/index.js';
8
+ export interface ResolvedSceneAREnvironment {
9
+ isAR: boolean;
10
+ background: 'transparent' | 'environment';
11
+ }
12
+ export interface SceneAREnvironmentUpdate {
13
+ session?: XRSession | null;
14
+ authoredBackgrounds?: readonly Object3D[];
15
+ }
16
+ /** Resolve the fixed transparent-background policy against the active session. */
17
+ export declare function resolveSceneAREnvironment(session: XRSession | null | undefined): ResolvedSceneAREnvironment;
18
+ /**
19
+ * Applies reversible AR-only background overrides.
20
+ *
21
+ * Entering AR snapshots the visible environment, hides it for passthrough,
22
+ * and restores it exactly when the session ends.
23
+ */
24
+ export declare class SceneAREnvironmentController {
25
+ private readonly scene;
26
+ private readonly renderer;
27
+ private backgroundSuppressed;
28
+ private backgroundBase;
29
+ private clearAlphaBase;
30
+ private readonly authoredBackgroundVisibility;
31
+ constructor(scene: Scene, renderer: WebGLRenderer);
32
+ update(update: SceneAREnvironmentUpdate): ResolvedSceneAREnvironment;
33
+ restore(): void;
34
+ private updateBackground;
35
+ private restoreBackground;
36
+ private suppressObjectVisibility;
37
+ private restoreObjectVisibility;
38
+ }
39
+ //# sourceMappingURL=scene-ar-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-ar-environment.d.ts","sourceRoot":"","sources":["../../src/environment/scene-ar-environment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE1E,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,aAAa,GAAG,aAAa,CAAC;CAC3C;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,mBAAmB,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CAC3C;AAED,kFAAkF;AAClF,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GACpC,0BAA0B,CAY5B;AAED;;;;;GAKG;AACH,qBAAa,4BAA4B;IAOrC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAgC;gBAG1D,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,aAAa;IAG1C,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,0BAA0B;IAOpE,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,uBAAuB;CAMhC"}
@@ -0,0 +1,93 @@
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
+ /** Resolve the fixed transparent-background policy against the active session. */
8
+ function resolveSceneAREnvironment(session) {
9
+ const blendMode = session === null || session === void 0 ? void 0 : session.environmentBlendMode;
10
+ const isAR = blendMode === 'alpha-blend' || blendMode === 'additive';
11
+ if (!isAR) {
12
+ return { isAR: false, background: 'environment' };
13
+ }
14
+ return {
15
+ isAR: true,
16
+ background: 'transparent',
17
+ };
18
+ }
19
+ /**
20
+ * Applies reversible AR-only background overrides.
21
+ *
22
+ * Entering AR snapshots the visible environment, hides it for passthrough,
23
+ * and restores it exactly when the session ends.
24
+ */
25
+ class SceneAREnvironmentController {
26
+ constructor(scene, renderer) {
27
+ this.scene = scene;
28
+ this.renderer = renderer;
29
+ this.backgroundSuppressed = false;
30
+ this.backgroundBase = null;
31
+ this.clearAlphaBase = 1;
32
+ this.authoredBackgroundVisibility = new Map();
33
+ }
34
+ update(update) {
35
+ var _a;
36
+ const policy = resolveSceneAREnvironment(update.session);
37
+ this.updateBackground(policy.isAR, (_a = update.authoredBackgrounds) !== null && _a !== void 0 ? _a : []);
38
+ return policy;
39
+ }
40
+ restore() {
41
+ this.restoreBackground();
42
+ this.restoreObjectVisibility(this.authoredBackgroundVisibility);
43
+ }
44
+ updateBackground(suppress, authoredBackgrounds) {
45
+ if (!suppress) {
46
+ this.restoreBackground();
47
+ this.restoreObjectVisibility(this.authoredBackgroundVisibility);
48
+ return;
49
+ }
50
+ if (!this.backgroundSuppressed) {
51
+ this.backgroundBase = this.scene.background;
52
+ this.clearAlphaBase = this.renderer.getClearAlpha();
53
+ this.backgroundSuppressed = true;
54
+ }
55
+ else {
56
+ if (this.scene.background !== null) {
57
+ this.backgroundBase = this.scene.background;
58
+ }
59
+ const clearAlpha = this.renderer.getClearAlpha();
60
+ if (clearAlpha !== 0) {
61
+ this.clearAlphaBase = clearAlpha;
62
+ }
63
+ }
64
+ this.scene.background = null;
65
+ this.renderer.setClearAlpha(0);
66
+ this.suppressObjectVisibility(authoredBackgrounds, this.authoredBackgroundVisibility);
67
+ }
68
+ restoreBackground() {
69
+ if (!this.backgroundSuppressed) {
70
+ return;
71
+ }
72
+ this.scene.background = this.backgroundBase;
73
+ this.renderer.setClearAlpha(this.clearAlphaBase);
74
+ this.backgroundSuppressed = false;
75
+ }
76
+ suppressObjectVisibility(objects, visibility) {
77
+ for (const object of objects) {
78
+ if (!visibility.has(object)) {
79
+ visibility.set(object, object.visible);
80
+ }
81
+ object.visible = false;
82
+ }
83
+ }
84
+ restoreObjectVisibility(visibility) {
85
+ for (const [object, wasVisible] of visibility) {
86
+ object.visible = wasVisible;
87
+ }
88
+ visibility.clear();
89
+ }
90
+ }
91
+
92
+ export { SceneAREnvironmentController, resolveSceneAREnvironment };
93
+ //# sourceMappingURL=scene-ar-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-ar-environment.js","sources":["../../src/environment/scene-ar-environment.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
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 { HandleStore } from '@pmndrs/handle';
8
+ /**
9
+ * Pure helpers backing {@link GrabSystem.forceRelease} and
10
+ * {@link GrabSystem.getHolderHand}. Kept side-effect-free and dependency-light
11
+ * so they can be unit-tested without spinning up the full ECS / xr-input
12
+ * import chain.
13
+ *
14
+ * Not part of the public package API surface — `grab-system.ts` is the only
15
+ * intended caller.
16
+ */
17
+ /**
18
+ * Cancel every active pointer on a grab `handle`. Safe to call when `handle`
19
+ * is `undefined`, when the entity is not currently held, or when the
20
+ * underlying `cancel()` throws (errors are swallowed to match the cleanup
21
+ * semantics already used inside `GrabSystem` on Handle-component disqualify).
22
+ */
23
+ export declare function cancelGrabHandle(handle: HandleStore<unknown> | undefined): void;
24
+ /**
25
+ * Determine which controller is currently holding the entity backing
26
+ * `handle`, given the candidate pointer IDs per hand.
27
+ *
28
+ * Each hand contributes the IDs of every pointer kind that can capture a
29
+ * grab handle today — near grabs use the `grab` sub-pointer, distance grabs
30
+ * use the `ray` sub-pointer (per `pointerEventsType` on the handle's
31
+ * object). Passing both keeps `getHolderHand` correct across both grab
32
+ * styles without leaking pointer-kind selection into callers.
33
+ *
34
+ * Returns `'left'` / `'right'` for single-hand grabs, `'left'` for two-hand
35
+ * grabs (deterministic), and `null` when the entity has no active grabs or
36
+ * none of the candidate IDs match.
37
+ */
38
+ export declare function findHolderHand(handle: HandleStore<unknown> | undefined, leftPointerIds: readonly number[], rightPointerIds: readonly number[]): 'left' | 'right' | null;
39
+ //# sourceMappingURL=grab-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grab-helpers.d.ts","sourceRoot":"","sources":["../../src/grab/grab-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,GACvC,IAAI,CAON;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,EACxC,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,MAAM,GAAG,OAAO,GAAG,IAAI,CAWzB"}