@aura3d/engine 4.3.6 → 4.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 (510) hide show
  1. package/README.md +1 -1
  2. package/dist/animation/AnimationTrack.d.ts.map +1 -1
  3. package/dist/animation/AnimationTrack.js +3 -1
  4. package/dist/animation/AnimationTrack.js.map +1 -1
  5. package/dist/animation/pose/PoseMixer.d.ts.map +1 -1
  6. package/dist/animation/pose/PoseMixer.js +3 -0
  7. package/dist/animation/pose/PoseMixer.js.map +1 -1
  8. package/dist/assets/GLTFAnimationRuntime.d.ts.map +1 -1
  9. package/dist/assets/GLTFAnimationRuntime.js +11 -4
  10. package/dist/assets/GLTFAnimationRuntime.js.map +1 -1
  11. package/dist/assets/GLTFLoader.d.ts +2 -0
  12. package/dist/assets/GLTFLoader.d.ts.map +1 -1
  13. package/dist/assets/GLTFLoader.js +17 -3
  14. package/dist/assets/GLTFLoader.js.map +1 -1
  15. package/dist/aura3d-cli/cli-help.d.ts.map +1 -1
  16. package/dist/aura3d-cli/cli-help.js +3 -0
  17. package/dist/aura3d-cli/cli-help.js.map +1 -1
  18. package/dist/aura3d-cli/cli.d.ts.map +1 -1
  19. package/dist/aura3d-cli/cli.js +26 -1
  20. package/dist/aura3d-cli/cli.js.map +1 -1
  21. package/dist/aura3d-cli/deploy-browser-check.d.ts +78 -0
  22. package/dist/aura3d-cli/deploy-browser-check.d.ts.map +1 -0
  23. package/dist/aura3d-cli/deploy-browser-check.js +167 -0
  24. package/dist/aura3d-cli/deploy-browser-check.js.map +1 -0
  25. package/dist/aura3d-cli/migrate-three/emit.d.ts.map +1 -1
  26. package/dist/aura3d-cli/migrate-three/emit.js +109 -29
  27. package/dist/aura3d-cli/migrate-three/emit.js.map +1 -1
  28. package/dist/aura3d-cli/migrate-three/mappings.d.ts +15 -0
  29. package/dist/aura3d-cli/migrate-three/mappings.d.ts.map +1 -1
  30. package/dist/aura3d-cli/migrate-three/mappings.js +70 -60
  31. package/dist/aura3d-cli/migrate-three/mappings.js.map +1 -1
  32. package/dist/aura3d-cli/migrate-three/parse.d.ts +9 -0
  33. package/dist/aura3d-cli/migrate-three/parse.d.ts.map +1 -1
  34. package/dist/aura3d-cli/migrate-three/parse.js +1 -1
  35. package/dist/aura3d-cli/migrate-three/parse.js.map +1 -1
  36. package/dist/create-aura3d/index.js +1 -1
  37. package/dist/engine/agent-api/Clock.d.ts +4 -1
  38. package/dist/engine/agent-api/Clock.d.ts.map +1 -1
  39. package/dist/engine/agent-api/Clock.js +8 -2
  40. package/dist/engine/agent-api/Clock.js.map +1 -1
  41. package/dist/engine/agent-api/animationMask.d.ts +14 -0
  42. package/dist/engine/agent-api/animationMask.d.ts.map +1 -0
  43. package/dist/engine/agent-api/animationMask.js +23 -0
  44. package/dist/engine/agent-api/animationMask.js.map +1 -0
  45. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts +2 -0
  46. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
  47. package/dist/engine/agent-api/app/actorAnimationHandle.js +21 -1
  48. package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
  49. package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
  50. package/dist/engine/agent-api/app/createAuraApp.js +55 -5
  51. package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
  52. package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
  53. package/dist/engine/agent-api/app/frameLoop.js +28 -6
  54. package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
  55. package/dist/engine/agent-api/app/mountRenderer.d.ts +6 -1
  56. package/dist/engine/agent-api/app/mountRenderer.d.ts.map +1 -1
  57. package/dist/engine/agent-api/app/mountRenderer.js +2 -2
  58. package/dist/engine/agent-api/app/mountRenderer.js.map +1 -1
  59. package/dist/engine/agent-api/app/renderPath.d.ts +57 -0
  60. package/dist/engine/agent-api/app/renderPath.d.ts.map +1 -0
  61. package/dist/engine/agent-api/app/renderPath.js +163 -0
  62. package/dist/engine/agent-api/app/renderPath.js.map +1 -0
  63. package/dist/engine/agent-api/app/rendererOptions.d.ts +7 -0
  64. package/dist/engine/agent-api/app/rendererOptions.d.ts.map +1 -1
  65. package/dist/engine/agent-api/app/rendererOptions.js +20 -0
  66. package/dist/engine/agent-api/app/rendererOptions.js.map +1 -1
  67. package/dist/engine/agent-api/app/routeState.d.ts.map +1 -1
  68. package/dist/engine/agent-api/app/routeState.js +8 -3
  69. package/dist/engine/agent-api/app/routeState.js.map +1 -1
  70. package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
  71. package/dist/engine/agent-api/app/runtimeNodes.js +35 -0
  72. package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
  73. package/dist/engine/agent-api/camera/extension.d.ts.map +1 -1
  74. package/dist/engine/agent-api/camera/extension.js +2 -2
  75. package/dist/engine/agent-api/camera/extension.js.map +1 -1
  76. package/dist/engine/agent-api/camera/rigs/fromSpec.d.ts +2 -0
  77. package/dist/engine/agent-api/camera/rigs/fromSpec.d.ts.map +1 -1
  78. package/dist/engine/agent-api/camera/rigs/fromSpec.js +11 -1
  79. package/dist/engine/agent-api/camera/rigs/fromSpec.js.map +1 -1
  80. package/dist/engine/agent-api/compiler/animation.d.ts.map +1 -1
  81. package/dist/engine/agent-api/compiler/animation.js +2 -1
  82. package/dist/engine/agent-api/compiler/animation.js.map +1 -1
  83. package/dist/engine/agent-api/compiler/camera.d.ts.map +1 -1
  84. package/dist/engine/agent-api/compiler/camera.js +10 -0
  85. package/dist/engine/agent-api/compiler/camera.js.map +1 -1
  86. package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
  87. package/dist/engine/agent-api/compiler/compileScene.js +9 -2
  88. package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
  89. package/dist/engine/agent-api/compiler/environment.d.ts +19 -2
  90. package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
  91. package/dist/engine/agent-api/compiler/environment.js +81 -12
  92. package/dist/engine/agent-api/compiler/environment.js.map +1 -1
  93. package/dist/engine/agent-api/compiler/geometry.d.ts +18 -1
  94. package/dist/engine/agent-api/compiler/geometry.d.ts.map +1 -1
  95. package/dist/engine/agent-api/compiler/geometry.js +25 -5
  96. package/dist/engine/agent-api/compiler/geometry.js.map +1 -1
  97. package/dist/engine/agent-api/compiler/lights.d.ts.map +1 -1
  98. package/dist/engine/agent-api/compiler/lights.js +14 -6
  99. package/dist/engine/agent-api/compiler/lights.js.map +1 -1
  100. package/dist/engine/agent-api/compiler/observations.d.ts +9 -1
  101. package/dist/engine/agent-api/compiler/observations.d.ts.map +1 -1
  102. package/dist/engine/agent-api/compiler/observations.js +5 -4
  103. package/dist/engine/agent-api/compiler/observations.js.map +1 -1
  104. package/dist/engine/agent-api/compiler/optionCoverage.js +17 -0
  105. package/dist/engine/agent-api/compiler/optionCoverage.js.map +1 -1
  106. package/dist/engine/agent-api/compiler/postprocess.d.ts.map +1 -1
  107. package/dist/engine/agent-api/compiler/postprocess.js +2 -0
  108. package/dist/engine/agent-api/compiler/postprocess.js.map +1 -1
  109. package/dist/engine/agent-api/compiler/primitives.d.ts +22 -0
  110. package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
  111. package/dist/engine/agent-api/compiler/primitives.js +88 -3
  112. package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
  113. package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
  114. package/dist/engine/agent-api/compiler/renderInput.js +40 -4
  115. package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
  116. package/dist/engine/agent-api/compiler/renderer.d.ts +1 -1
  117. package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
  118. package/dist/engine/agent-api/compiler/renderer.js +22 -8
  119. package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
  120. package/dist/engine/agent-api/compiler/shadows.d.ts +32 -1
  121. package/dist/engine/agent-api/compiler/shadows.d.ts.map +1 -1
  122. package/dist/engine/agent-api/compiler/shadows.js +99 -4
  123. package/dist/engine/agent-api/compiler/shadows.js.map +1 -1
  124. package/dist/engine/agent-api/diagnostics.d.ts +22 -0
  125. package/dist/engine/agent-api/diagnostics.d.ts.map +1 -1
  126. package/dist/engine/agent-api/diagnostics.js +53 -1
  127. package/dist/engine/agent-api/diagnostics.js.map +1 -1
  128. package/dist/engine/agent-api/feel/extension.d.ts.map +1 -1
  129. package/dist/engine/agent-api/feel/extension.js +2 -1
  130. package/dist/engine/agent-api/feel/extension.js.map +1 -1
  131. package/dist/engine/agent-api/looks/lookFill.d.ts +4 -0
  132. package/dist/engine/agent-api/looks/lookFill.d.ts.map +1 -0
  133. package/dist/engine/agent-api/looks/lookFill.js +29 -0
  134. package/dist/engine/agent-api/looks/lookFill.js.map +1 -0
  135. package/dist/engine/agent-api/looks/lookPresets.d.ts +13 -0
  136. package/dist/engine/agent-api/looks/lookPresets.d.ts.map +1 -1
  137. package/dist/engine/agent-api/looks/lookPresets.js +5 -0
  138. package/dist/engine/agent-api/looks/lookPresets.js.map +1 -1
  139. package/dist/engine/agent-api/looks/looks.d.ts.map +1 -1
  140. package/dist/engine/agent-api/looks/looks.js +6 -0
  141. package/dist/engine/agent-api/looks/looks.js.map +1 -1
  142. package/dist/engine/agent-api/looks/structuralQA.d.ts.map +1 -1
  143. package/dist/engine/agent-api/looks/structuralQA.js +4 -2
  144. package/dist/engine/agent-api/looks/structuralQA.js.map +1 -1
  145. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts +5 -4
  146. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts.map +1 -1
  147. package/dist/engine/agent-api/nodes/game/instanceTransforms.js +61 -5
  148. package/dist/engine/agent-api/nodes/game/instanceTransforms.js.map +1 -1
  149. package/dist/engine/agent-api/nodes/groups.d.ts.map +1 -1
  150. package/dist/engine/agent-api/nodes/groups.js +2 -1
  151. package/dist/engine/agent-api/nodes/groups.js.map +1 -1
  152. package/dist/engine/agent-api/nodes/interactions.d.ts +32 -10
  153. package/dist/engine/agent-api/nodes/interactions.d.ts.map +1 -1
  154. package/dist/engine/agent-api/nodes/interactions.js +40 -11
  155. package/dist/engine/agent-api/nodes/interactions.js.map +1 -1
  156. package/dist/engine/agent-api/nodes/model.d.ts +3 -0
  157. package/dist/engine/agent-api/nodes/model.d.ts.map +1 -1
  158. package/dist/engine/agent-api/nodes/model.js +4 -1
  159. package/dist/engine/agent-api/nodes/model.js.map +1 -1
  160. package/dist/engine/agent-api/nodes/optionDiagnostics.d.ts +14 -0
  161. package/dist/engine/agent-api/nodes/optionDiagnostics.d.ts.map +1 -0
  162. package/dist/engine/agent-api/nodes/optionDiagnostics.js +34 -0
  163. package/dist/engine/agent-api/nodes/optionDiagnostics.js.map +1 -0
  164. package/dist/engine/agent-api/nodes/orbitInteraction.d.ts +9 -0
  165. package/dist/engine/agent-api/nodes/orbitInteraction.d.ts.map +1 -0
  166. package/dist/engine/agent-api/nodes/orbitInteraction.js +52 -0
  167. package/dist/engine/agent-api/nodes/orbitInteraction.js.map +1 -0
  168. package/dist/engine/agent-api/nodes/physics.d.ts +1 -0
  169. package/dist/engine/agent-api/nodes/physics.d.ts.map +1 -1
  170. package/dist/engine/agent-api/nodes/physics.js +15 -3
  171. package/dist/engine/agent-api/nodes/physics.js.map +1 -1
  172. package/dist/engine/agent-api/nodes/primitives.d.ts.map +1 -1
  173. package/dist/engine/agent-api/nodes/primitives.js +23 -0
  174. package/dist/engine/agent-api/nodes/primitives.js.map +1 -1
  175. package/dist/engine/agent-api/nodes/scene.d.ts.map +1 -1
  176. package/dist/engine/agent-api/nodes/scene.js +4 -2
  177. package/dist/engine/agent-api/nodes/scene.js.map +1 -1
  178. package/dist/engine/agent-api/nodes/text3d.d.ts.map +1 -1
  179. package/dist/engine/agent-api/nodes/text3d.js +11 -2
  180. package/dist/engine/agent-api/nodes/text3d.js.map +1 -1
  181. package/dist/engine/agent-api/nodes/types/runtime.d.ts +33 -0
  182. package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
  183. package/dist/engine/agent-api/nodes/types.d.ts +42 -0
  184. package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
  185. package/dist/engine/agent-api/platform.d.ts +5 -0
  186. package/dist/engine/agent-api/platform.d.ts.map +1 -1
  187. package/dist/engine/agent-api/platform.js +15 -0
  188. package/dist/engine/agent-api/platform.js.map +1 -1
  189. package/dist/engine/agent-api/postBridge.d.ts.map +1 -1
  190. package/dist/engine/agent-api/postBridge.js +5 -1
  191. package/dist/engine/agent-api/postBridge.js.map +1 -1
  192. package/dist/engine/agent-api/sceneKitDiagnostics.d.ts.map +1 -1
  193. package/dist/engine/agent-api/sceneKitDiagnostics.js +5 -2
  194. package/dist/engine/agent-api/sceneKitDiagnostics.js.map +1 -1
  195. package/dist/engine/contracts/animation.d.ts +5 -3
  196. package/dist/engine/contracts/animation.d.ts.map +1 -1
  197. package/dist/engine/contracts/animation.js.map +1 -1
  198. package/dist/engine/contracts/flags.d.ts.map +1 -1
  199. package/dist/engine/contracts/flags.js +2 -1
  200. package/dist/engine/contracts/flags.js.map +1 -1
  201. package/dist/engine/contracts/stubs/game.d.ts.map +1 -1
  202. package/dist/engine/contracts/stubs/game.js +9 -1
  203. package/dist/engine/contracts/stubs/game.js.map +1 -1
  204. package/dist/engine/contracts/urlCache.d.ts +4 -0
  205. package/dist/engine/contracts/urlCache.d.ts.map +1 -0
  206. package/dist/engine/contracts/urlCache.js +25 -0
  207. package/dist/engine/contracts/urlCache.js.map +1 -0
  208. package/dist/engine/lanes/prd01/outputSurface.d.ts.map +1 -1
  209. package/dist/engine/lanes/prd01/outputSurface.js +25 -1
  210. package/dist/engine/lanes/prd01/outputSurface.js.map +1 -1
  211. package/dist/math/SphericalHarmonics3.d.ts +6 -3
  212. package/dist/math/SphericalHarmonics3.d.ts.map +1 -1
  213. package/dist/math/SphericalHarmonics3.js +8 -5
  214. package/dist/math/SphericalHarmonics3.js.map +1 -1
  215. package/dist/math/three/Box3.d.ts +106 -0
  216. package/dist/math/three/Box3.d.ts.map +1 -0
  217. package/dist/math/three/Box3.js +348 -0
  218. package/dist/math/three/Box3.js.map +1 -0
  219. package/dist/math/three/Color.d.ts +127 -0
  220. package/dist/math/three/Color.d.ts.map +1 -0
  221. package/dist/math/three/Color.js +501 -0
  222. package/dist/math/three/Color.js.map +1 -0
  223. package/dist/math/three/Euler.d.ts +50 -0
  224. package/dist/math/three/Euler.d.ts.map +1 -0
  225. package/dist/math/three/Euler.js +210 -0
  226. package/dist/math/three/Euler.js.map +1 -0
  227. package/dist/math/three/Frustum.d.ts +59 -0
  228. package/dist/math/three/Frustum.d.ts.map +1 -0
  229. package/dist/math/three/Frustum.js +135 -0
  230. package/dist/math/three/Frustum.js.map +1 -0
  231. package/dist/math/three/Matrix3.d.ts +56 -0
  232. package/dist/math/three/Matrix3.d.ts.map +1 -0
  233. package/dist/math/three/Matrix3.js +248 -0
  234. package/dist/math/three/Matrix3.js.map +1 -0
  235. package/dist/math/three/Matrix4.d.ts +79 -0
  236. package/dist/math/three/Matrix4.d.ts.map +1 -0
  237. package/dist/math/three/Matrix4.js +708 -0
  238. package/dist/math/three/Matrix4.js.map +1 -0
  239. package/dist/math/three/Plane.d.ts +65 -0
  240. package/dist/math/three/Plane.d.ts.map +1 -0
  241. package/dist/math/three/Plane.js +135 -0
  242. package/dist/math/three/Plane.js.map +1 -0
  243. package/dist/math/three/Quaternion.d.ts +91 -0
  244. package/dist/math/three/Quaternion.d.ts.map +1 -0
  245. package/dist/math/three/Quaternion.js +444 -0
  246. package/dist/math/three/Quaternion.js.map +1 -0
  247. package/dist/math/three/Ray.d.ts +56 -0
  248. package/dist/math/three/Ray.d.ts.map +1 -0
  249. package/dist/math/three/Ray.js +340 -0
  250. package/dist/math/three/Ray.js.map +1 -0
  251. package/dist/math/three/Sphere.d.ts +58 -0
  252. package/dist/math/three/Sphere.d.ts.map +1 -0
  253. package/dist/math/three/Sphere.js +166 -0
  254. package/dist/math/three/Sphere.js.map +1 -0
  255. package/dist/math/three/Triangle.d.ts +58 -0
  256. package/dist/math/three/Triangle.d.ts.map +1 -0
  257. package/dist/math/three/Triangle.js +229 -0
  258. package/dist/math/three/Triangle.js.map +1 -0
  259. package/dist/math/three/Vector2.d.ts +88 -0
  260. package/dist/math/three/Vector2.d.ts.map +1 -0
  261. package/dist/math/three/Vector2.js +283 -0
  262. package/dist/math/three/Vector2.js.map +1 -0
  263. package/dist/math/three/Vector3.d.ts +137 -0
  264. package/dist/math/three/Vector3.d.ts.map +1 -0
  265. package/dist/math/three/Vector3.js +458 -0
  266. package/dist/math/three/Vector3.js.map +1 -0
  267. package/dist/math/three/Vector4.d.ts +100 -0
  268. package/dist/math/three/Vector4.d.ts.map +1 -0
  269. package/dist/math/three/Vector4.js +443 -0
  270. package/dist/math/three/Vector4.js.map +1 -0
  271. package/dist/math/three/index.d.ts +29 -0
  272. package/dist/math/three/index.d.ts.map +1 -0
  273. package/dist/math/three/index.js +29 -0
  274. package/dist/math/three/index.js.map +1 -0
  275. package/dist/react/index.d.ts +8 -0
  276. package/dist/react/index.d.ts.map +1 -1
  277. package/dist/react/index.js +47 -20
  278. package/dist/react/index.js.map +1 -1
  279. package/dist/rendering/DepthPass.d.ts.map +1 -1
  280. package/dist/rendering/DepthPass.js +3 -2
  281. package/dist/rendering/DepthPass.js.map +1 -1
  282. package/dist/rendering/ForwardPass.d.ts +13 -0
  283. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  284. package/dist/rendering/ForwardPass.js +64 -11
  285. package/dist/rendering/ForwardPass.js.map +1 -1
  286. package/dist/rendering/MaterialBinding.js +6 -2
  287. package/dist/rendering/MaterialBinding.js.map +1 -1
  288. package/dist/rendering/Renderer.d.ts +8 -0
  289. package/dist/rendering/Renderer.d.ts.map +1 -1
  290. package/dist/rendering/Renderer.js +37 -6
  291. package/dist/rendering/Renderer.js.map +1 -1
  292. package/dist/rendering/ShaderChunks.d.ts.map +1 -1
  293. package/dist/rendering/ShaderChunks.js +3 -1
  294. package/dist/rendering/ShaderChunks.js.map +1 -1
  295. package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
  296. package/dist/rendering/ShaderLibrary.js +17 -5
  297. package/dist/rendering/ShaderLibrary.js.map +1 -1
  298. package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
  299. package/dist/rendering/ShaderLibraryCore.js +2 -1
  300. package/dist/rendering/ShaderLibraryCore.js.map +1 -1
  301. package/dist/rendering/WebGL2Device.d.ts +16 -1
  302. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  303. package/dist/rendering/WebGL2Device.js +94 -37
  304. package/dist/rendering/WebGL2Device.js.map +1 -1
  305. package/dist/rendering/WebGL2StateCache.d.ts +22 -0
  306. package/dist/rendering/WebGL2StateCache.d.ts.map +1 -1
  307. package/dist/rendering/WebGL2StateCache.js +71 -42
  308. package/dist/rendering/WebGL2StateCache.js.map +1 -1
  309. package/dist/rendering/contracts/core.d.ts.map +1 -1
  310. package/dist/rendering/contracts/core.js +22 -2
  311. package/dist/rendering/contracts/core.js.map +1 -1
  312. package/dist/rendering/contracts/program.d.ts.map +1 -1
  313. package/dist/rendering/contracts/program.js +8 -1
  314. package/dist/rendering/contracts/program.js.map +1 -1
  315. package/dist/rendering/contracts/quality.d.ts +21 -0
  316. package/dist/rendering/contracts/quality.d.ts.map +1 -1
  317. package/dist/rendering/contracts/quality.js +5 -0
  318. package/dist/rendering/contracts/quality.js.map +1 -1
  319. package/dist/rendering/contracts/renderItem.d.ts +6 -0
  320. package/dist/rendering/contracts/renderItem.d.ts.map +1 -1
  321. package/dist/rendering/contracts/structuralMemo.d.ts +23 -0
  322. package/dist/rendering/contracts/structuralMemo.d.ts.map +1 -0
  323. package/dist/rendering/contracts/structuralMemo.js +81 -0
  324. package/dist/rendering/contracts/structuralMemo.js.map +1 -0
  325. package/dist/rendering/environment/EnvironmentCache.d.ts.map +1 -1
  326. package/dist/rendering/environment/EnvironmentCache.js +6 -1
  327. package/dist/rendering/environment/EnvironmentCache.js.map +1 -1
  328. package/dist/rendering/environment/FirstFrameGate.d.ts +23 -0
  329. package/dist/rendering/environment/FirstFrameGate.d.ts.map +1 -0
  330. package/dist/rendering/environment/FirstFrameGate.js +58 -0
  331. package/dist/rendering/environment/FirstFrameGate.js.map +1 -0
  332. package/dist/rendering/environment/Rgb9e5Cube.d.ts.map +1 -1
  333. package/dist/rendering/environment/Rgb9e5Cube.js +8 -4
  334. package/dist/rendering/environment/Rgb9e5Cube.js.map +1 -1
  335. package/dist/rendering/environment/probeBuild.d.ts +29 -0
  336. package/dist/rendering/environment/probeBuild.d.ts.map +1 -1
  337. package/dist/rendering/environment/probeBuild.js +124 -45
  338. package/dist/rendering/environment/probeBuild.js.map +1 -1
  339. package/dist/rendering/forward/Lighting.d.ts +11 -3
  340. package/dist/rendering/forward/Lighting.d.ts.map +1 -1
  341. package/dist/rendering/forward/Lighting.js +25 -15
  342. package/dist/rendering/forward/Lighting.js.map +1 -1
  343. package/dist/rendering/forward/contactShadowMaskStore.d.ts +41 -0
  344. package/dist/rendering/forward/contactShadowMaskStore.d.ts.map +1 -0
  345. package/dist/rendering/forward/contactShadowMaskStore.js +85 -0
  346. package/dist/rendering/forward/contactShadowMaskStore.js.map +1 -0
  347. package/dist/rendering/geometry/Shape.d.ts.map +1 -1
  348. package/dist/rendering/geometry/Shape.js +7 -2
  349. package/dist/rendering/geometry/Shape.js.map +1 -1
  350. package/dist/rendering/geometry/Support.d.ts +4 -0
  351. package/dist/rendering/geometry/Support.d.ts.map +1 -1
  352. package/dist/rendering/geometry/Support.js +3 -2
  353. package/dist/rendering/geometry/Support.js.map +1 -1
  354. package/dist/rendering/index.d.ts +6 -0
  355. package/dist/rendering/index.d.ts.map +1 -1
  356. package/dist/rendering/index.js +5 -0
  357. package/dist/rendering/index.js.map +1 -1
  358. package/dist/rendering/passes/ContactShadowPass.d.ts +40 -3
  359. package/dist/rendering/passes/ContactShadowPass.d.ts.map +1 -1
  360. package/dist/rendering/passes/ContactShadowPass.js +73 -13
  361. package/dist/rendering/passes/ContactShadowPass.js.map +1 -1
  362. package/dist/rendering/passes/Prd02ContactShadowsContributor.d.ts +19 -0
  363. package/dist/rendering/passes/Prd02ContactShadowsContributor.d.ts.map +1 -1
  364. package/dist/rendering/passes/Prd02ContactShadowsContributor.js +179 -28
  365. package/dist/rendering/passes/Prd02ContactShadowsContributor.js.map +1 -1
  366. package/dist/rendering/program/ProgramFeatures.d.ts +6 -0
  367. package/dist/rendering/program/ProgramFeatures.d.ts.map +1 -1
  368. package/dist/rendering/program/ProgramFeatures.js +11 -5
  369. package/dist/rendering/program/ProgramFeatures.js.map +1 -1
  370. package/dist/rendering/program/ProgramGenerator.d.ts +6 -0
  371. package/dist/rendering/program/ProgramGenerator.d.ts.map +1 -1
  372. package/dist/rendering/program/ProgramGenerator.js +36 -1
  373. package/dist/rendering/program/ProgramGenerator.js.map +1 -1
  374. package/dist/rendering/program/ProgramKey.d.ts.map +1 -1
  375. package/dist/rendering/program/ProgramKey.js +4 -1
  376. package/dist/rendering/program/ProgramKey.js.map +1 -1
  377. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts +1 -1
  378. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts.map +1 -1
  379. package/dist/rendering/program/chunks/shadow_forward.glsl.js +4 -1
  380. package/dist/rendering/program/chunks/shadow_forward.glsl.js.map +1 -1
  381. package/dist/rendering/quality/DirectPath.d.ts +43 -0
  382. package/dist/rendering/quality/DirectPath.d.ts.map +1 -0
  383. package/dist/rendering/quality/DirectPath.js +42 -0
  384. package/dist/rendering/quality/DirectPath.js.map +1 -0
  385. package/dist/rendering/renderer/Background.d.ts +0 -5
  386. package/dist/rendering/renderer/Background.d.ts.map +1 -1
  387. package/dist/rendering/renderer/Background.js +25 -2
  388. package/dist/rendering/renderer/Background.js.map +1 -1
  389. package/dist/rendering/renderer/InstanceFrustumCull.d.ts +39 -0
  390. package/dist/rendering/renderer/InstanceFrustumCull.d.ts.map +1 -0
  391. package/dist/rendering/renderer/InstanceFrustumCull.js +127 -0
  392. package/dist/rendering/renderer/InstanceFrustumCull.js.map +1 -0
  393. package/dist/rendering/renderer/ShadowOrchestration.d.ts +2 -0
  394. package/dist/rendering/renderer/ShadowOrchestration.d.ts.map +1 -1
  395. package/dist/rendering/renderer/ShadowOrchestration.js +1 -0
  396. package/dist/rendering/renderer/ShadowOrchestration.js.map +1 -1
  397. package/dist/rendering/renderer/coreOutputPostRoute.d.ts +0 -5
  398. package/dist/rendering/renderer/coreOutputPostRoute.d.ts.map +1 -1
  399. package/dist/rendering/renderer/coreOutputPostRoute.js +12 -2
  400. package/dist/rendering/renderer/coreOutputPostRoute.js.map +1 -1
  401. package/dist/rendering/resources/InstanceBuffer.d.ts +2 -0
  402. package/dist/rendering/resources/InstanceBuffer.d.ts.map +1 -1
  403. package/dist/rendering/resources/InstanceBuffer.js +23 -0
  404. package/dist/rendering/resources/InstanceBuffer.js.map +1 -1
  405. package/dist/rendering/shaders/chunks/contact_shadow.glsl.d.ts +11 -6
  406. package/dist/rendering/shaders/chunks/contact_shadow.glsl.d.ts.map +1 -1
  407. package/dist/rendering/shaders/chunks/contact_shadow.glsl.js +41 -19
  408. package/dist/rendering/shaders/chunks/contact_shadow.glsl.js.map +1 -1
  409. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.d.ts +12 -0
  410. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.d.ts.map +1 -0
  411. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.js +21 -0
  412. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.js.map +1 -0
  413. package/dist/rendering/shadows/CascadeUse.d.ts +28 -0
  414. package/dist/rendering/shadows/CascadeUse.d.ts.map +1 -0
  415. package/dist/rendering/shadows/CascadeUse.js +45 -0
  416. package/dist/rendering/shadows/CascadeUse.js.map +1 -0
  417. package/dist/rendering/shadows/Prd02DepthShaderLibrary.d.ts +7 -1
  418. package/dist/rendering/shadows/Prd02DepthShaderLibrary.d.ts.map +1 -1
  419. package/dist/rendering/shadows/Prd02DepthShaderLibrary.js +12 -3
  420. package/dist/rendering/shadows/Prd02DepthShaderLibrary.js.map +1 -1
  421. package/dist/rendering/shadows/Prd02ShadowBridge.d.ts +12 -1
  422. package/dist/rendering/shadows/Prd02ShadowBridge.d.ts.map +1 -1
  423. package/dist/rendering/shadows/Prd02ShadowBridge.js +17 -5
  424. package/dist/rendering/shadows/Prd02ShadowBridge.js.map +1 -1
  425. package/dist/rendering/shadows/ShadowFilterTier.d.ts +51 -0
  426. package/dist/rendering/shadows/ShadowFilterTier.d.ts.map +1 -0
  427. package/dist/rendering/shadows/ShadowFilterTier.js +89 -0
  428. package/dist/rendering/shadows/ShadowFilterTier.js.map +1 -0
  429. package/dist/rendering/shadows/ShadowSystem.d.ts +15 -0
  430. package/dist/rendering/shadows/ShadowSystem.d.ts.map +1 -1
  431. package/dist/rendering/shadows/ShadowSystem.js +12 -2
  432. package/dist/rendering/shadows/ShadowSystem.js.map +1 -1
  433. package/dist/rendering/shadows/shadowLegacy.d.ts +12 -0
  434. package/dist/rendering/shadows/shadowLegacy.d.ts.map +1 -1
  435. package/dist/rendering/shadows/shadowLegacy.js +24 -0
  436. package/dist/rendering/shadows/shadowLegacy.js.map +1 -1
  437. package/dist/rendering/webgl2/BloomFusion.d.ts +31 -0
  438. package/dist/rendering/webgl2/BloomFusion.d.ts.map +1 -0
  439. package/dist/rendering/webgl2/BloomFusion.js +25 -0
  440. package/dist/rendering/webgl2/BloomFusion.js.map +1 -0
  441. package/dist/rendering/webgl2/ContextLifecycle.d.ts +14 -0
  442. package/dist/rendering/webgl2/ContextLifecycle.d.ts.map +1 -1
  443. package/dist/rendering/webgl2/ContextLifecycle.js +30 -3
  444. package/dist/rendering/webgl2/ContextLifecycle.js.map +1 -1
  445. package/dist/rendering/webgl2/LegacyPost.d.ts +30 -0
  446. package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
  447. package/dist/rendering/webgl2/LegacyPost.js +259 -27
  448. package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
  449. package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
  450. package/dist/rendering/webgl2/MultiDraw.js +9 -1
  451. package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
  452. package/dist/rendering/webgl2/Samplers.d.ts +10 -1
  453. package/dist/rendering/webgl2/Samplers.d.ts.map +1 -1
  454. package/dist/rendering/webgl2/Samplers.js +24 -1
  455. package/dist/rendering/webgl2/Samplers.js.map +1 -1
  456. package/dist/rendering/webgl2/TextureFormats.d.ts +12 -0
  457. package/dist/rendering/webgl2/TextureFormats.d.ts.map +1 -1
  458. package/dist/rendering/webgl2/TextureFormats.js +16 -0
  459. package/dist/rendering/webgl2/TextureFormats.js.map +1 -1
  460. package/package.json +25 -25
  461. package/templates/cinematic-scene/package.json +2 -2
  462. package/templates/mini-game/package.json +2 -2
  463. package/templates/product-viewer/package.json +2 -2
  464. package/templates/production-asset-inspector/package.json +1 -1
  465. package/templates/production-material-studio/package.json +1 -1
  466. package/templates/production-product-configurator/package.json +1 -1
  467. package/templates/production-product-viewer/package.json +1 -1
  468. package/dist/environments/EnvironmentPreview.d.ts +0 -13
  469. package/dist/environments/EnvironmentPreview.d.ts.map +0 -1
  470. package/dist/environments/EnvironmentPreview.js +0 -16
  471. package/dist/environments/EnvironmentPreview.js.map +0 -1
  472. package/dist/environments/EnvironmentRegistry.d.ts +0 -35
  473. package/dist/environments/EnvironmentRegistry.d.ts.map +0 -1
  474. package/dist/environments/EnvironmentRegistry.js +0 -39
  475. package/dist/environments/EnvironmentRegistry.js.map +0 -1
  476. package/dist/environments/HDRIEnvironment.d.ts +0 -38
  477. package/dist/environments/HDRIEnvironment.d.ts.map +0 -1
  478. package/dist/environments/HDRIEnvironment.js +0 -34
  479. package/dist/environments/HDRIEnvironment.js.map +0 -1
  480. package/dist/environments/PMREMPreset.d.ts +0 -14
  481. package/dist/environments/PMREMPreset.d.ts.map +0 -1
  482. package/dist/environments/PMREMPreset.js +0 -16
  483. package/dist/environments/PMREMPreset.js.map +0 -1
  484. package/dist/environments/index.d.ts +0 -6
  485. package/dist/environments/index.d.ts.map +0 -1
  486. package/dist/environments/index.js +0 -3
  487. package/dist/environments/index.js.map +0 -1
  488. package/dist/environments/node.d.ts +0 -7
  489. package/dist/environments/node.d.ts.map +0 -1
  490. package/dist/environments/node.js +0 -5
  491. package/dist/environments/node.js.map +0 -1
  492. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.d.ts +0 -78
  493. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.d.ts.map +0 -1
  494. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.js +0 -67
  495. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.js.map +0 -1
  496. package/dist/environments/production-runtime/index.d.ts +0 -3
  497. package/dist/environments/production-runtime/index.d.ts.map +0 -1
  498. package/dist/environments/production-runtime/index.js +0 -2
  499. package/dist/environments/production-runtime/index.js.map +0 -1
  500. package/dist/environments/threejs-example-parity/index.d.ts +0 -17
  501. package/dist/environments/threejs-example-parity/index.d.ts.map +0 -1
  502. package/dist/environments/threejs-example-parity/index.js +0 -49
  503. package/dist/environments/threejs-example-parity/index.js.map +0 -1
  504. package/templates/cinematic-scene/node_modules/.vite/deps/_metadata.json +0 -8
  505. package/templates/cinematic-scene/node_modules/.vite/deps/package.json +0 -3
  506. package/templates/cinematic-scene/test-results/.last-run.json +0 -6
  507. package/templates/cinematic-scene/test-results/route-health-Aura3D-cinematic-scene-reaches-ready-state/error-context.md +0 -64
  508. package/templates/mini-game/package-lock.json +0 -1312
  509. package/templates/product-viewer/node_modules/.vite/deps/_metadata.json +0 -8
  510. package/templates/product-viewer/node_modules/.vite/deps/package.json +0 -3
@@ -0,0 +1,340 @@
1
+ import { Ray as ImmutableRay } from "../Ray.js";
2
+ import { Vector3 } from "./Vector3.js";
3
+ const _vector = new Vector3();
4
+ const _segCenter = new Vector3();
5
+ const _segDir = new Vector3();
6
+ const _diff = new Vector3();
7
+ const _edge1 = new Vector3();
8
+ const _edge2 = new Vector3();
9
+ const _normal = new Vector3();
10
+ /**
11
+ * Mutable three.js-compatible ray. Every modifier mutates `this` and returns
12
+ * `this`, exactly like three r185 `Ray`, including `null` for intersection
13
+ * misses (the immutable `@aura3d/math` Ray returns `undefined`).
14
+ */
15
+ export class Ray {
16
+ origin;
17
+ direction;
18
+ constructor(origin = new Vector3(), direction = new Vector3(0, 0, -1)) {
19
+ this.origin = origin;
20
+ this.direction = direction;
21
+ }
22
+ /** Copy an immutable `@aura3d/math` Ray (or any `{origin, direction}`) into this ray. */
23
+ fromImmutable(ray) {
24
+ this.origin.copy(ray.origin);
25
+ this.direction.copy(ray.direction);
26
+ return this;
27
+ }
28
+ /** Snapshot as an immutable `@aura3d/math` Ray (normalizes the direction, throws on a zero direction). */
29
+ toImmutable() {
30
+ return new ImmutableRay(this.origin.toImmutable(), this.direction.toImmutable());
31
+ }
32
+ set(origin, direction) {
33
+ this.origin.copy(origin);
34
+ this.direction.copy(direction);
35
+ return this;
36
+ }
37
+ copy(ray) {
38
+ this.origin.copy(ray.origin);
39
+ this.direction.copy(ray.direction);
40
+ return this;
41
+ }
42
+ at(t, target) {
43
+ return target.copy(this.origin).addScaledVector(this.direction, t);
44
+ }
45
+ lookAt(v) {
46
+ this.direction.copy(v).sub(this.origin).normalize();
47
+ return this;
48
+ }
49
+ recast(t) {
50
+ this.origin.copy(this.at(t, _vector));
51
+ return this;
52
+ }
53
+ closestPointToPoint(point, target) {
54
+ target.subVectors(point, this.origin);
55
+ const directionDistance = target.dot(this.direction);
56
+ if (directionDistance < 0) {
57
+ return target.copy(this.origin);
58
+ }
59
+ return target.copy(this.origin).addScaledVector(this.direction, directionDistance);
60
+ }
61
+ distanceToPoint(point) {
62
+ return Math.sqrt(this.distanceSqToPoint(point));
63
+ }
64
+ distanceSqToPoint(point) {
65
+ const directionDistance = _vector.subVectors(point, this.origin).dot(this.direction);
66
+ // point behind the ray
67
+ if (directionDistance < 0) {
68
+ return this.origin.distanceToSquared(point);
69
+ }
70
+ _vector.copy(this.origin).addScaledVector(this.direction, directionDistance);
71
+ return _vector.distanceToSquared(point);
72
+ }
73
+ distanceSqToSegment(v0, v1, optionalPointOnRay, optionalPointOnSegment) {
74
+ // from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h
75
+ // It returns the min distance between the ray and the segment
76
+ // defined by v0 and v1
77
+ // It can also set two optional targets :
78
+ // - The closest point on the ray
79
+ // - The closest point on the segment
80
+ _segCenter.copy(v0).add(v1).multiplyScalar(0.5);
81
+ _segDir.copy(v1).sub(v0).normalize();
82
+ _diff.copy(this.origin).sub(_segCenter);
83
+ const segExtent = v0.distanceTo(v1) * 0.5;
84
+ const a01 = -this.direction.dot(_segDir);
85
+ const b0 = _diff.dot(this.direction);
86
+ const b1 = -_diff.dot(_segDir);
87
+ const c = _diff.lengthSq();
88
+ const det = Math.abs(1 - a01 * a01);
89
+ let s0;
90
+ let s1;
91
+ let sqrDist;
92
+ let extDet;
93
+ if (det > 0) {
94
+ // The ray and segment are not parallel.
95
+ s0 = a01 * b1 - b0;
96
+ s1 = a01 * b0 - b1;
97
+ extDet = segExtent * det;
98
+ if (s0 >= 0) {
99
+ if (s1 >= -extDet) {
100
+ if (s1 <= extDet) {
101
+ // region 0
102
+ // Minimum at interior points of ray and segment.
103
+ const invDet = 1 / det;
104
+ s0 *= invDet;
105
+ s1 *= invDet;
106
+ sqrDist = s0 * (s0 + a01 * s1 + 2 * b0) + s1 * (a01 * s0 + s1 + 2 * b1) + c;
107
+ }
108
+ else {
109
+ // region 1
110
+ s1 = segExtent;
111
+ s0 = Math.max(0, -(a01 * s1 + b0));
112
+ sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;
113
+ }
114
+ }
115
+ else {
116
+ // region 5
117
+ s1 = -segExtent;
118
+ s0 = Math.max(0, -(a01 * s1 + b0));
119
+ sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;
120
+ }
121
+ }
122
+ else if (s1 <= -extDet) {
123
+ // region 4
124
+ s0 = Math.max(0, -(-a01 * segExtent + b0));
125
+ s1 = s0 > 0 ? -segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);
126
+ sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;
127
+ }
128
+ else if (s1 <= extDet) {
129
+ // region 3
130
+ s0 = 0;
131
+ s1 = Math.min(Math.max(-segExtent, -b1), segExtent);
132
+ sqrDist = s1 * (s1 + 2 * b1) + c;
133
+ }
134
+ else {
135
+ // region 2
136
+ s0 = Math.max(0, -(a01 * segExtent + b0));
137
+ s1 = s0 > 0 ? segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);
138
+ sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;
139
+ }
140
+ }
141
+ else {
142
+ // Ray and segment are parallel.
143
+ s1 = a01 > 0 ? -segExtent : segExtent;
144
+ s0 = Math.max(0, -(a01 * s1 + b0));
145
+ sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;
146
+ }
147
+ if (optionalPointOnRay) {
148
+ optionalPointOnRay.copy(this.origin).addScaledVector(this.direction, s0);
149
+ }
150
+ if (optionalPointOnSegment) {
151
+ optionalPointOnSegment.copy(_segCenter).addScaledVector(_segDir, s1);
152
+ }
153
+ return sqrDist;
154
+ }
155
+ intersectSphere(sphere, target) {
156
+ _vector.subVectors(sphere.center, this.origin);
157
+ const tca = _vector.dot(this.direction);
158
+ const d2 = _vector.dot(_vector) - tca * tca;
159
+ const radius2 = sphere.radius * sphere.radius;
160
+ if (d2 > radius2)
161
+ return null;
162
+ const thc = Math.sqrt(radius2 - d2);
163
+ // t0 = first intersect point - entrance on front of sphere
164
+ const t0 = tca - thc;
165
+ // t1 = second intersect point - exit point on back of sphere
166
+ const t1 = tca + thc;
167
+ // test to see if t1 is behind the ray - if so, return null
168
+ if (t1 < 0)
169
+ return null;
170
+ // test to see if t0 is behind the ray:
171
+ // if it is, the ray is inside the sphere, so return the second exit point scaled by t1,
172
+ // in order to always return an intersect point that is in front of the ray.
173
+ if (t0 < 0)
174
+ return this.at(t1, target);
175
+ // else t0 is in front of the ray, so return the first collision point scaled by t0
176
+ return this.at(t0, target);
177
+ }
178
+ intersectsSphere(sphere) {
179
+ if (sphere.radius < 0)
180
+ return false; // handle empty spheres, see #31187
181
+ return this.distanceSqToPoint(sphere.center) <= sphere.radius * sphere.radius;
182
+ }
183
+ distanceToPlane(plane) {
184
+ const denominator = _normalDot(plane.normal, this.direction);
185
+ if (denominator === 0) {
186
+ // line is coplanar, return origin
187
+ if (plane.distanceToPoint(this.origin) === 0) {
188
+ return 0;
189
+ }
190
+ // Null is preferable to undefined since undefined means.... it is undefined
191
+ return null;
192
+ }
193
+ const t = -(_originDot(this.origin, plane.normal) + plane.constant) / denominator;
194
+ // Return if the ray never intersects the plane
195
+ return t >= 0 ? t : null;
196
+ }
197
+ intersectPlane(plane, target) {
198
+ const t = this.distanceToPlane(plane);
199
+ if (t === null) {
200
+ return null;
201
+ }
202
+ return this.at(t, target);
203
+ }
204
+ intersectsPlane(plane) {
205
+ // check if the ray lies on the plane first
206
+ const distToPoint = plane.distanceToPoint(this.origin);
207
+ if (distToPoint === 0) {
208
+ return true;
209
+ }
210
+ const denominator = _normalDot(plane.normal, this.direction);
211
+ if (denominator * distToPoint < 0) {
212
+ return true;
213
+ }
214
+ // ray origin is behind the plane (and is pointing behind it)
215
+ return false;
216
+ }
217
+ intersectBox(box, target) {
218
+ let tmin;
219
+ let tmax;
220
+ let tymin;
221
+ let tymax;
222
+ let tzmin;
223
+ let tzmax;
224
+ const invdirx = 1 / this.direction.x;
225
+ const invdiry = 1 / this.direction.y;
226
+ const invdirz = 1 / this.direction.z;
227
+ const origin = this.origin;
228
+ if (invdirx >= 0) {
229
+ tmin = (box.min.x - origin.x) * invdirx;
230
+ tmax = (box.max.x - origin.x) * invdirx;
231
+ }
232
+ else {
233
+ tmin = (box.max.x - origin.x) * invdirx;
234
+ tmax = (box.min.x - origin.x) * invdirx;
235
+ }
236
+ if (invdiry >= 0) {
237
+ tymin = (box.min.y - origin.y) * invdiry;
238
+ tymax = (box.max.y - origin.y) * invdiry;
239
+ }
240
+ else {
241
+ tymin = (box.max.y - origin.y) * invdiry;
242
+ tymax = (box.min.y - origin.y) * invdiry;
243
+ }
244
+ if (tmin > tymax || tymin > tmax)
245
+ return null;
246
+ if (tymin > tmin || isNaN(tmin))
247
+ tmin = tymin;
248
+ if (tymax < tmax || isNaN(tmax))
249
+ tmax = tymax;
250
+ if (invdirz >= 0) {
251
+ tzmin = (box.min.z - origin.z) * invdirz;
252
+ tzmax = (box.max.z - origin.z) * invdirz;
253
+ }
254
+ else {
255
+ tzmin = (box.max.z - origin.z) * invdirz;
256
+ tzmax = (box.min.z - origin.z) * invdirz;
257
+ }
258
+ if (tmin > tzmax || tzmin > tmax)
259
+ return null;
260
+ if (tzmin > tmin || tmin !== tmin)
261
+ tmin = tzmin;
262
+ if (tzmax < tmax || tmax !== tmax)
263
+ tmax = tzmax;
264
+ //return point closest to the ray (positive side)
265
+ if (tmax < 0)
266
+ return null;
267
+ return this.at(tmin >= 0 ? tmin : tmax, target);
268
+ }
269
+ intersectsBox(box) {
270
+ return this.intersectBox(box, _vector) !== null;
271
+ }
272
+ intersectTriangle(a, b, c, backfaceCulling, target) {
273
+ // Compute the offset origin, edges, and normal.
274
+ // from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h
275
+ _edge1.subVectors(b, a);
276
+ _edge2.subVectors(c, a);
277
+ _normal.crossVectors(_edge1, _edge2);
278
+ // Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,
279
+ // E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by
280
+ // |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))
281
+ // |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))
282
+ // |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)
283
+ let DdN = this.direction.dot(_normal);
284
+ let sign;
285
+ if (DdN > 0) {
286
+ if (backfaceCulling)
287
+ return null;
288
+ sign = 1;
289
+ }
290
+ else if (DdN < 0) {
291
+ sign = -1;
292
+ DdN = -DdN;
293
+ }
294
+ else {
295
+ return null;
296
+ }
297
+ _diff.subVectors(this.origin, a);
298
+ const DdQxE2 = sign * this.direction.dot(_edge2.crossVectors(_diff, _edge2));
299
+ // b1 < 0, no intersection
300
+ if (DdQxE2 < 0) {
301
+ return null;
302
+ }
303
+ const DdE1xQ = sign * this.direction.dot(_edge1.cross(_diff));
304
+ // b2 < 0, no intersection
305
+ if (DdE1xQ < 0) {
306
+ return null;
307
+ }
308
+ // b1+b2 > 1, no intersection
309
+ if (DdQxE2 + DdE1xQ > DdN) {
310
+ return null;
311
+ }
312
+ // Line intersects triangle, check if ray does.
313
+ const QdN = -sign * _diff.dot(_normal);
314
+ // t < 0, no intersection
315
+ if (QdN < 0) {
316
+ return null;
317
+ }
318
+ // Ray intersects triangle.
319
+ return this.at(QdN / DdN, target);
320
+ }
321
+ applyMatrix4(matrix4) {
322
+ this.origin.applyMatrix4(matrix4);
323
+ this.direction.transformDirection(matrix4);
324
+ return this;
325
+ }
326
+ equals(ray) {
327
+ return this.origin.equals(ray.origin) && this.direction.equals(ray.direction);
328
+ }
329
+ clone() {
330
+ return new this.constructor().copy(this);
331
+ }
332
+ }
333
+ // `plane.normal` may be a compat Vector3 or an immutable one; the dot products below multiply the same pairs in the same order as three's.
334
+ function _normalDot(normal, direction) {
335
+ return normal.x * direction.x + normal.y * direction.y + normal.z * direction.z;
336
+ }
337
+ function _originDot(origin, normal) {
338
+ return origin.x * normal.x + origin.y * normal.y + origin.z * normal.z;
339
+ }
340
+ //# sourceMappingURL=Ray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ray.js","sourceRoot":"","sources":["../../../../../packages/math/src/three/Ray.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { Sphere as ImmutableSphere } from "../Sphere.js";
2
+ import { Box3 } from "./Box3.js";
3
+ import { Vector3 } from "./Vector3.js";
4
+ import type { Vector3Like } from "./Vector3.js";
5
+ /** Anything with a `center` and `radius`, including the immutable `@aura3d/math` Sphere. */
6
+ export interface SphereLike {
7
+ readonly center: Vector3Like;
8
+ readonly radius: number;
9
+ }
10
+ interface PlaneLike {
11
+ distanceToPoint(point: Vector3): number;
12
+ }
13
+ /**
14
+ * Mutable three.js-compatible bounding sphere (`radius = -1` is the empty
15
+ * sentinel). Every modifier mutates `this` and returns `this`, exactly like
16
+ * three r185 `Sphere`.
17
+ */
18
+ export declare class Sphere {
19
+ readonly isSphere: true;
20
+ center: Vector3;
21
+ radius: number;
22
+ constructor(center?: Vector3, radius?: number);
23
+ /** Copy an immutable `@aura3d/math` Sphere (or any `{center, radius}`) into this sphere. */
24
+ fromImmutable(sphere: SphereLike): this;
25
+ /** Snapshot as an immutable `@aura3d/math` Sphere (throws on a non-finite radius, like that class). */
26
+ toImmutable(): ImmutableSphere;
27
+ set(center: Vector3Like, radius: number): this;
28
+ setFromPoints(points: readonly Vector3[], optionalCenter?: Vector3Like): this;
29
+ copy(sphere: SphereLike): this;
30
+ isEmpty(): boolean;
31
+ makeEmpty(): this;
32
+ containsPoint(point: Vector3): boolean;
33
+ distanceToPoint(point: Vector3): number;
34
+ intersectsSphere(sphere: SphereLike): boolean;
35
+ intersectsBox(box: Box3): boolean;
36
+ intersectsPlane(plane: PlaneLike): boolean;
37
+ clampPoint(point: Vector3, target: Vector3): Vector3;
38
+ getBoundingBox(target: Box3): Box3;
39
+ applyMatrix4(matrix: {
40
+ readonly elements: ArrayLike<number>;
41
+ getMaxScaleOnAxis(): number;
42
+ }): this;
43
+ translate(offset: Vector3Like): this;
44
+ expandByPoint(point: Vector3Like): this;
45
+ union(sphere: Sphere): this;
46
+ equals(sphere: SphereLike): boolean;
47
+ clone(): this;
48
+ toJSON(): {
49
+ radius: number;
50
+ center: number[];
51
+ };
52
+ fromJSON(json: {
53
+ radius: number;
54
+ center: ArrayLike<number>;
55
+ }): this;
56
+ }
57
+ export {};
58
+ //# sourceMappingURL=Sphere.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sphere.d.ts","sourceRoot":"","sources":["../../../../../packages/math/src/three/Sphere.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,4FAA4F;AAC5F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,SAAS;IACjB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;CACzC;AAMD;;;;GAIG;AACH,qBAAa,MAAM;IACjB,SAAiB,QAAQ,EAAE,IAAI,CAAC;IAEhC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;gBAEH,MAAM,GAAE,OAAuB,EAAE,MAAM,SAAK;IAKxD,4FAA4F;IAC5F,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAMvC,uGAAuG;IACvG,WAAW,IAAI,eAAe;IAI9B,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM9C,aAAa,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI;IAoB7E,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAM9B,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,IAAI;IAMjB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAItC,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAIvC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAK7C,aAAa,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO;IAIjC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAI1C,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IAapD,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAalC,YAAY,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAAC,iBAAiB,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI;IAOjG,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAMpC,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IA4BvC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAwB3B,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAInC,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAO9C,QAAQ,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI;CAKpE"}
@@ -0,0 +1,166 @@
1
+ import { Sphere as ImmutableSphere } from "../Sphere.js";
2
+ import { Box3 } from "./Box3.js";
3
+ import { Vector3 } from "./Vector3.js";
4
+ const _box = new Box3();
5
+ const _v1 = new Vector3();
6
+ const _v2 = new Vector3();
7
+ /**
8
+ * Mutable three.js-compatible bounding sphere (`radius = -1` is the empty
9
+ * sentinel). Every modifier mutates `this` and returns `this`, exactly like
10
+ * three r185 `Sphere`.
11
+ */
12
+ export class Sphere {
13
+ center;
14
+ radius;
15
+ constructor(center = new Vector3(), radius = -1) {
16
+ this.center = center;
17
+ this.radius = radius;
18
+ }
19
+ /** Copy an immutable `@aura3d/math` Sphere (or any `{center, radius}`) into this sphere. */
20
+ fromImmutable(sphere) {
21
+ this.center.copy(sphere.center);
22
+ this.radius = sphere.radius;
23
+ return this;
24
+ }
25
+ /** Snapshot as an immutable `@aura3d/math` Sphere (throws on a non-finite radius, like that class). */
26
+ toImmutable() {
27
+ return new ImmutableSphere(this.center.toImmutable(), this.radius);
28
+ }
29
+ set(center, radius) {
30
+ this.center.copy(center);
31
+ this.radius = radius;
32
+ return this;
33
+ }
34
+ setFromPoints(points, optionalCenter) {
35
+ const center = this.center;
36
+ if (optionalCenter !== undefined) {
37
+ center.copy(optionalCenter);
38
+ }
39
+ else {
40
+ _box.setFromPoints(points).getCenter(center);
41
+ }
42
+ let maxRadiusSq = 0;
43
+ for (let i = 0, il = points.length; i < il; i += 1) {
44
+ maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(points[i]));
45
+ }
46
+ this.radius = Math.sqrt(maxRadiusSq);
47
+ return this;
48
+ }
49
+ copy(sphere) {
50
+ this.center.copy(sphere.center);
51
+ this.radius = sphere.radius;
52
+ return this;
53
+ }
54
+ isEmpty() {
55
+ return this.radius < 0;
56
+ }
57
+ makeEmpty() {
58
+ this.center.set(0, 0, 0);
59
+ this.radius = -1;
60
+ return this;
61
+ }
62
+ containsPoint(point) {
63
+ return point.distanceToSquared(this.center) <= this.radius * this.radius;
64
+ }
65
+ distanceToPoint(point) {
66
+ return point.distanceTo(this.center) - this.radius;
67
+ }
68
+ intersectsSphere(sphere) {
69
+ const radiusSum = this.radius + sphere.radius;
70
+ return _distanceSq(sphere.center, this.center) <= radiusSum * radiusSum;
71
+ }
72
+ intersectsBox(box) {
73
+ return box.intersectsSphere(this);
74
+ }
75
+ intersectsPlane(plane) {
76
+ return Math.abs(plane.distanceToPoint(this.center)) <= this.radius;
77
+ }
78
+ clampPoint(point, target) {
79
+ const deltaLengthSq = this.center.distanceToSquared(point);
80
+ target.copy(point);
81
+ if (deltaLengthSq > this.radius * this.radius) {
82
+ target.sub(this.center).normalize();
83
+ target.multiplyScalar(this.radius).add(this.center);
84
+ }
85
+ return target;
86
+ }
87
+ getBoundingBox(target) {
88
+ if (this.isEmpty()) {
89
+ // Empty sphere produces empty bounding box
90
+ target.makeEmpty();
91
+ return target;
92
+ }
93
+ target.set(this.center, this.center);
94
+ target.expandByScalar(this.radius);
95
+ return target;
96
+ }
97
+ applyMatrix4(matrix) {
98
+ this.center.applyMatrix4(matrix);
99
+ this.radius = this.radius * matrix.getMaxScaleOnAxis();
100
+ return this;
101
+ }
102
+ translate(offset) {
103
+ this.center.add(offset);
104
+ return this;
105
+ }
106
+ expandByPoint(point) {
107
+ if (this.isEmpty()) {
108
+ this.center.copy(point);
109
+ this.radius = 0;
110
+ return this;
111
+ }
112
+ _v1.subVectors(point, this.center);
113
+ const lengthSq = _v1.lengthSq();
114
+ if (lengthSq > this.radius * this.radius) {
115
+ // calculate the minimal sphere
116
+ const length = Math.sqrt(lengthSq);
117
+ const delta = (length - this.radius) * 0.5;
118
+ this.center.addScaledVector(_v1, delta / length);
119
+ this.radius += delta;
120
+ }
121
+ return this;
122
+ }
123
+ union(sphere) {
124
+ if (sphere.isEmpty()) {
125
+ return this;
126
+ }
127
+ if (this.isEmpty()) {
128
+ this.copy(sphere);
129
+ return this;
130
+ }
131
+ if (this.center.equals(sphere.center) === true) {
132
+ this.radius = Math.max(this.radius, sphere.radius);
133
+ }
134
+ else {
135
+ _v2.subVectors(sphere.center, this.center).setLength(sphere.radius);
136
+ this.expandByPoint(_v1.copy(sphere.center).add(_v2));
137
+ this.expandByPoint(_v1.copy(sphere.center).sub(_v2));
138
+ }
139
+ return this;
140
+ }
141
+ equals(sphere) {
142
+ return this.center.equals(sphere.center) && sphere.radius === this.radius;
143
+ }
144
+ clone() {
145
+ return new this.constructor().copy(this);
146
+ }
147
+ toJSON() {
148
+ return {
149
+ radius: this.radius,
150
+ center: this.center.toArray()
151
+ };
152
+ }
153
+ fromJSON(json) {
154
+ this.radius = json.radius;
155
+ this.center.fromArray(json.center);
156
+ return this;
157
+ }
158
+ }
159
+ Sphere.prototype.isSphere = true;
160
+ function _distanceSq(a, b) {
161
+ const dx = a.x - b.x;
162
+ const dy = a.y - b.y;
163
+ const dz = a.z - b.z;
164
+ return dx * dx + dy * dy + dz * dz;
165
+ }
166
+ //# sourceMappingURL=Sphere.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sphere.js","sourceRoot":"","sources":["../../../../../packages/math/src/three/Sphere.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { Vector3 } from "./Vector3.js";
2
+ import { Vector4 } from "./Vector4.js";
3
+ import type { Vector3Like } from "./Vector3.js";
4
+ import type { BufferAttributeLike3 } from "./Vector3.js";
5
+ import type { BufferAttributeLikeW } from "./Vector4.js";
6
+ import type { Plane } from "./Plane.js";
7
+ /** Anything with `a`, `b`, `c` corners, including the immutable `@aura3d/math` Triangle. */
8
+ export interface TriangleCornersLike {
9
+ readonly a: Vector3Like;
10
+ readonly b: Vector3Like;
11
+ readonly c: Vector3Like;
12
+ }
13
+ /** Writable vector target that `getInterpolation` accumulates into (Vector2, Vector3 or Vector4). */
14
+ interface InterpolationTarget {
15
+ x: number;
16
+ y: number;
17
+ setScalar(scalar: number): unknown;
18
+ addScaledVector(v: never, s: number): unknown;
19
+ }
20
+ /**
21
+ * Mutable three.js-compatible triangle. Every modifier mutates `this` and
22
+ * returns `this`, exactly like three r185 `Triangle`, including the static
23
+ * helpers and `null` for a degenerate `getBarycoord`.
24
+ */
25
+ export declare class Triangle {
26
+ a: Vector3;
27
+ b: Vector3;
28
+ c: Vector3;
29
+ constructor(a?: Vector3, b?: Vector3, c?: Vector3);
30
+ /** Copy an immutable `@aura3d/math` Triangle (or any `{a, b, c}`) into this triangle. */
31
+ fromImmutable(triangle: TriangleCornersLike): this;
32
+ static getNormal(a: Vector3Like, b: Vector3Like, c: Vector3Like, target: Vector3): Vector3;
33
+ static getBarycoord(point: Vector3Like, a: Vector3Like, b: Vector3Like, c: Vector3Like, target: Vector3): Vector3 | null;
34
+ static containsPoint(point: Vector3Like, a: Vector3Like, b: Vector3Like, c: Vector3Like): boolean;
35
+ static getInterpolation<T extends InterpolationTarget>(point: Vector3Like, p1: Vector3Like, p2: Vector3Like, p3: Vector3Like, v1: unknown, v2: unknown, v3: unknown, target: T): T | null;
36
+ static getInterpolatedAttribute(attr: BufferAttributeLikeW & BufferAttributeLike3, i1: number, i2: number, i3: number, barycoord: Vector3Like, target: Vector3 | Vector4): Vector3 | Vector4;
37
+ static isFrontFacing(a: Vector3Like, b: Vector3Like, c: Vector3Like, direction: Vector3Like): boolean;
38
+ set(a: Vector3Like, b: Vector3Like, c: Vector3Like): this;
39
+ setFromPointsAndIndices(points: readonly Vector3Like[], i0: number, i1: number, i2: number): this;
40
+ setFromAttributeAndIndices(attribute: BufferAttributeLike3, i0: number, i1: number, i2: number): this;
41
+ clone(): this;
42
+ copy(triangle: TriangleCornersLike): this;
43
+ getArea(): number;
44
+ getMidpoint(target: Vector3): Vector3;
45
+ getNormal(target: Vector3): Vector3;
46
+ getPlane(target: Plane): Plane;
47
+ getBarycoord(point: Vector3Like, target: Vector3): Vector3 | null;
48
+ getInterpolation<T extends InterpolationTarget>(point: Vector3Like, v1: unknown, v2: unknown, v3: unknown, target: T): T | null;
49
+ containsPoint(point: Vector3Like): boolean;
50
+ isFrontFacing(direction: Vector3Like): boolean;
51
+ intersectsBox(box: {
52
+ intersectsTriangle(triangle: Triangle): boolean;
53
+ }): boolean;
54
+ closestPointToPoint(p: Vector3Like, target: Vector3): Vector3;
55
+ equals(triangle: TriangleCornersLike): boolean;
56
+ }
57
+ export {};
58
+ //# sourceMappingURL=Triangle.d.ts.map