@babylonjs/core 5.0.0-beta.2 → 5.0.0-beta.6

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 (692) hide show
  1. package/Actions/actionManager.d.ts +1 -1
  2. package/Actions/actionManager.js +5 -1
  3. package/Actions/actionManager.js.map +1 -1
  4. package/Audio/analyser.d.ts +2 -1
  5. package/Audio/analyser.js +5 -0
  6. package/Audio/analyser.js.map +1 -1
  7. package/Audio/audioSceneComponent.d.ts +1 -1
  8. package/Audio/audioSceneComponent.js +5 -0
  9. package/Audio/audioSceneComponent.js.map +1 -1
  10. package/Audio/sound.d.ts +1 -1
  11. package/Audio/sound.js +8 -1
  12. package/Audio/sound.js.map +1 -1
  13. package/Audio/soundTrack.d.ts +2 -1
  14. package/Audio/soundTrack.js +5 -0
  15. package/Audio/soundTrack.js.map +1 -1
  16. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  17. package/BakedVertexAnimation/bakedVertexAnimationManager.js +5 -0
  18. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  19. package/Behaviors/Meshes/baseSixDofDragBehavior.js +29 -26
  20. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  21. package/Behaviors/Meshes/pointerDragBehavior.js +2 -0
  22. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  23. package/Bones/bone.d.ts +2 -1
  24. package/Bones/bone.js +28 -18
  25. package/Bones/bone.js.map +1 -1
  26. package/Bones/skeleton.js +3 -3
  27. package/Bones/skeleton.js.map +1 -1
  28. package/Buffers/buffer.d.ts +4 -0
  29. package/Buffers/buffer.js +13 -3
  30. package/Buffers/buffer.js.map +1 -1
  31. package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -0
  32. package/Cameras/Inputs/freeCameraMouseInput.js +6 -3
  33. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  34. package/Cameras/Inputs/freeCameraTouchInput.js +2 -4
  35. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  36. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.d.ts +1 -1
  37. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js.map +1 -1
  38. package/Cameras/Stereoscopic/anaglyphFreeCamera.d.ts +1 -1
  39. package/Cameras/Stereoscopic/anaglyphFreeCamera.js.map +1 -1
  40. package/Cameras/Stereoscopic/anaglyphGamepadCamera.d.ts +1 -1
  41. package/Cameras/Stereoscopic/anaglyphGamepadCamera.js.map +1 -1
  42. package/Cameras/Stereoscopic/anaglyphUniversalCamera.d.ts +1 -1
  43. package/Cameras/Stereoscopic/anaglyphUniversalCamera.js.map +1 -1
  44. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.d.ts +1 -1
  45. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js.map +1 -1
  46. package/Cameras/Stereoscopic/stereoscopicFreeCamera.d.ts +1 -1
  47. package/Cameras/Stereoscopic/stereoscopicFreeCamera.js.map +1 -1
  48. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.d.ts +1 -1
  49. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js.map +1 -1
  50. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +1 -1
  51. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  52. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.d.ts +1 -1
  53. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js.map +1 -1
  54. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.d.ts +1 -1
  55. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
  56. package/Cameras/VR/vrDeviceOrientationFreeCamera.d.ts +1 -1
  57. package/Cameras/VR/vrDeviceOrientationFreeCamera.js.map +1 -1
  58. package/Cameras/VR/vrDeviceOrientationGamepadCamera.d.ts +1 -1
  59. package/Cameras/VR/vrDeviceOrientationGamepadCamera.js.map +1 -1
  60. package/Cameras/VR/vrExperienceHelper.d.ts +1 -0
  61. package/Cameras/VR/vrExperienceHelper.js +1 -0
  62. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  63. package/Cameras/VR/webVRCamera.d.ts +2 -1
  64. package/Cameras/VR/webVRCamera.js +3 -2
  65. package/Cameras/VR/webVRCamera.js.map +1 -1
  66. package/Cameras/arcRotateCamera.d.ts +1 -1
  67. package/Cameras/arcRotateCamera.js.map +1 -1
  68. package/Cameras/camera.d.ts +1 -1
  69. package/Cameras/camera.js +1 -1
  70. package/Cameras/camera.js.map +1 -1
  71. package/Cameras/deviceOrientationCamera.d.ts +1 -1
  72. package/Cameras/deviceOrientationCamera.js.map +1 -1
  73. package/Cameras/flyCamera.d.ts +1 -1
  74. package/Cameras/flyCamera.js.map +1 -1
  75. package/Cameras/followCamera.d.ts +1 -1
  76. package/Cameras/followCamera.js.map +1 -1
  77. package/Cameras/freeCamera.d.ts +1 -1
  78. package/Cameras/freeCamera.js.map +1 -1
  79. package/Cameras/gamepadCamera.d.ts +1 -1
  80. package/Cameras/gamepadCamera.js.map +1 -1
  81. package/Cameras/targetCamera.d.ts +1 -1
  82. package/Cameras/targetCamera.js.map +1 -1
  83. package/Cameras/touchCamera.d.ts +1 -1
  84. package/Cameras/touchCamera.js.map +1 -1
  85. package/Cameras/universalCamera.d.ts +1 -1
  86. package/Cameras/universalCamera.js.map +1 -1
  87. package/Cameras/virtualJoysticksCamera.d.ts +1 -1
  88. package/Cameras/virtualJoysticksCamera.js.map +1 -1
  89. package/Collisions/collider.d.ts +1 -1
  90. package/Collisions/collider.js +48 -2
  91. package/Collisions/collider.js.map +1 -1
  92. package/Compute/computeEffect.js +2 -2
  93. package/Compute/computeEffect.js.map +1 -1
  94. package/Culling/Octrees/octreeSceneComponent.d.ts +1 -1
  95. package/Culling/Octrees/octreeSceneComponent.js +5 -0
  96. package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
  97. package/Culling/ray.d.ts +6 -4
  98. package/Culling/ray.js +33 -11
  99. package/Culling/ray.js.map +1 -1
  100. package/Debug/axesViewer.d.ts +2 -1
  101. package/Debug/axesViewer.js +6 -0
  102. package/Debug/axesViewer.js.map +1 -1
  103. package/Debug/debugLayer.d.ts +1 -1
  104. package/Debug/debugLayer.js +6 -2
  105. package/Debug/debugLayer.js.map +1 -1
  106. package/Debug/physicsViewer.d.ts +1 -1
  107. package/Debug/physicsViewer.js +3 -0
  108. package/Debug/physicsViewer.js.map +1 -1
  109. package/DeviceInput/Helpers/eventFactory.d.ts +1 -1
  110. package/DeviceInput/Helpers/eventFactory.js +1 -1
  111. package/DeviceInput/Helpers/eventFactory.js.map +1 -1
  112. package/DeviceInput/InputDevices/deviceEnums.d.ts +52 -1
  113. package/DeviceInput/InputDevices/deviceEnums.js +52 -0
  114. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  115. package/DeviceInput/InputDevices/deviceSource.d.ts +35 -0
  116. package/DeviceInput/InputDevices/deviceSource.js +38 -0
  117. package/DeviceInput/InputDevices/deviceSource.js.map +1 -0
  118. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +14 -72
  119. package/DeviceInput/InputDevices/deviceSourceManager.js +10 -180
  120. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  121. package/DeviceInput/InputDevices/deviceTypes.d.ts +2 -2
  122. package/DeviceInput/InputDevices/deviceTypes.js.map +1 -1
  123. package/DeviceInput/{Interfaces → InputDevices}/inputInterfaces.d.ts +1 -5
  124. package/DeviceInput/{Interfaces → InputDevices}/inputInterfaces.js +0 -0
  125. package/DeviceInput/InputDevices/inputInterfaces.js.map +1 -0
  126. package/DeviceInput/InputDevices/internalDeviceSourceManager.d.ts +46 -0
  127. package/DeviceInput/InputDevices/internalDeviceSourceManager.js +144 -0
  128. package/DeviceInput/InputDevices/internalDeviceSourceManager.js.map +1 -0
  129. package/DeviceInput/{Implementations → InputDevices}/nativeDeviceInputSystem.d.ts +3 -7
  130. package/DeviceInput/{Implementations → InputDevices}/nativeDeviceInputSystem.js +9 -15
  131. package/DeviceInput/InputDevices/nativeDeviceInputSystem.js.map +1 -0
  132. package/DeviceInput/{Implementations → InputDevices}/webDeviceInputSystem.d.ts +11 -15
  133. package/DeviceInput/{Implementations → InputDevices}/webDeviceInputSystem.js +116 -95
  134. package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -0
  135. package/DeviceInput/index.d.ts +1 -5
  136. package/DeviceInput/index.js +1 -5
  137. package/DeviceInput/index.js.map +1 -1
  138. package/Engines/Extensions/engine.cubeTexture.d.ts +1 -1
  139. package/Engines/Extensions/engine.cubeTexture.js +5 -2
  140. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  141. package/Engines/Extensions/engine.multiview.d.ts +5 -0
  142. package/Engines/Extensions/engine.multiview.js +4 -1
  143. package/Engines/Extensions/engine.multiview.js.map +1 -1
  144. package/Engines/Native/nativeInterfaces.d.ts +3 -2
  145. package/Engines/Native/nativeInterfaces.js.map +1 -1
  146. package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
  147. package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
  148. package/Engines/Processors/shaderCodeInliner.js +13 -13
  149. package/Engines/Processors/shaderCodeInliner.js.map +1 -1
  150. package/Engines/WebGPU/webgpuCacheBindGroups.js +9 -9
  151. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  152. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +5 -7
  153. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  154. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.d.ts +1 -1
  155. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
  156. package/Engines/WebGPU/webgpuCacheSampler.d.ts +2 -0
  157. package/Engines/WebGPU/webgpuCacheSampler.js +23 -2
  158. package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
  159. package/Engines/WebGPU/webgpuComputeContext.js +1 -1
  160. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  161. package/Engines/WebGPU/webgpuDrawContext.d.ts +1 -1
  162. package/Engines/WebGPU/webgpuDrawContext.js +3 -3
  163. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  164. package/Engines/WebGPU/webgpuHardwareTexture.d.ts +0 -1
  165. package/Engines/WebGPU/webgpuHardwareTexture.js +0 -3
  166. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  167. package/Engines/WebGPU/webgpuPipelineContext.d.ts +0 -8
  168. package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
  169. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +13 -13
  170. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  171. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +30 -30
  172. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  173. package/Engines/WebGPU/webgpuTextureHelper.d.ts +0 -1
  174. package/Engines/WebGPU/webgpuTextureHelper.js +8 -30
  175. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  176. package/Engines/engine.d.ts +3 -7
  177. package/Engines/engine.js +2 -6
  178. package/Engines/engine.js.map +1 -1
  179. package/Engines/engineCapabilities.d.ts +4 -0
  180. package/Engines/engineCapabilities.js.map +1 -1
  181. package/Engines/nativeEngine.d.ts +1 -0
  182. package/Engines/nativeEngine.js +39 -12
  183. package/Engines/nativeEngine.js.map +1 -1
  184. package/Engines/nullEngine.js +3 -1
  185. package/Engines/nullEngine.js.map +1 -1
  186. package/Engines/thinEngine.d.ts +11 -2
  187. package/Engines/thinEngine.js +34 -21
  188. package/Engines/thinEngine.js.map +1 -1
  189. package/Engines/webgpuEngine.d.ts +3 -7
  190. package/Engines/webgpuEngine.js +12 -22
  191. package/Engines/webgpuEngine.js.map +1 -1
  192. package/Gamepads/Controllers/daydreamController.js +1 -1
  193. package/Gamepads/Controllers/daydreamController.js.map +1 -1
  194. package/Gamepads/Controllers/oculusTouchController.js +2 -2
  195. package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
  196. package/Gamepads/Controllers/webVRController.d.ts +1 -0
  197. package/Gamepads/Controllers/webVRController.js +1 -0
  198. package/Gamepads/Controllers/webVRController.js.map +1 -1
  199. package/Gamepads/gamepadManager.js +1 -1
  200. package/Gamepads/gamepadManager.js.map +1 -1
  201. package/Gizmos/gizmoManager.d.ts +2 -0
  202. package/Gizmos/gizmoManager.js +28 -24
  203. package/Gizmos/gizmoManager.js.map +1 -1
  204. package/Helpers/sceneHelpers.d.ts +1 -0
  205. package/Helpers/sceneHelpers.js.map +1 -1
  206. package/Inputs/scene.inputManager.d.ts +2 -2
  207. package/Inputs/scene.inputManager.js +10 -9
  208. package/Inputs/scene.inputManager.js.map +1 -1
  209. package/Instrumentation/sceneInstrumentation.js +2 -2
  210. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  211. package/Layers/effectLayer.d.ts +1 -1
  212. package/Layers/effectLayer.js +1 -1
  213. package/Layers/effectLayer.js.map +1 -1
  214. package/Layers/effectLayerSceneComponent.d.ts +1 -1
  215. package/Layers/effectLayerSceneComponent.js +7 -3
  216. package/Layers/effectLayerSceneComponent.js.map +1 -1
  217. package/Layers/glowLayer.d.ts +1 -1
  218. package/Layers/glowLayer.js.map +1 -1
  219. package/Layers/highlightLayer.d.ts +1 -1
  220. package/Layers/highlightLayer.js +2 -1
  221. package/Layers/highlightLayer.js.map +1 -1
  222. package/Layers/layer.d.ts +2 -2
  223. package/Layers/layer.js.map +1 -1
  224. package/Layers/layerSceneComponent.d.ts +1 -1
  225. package/Layers/layerSceneComponent.js +7 -3
  226. package/Layers/layerSceneComponent.js.map +1 -1
  227. package/Lights/Shadows/cascadedShadowGenerator.js +2 -2
  228. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  229. package/Lights/Shadows/shadowGenerator.js +2 -2
  230. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  231. package/Loading/Plugins/babylonFileLoader.js +115 -29
  232. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  233. package/Loading/loadingScreen.js +8 -8
  234. package/Loading/loadingScreen.js.map +1 -1
  235. package/Loading/sceneLoader.js +3 -3
  236. package/Loading/sceneLoader.js.map +1 -1
  237. package/Materials/Background/backgroundMaterial.d.ts +1 -1
  238. package/Materials/Background/backgroundMaterial.js.map +1 -1
  239. package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +37 -0
  240. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +117 -0
  241. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -0
  242. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +12 -12
  243. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  244. package/Materials/Node/Blocks/Dual/fogBlock.js +5 -5
  245. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  246. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +13 -13
  247. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  248. package/Materials/Node/Blocks/Dual/index.d.ts +1 -0
  249. package/Materials/Node/Blocks/Dual/index.js +1 -0
  250. package/Materials/Node/Blocks/Dual/index.js.map +1 -1
  251. package/Materials/Node/Blocks/Dual/lightBlock.js +10 -10
  252. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  253. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +28 -28
  254. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  255. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +1 -1
  256. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
  257. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +7 -7
  258. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  259. package/Materials/Node/Blocks/Dual/textureBlock.js +32 -32
  260. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  261. package/Materials/Node/Blocks/Fragment/derivativeBlock.js +2 -2
  262. package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
  263. package/Materials/Node/Blocks/Fragment/discardBlock.js +1 -1
  264. package/Materials/Node/Blocks/Fragment/discardBlock.js.map +1 -1
  265. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -1
  266. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  267. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +10 -10
  268. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  269. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +7 -7
  270. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  271. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +12 -12
  272. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  273. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -1
  274. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  275. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +7 -7
  276. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
  277. package/Materials/Node/Blocks/Fragment/twirlBlock.js +4 -4
  278. package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -1
  279. package/Materials/Node/Blocks/Input/inputBlock.d.ts +2 -1
  280. package/Materials/Node/Blocks/Input/inputBlock.js +29 -24
  281. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  282. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +5 -5
  283. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  284. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +5 -5
  285. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  286. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +33 -33
  287. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  288. package/Materials/Node/Blocks/PBR/reflectionBlock.js +11 -11
  289. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  290. package/Materials/Node/Blocks/PBR/refractionBlock.js +11 -11
  291. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  292. package/Materials/Node/Blocks/PBR/sheenBlock.js +3 -3
  293. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  294. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -1
  295. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  296. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js +1 -1
  297. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js.map +1 -1
  298. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js +1 -1
  299. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js.map +1 -1
  300. package/Materials/Node/Blocks/Particle/particleTextureBlock.js +7 -7
  301. package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
  302. package/Materials/Node/Blocks/Vertex/bonesBlock.js +3 -3
  303. package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
  304. package/Materials/Node/Blocks/Vertex/instancesBlock.js +3 -3
  305. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  306. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +5 -5
  307. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  308. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +16 -16
  309. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  310. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +1 -1
  311. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  312. package/Materials/Node/Blocks/addBlock.js +1 -1
  313. package/Materials/Node/Blocks/addBlock.js.map +1 -1
  314. package/Materials/Node/Blocks/arcTan2Block.js +1 -1
  315. package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
  316. package/Materials/Node/Blocks/clampBlock.js +3 -3
  317. package/Materials/Node/Blocks/clampBlock.js.map +1 -1
  318. package/Materials/Node/Blocks/cloudBlock.js +7 -7
  319. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  320. package/Materials/Node/Blocks/colorMergerBlock.js +8 -8
  321. package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
  322. package/Materials/Node/Blocks/colorSplitterBlock.js +5 -5
  323. package/Materials/Node/Blocks/colorSplitterBlock.js.map +1 -1
  324. package/Materials/Node/Blocks/conditionalBlock.js +10 -10
  325. package/Materials/Node/Blocks/conditionalBlock.js.map +1 -1
  326. package/Materials/Node/Blocks/crossBlock.js +1 -1
  327. package/Materials/Node/Blocks/crossBlock.js.map +1 -1
  328. package/Materials/Node/Blocks/customBlock.js +1 -1
  329. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  330. package/Materials/Node/Blocks/desaturateBlock.js +4 -4
  331. package/Materials/Node/Blocks/desaturateBlock.js.map +1 -1
  332. package/Materials/Node/Blocks/distanceBlock.js +1 -1
  333. package/Materials/Node/Blocks/distanceBlock.js.map +1 -1
  334. package/Materials/Node/Blocks/divideBlock.js +1 -1
  335. package/Materials/Node/Blocks/divideBlock.js.map +1 -1
  336. package/Materials/Node/Blocks/dotBlock.js +1 -1
  337. package/Materials/Node/Blocks/dotBlock.js.map +1 -1
  338. package/Materials/Node/Blocks/elbowBlock.d.ts +27 -0
  339. package/Materials/Node/Blocks/elbowBlock.js +60 -0
  340. package/Materials/Node/Blocks/elbowBlock.js.map +1 -0
  341. package/Materials/Node/Blocks/fresnelBlock.js +2 -2
  342. package/Materials/Node/Blocks/fresnelBlock.js.map +1 -1
  343. package/Materials/Node/Blocks/gradientBlock.js +8 -8
  344. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  345. package/Materials/Node/Blocks/index.d.ts +1 -0
  346. package/Materials/Node/Blocks/index.js +1 -0
  347. package/Materials/Node/Blocks/index.js.map +1 -1
  348. package/Materials/Node/Blocks/lengthBlock.js +1 -1
  349. package/Materials/Node/Blocks/lengthBlock.js.map +1 -1
  350. package/Materials/Node/Blocks/lerpBlock.js +1 -1
  351. package/Materials/Node/Blocks/lerpBlock.js.map +1 -1
  352. package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -1
  353. package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
  354. package/Materials/Node/Blocks/maxBlock.js +1 -1
  355. package/Materials/Node/Blocks/maxBlock.js.map +1 -1
  356. package/Materials/Node/Blocks/minBlock.js +1 -1
  357. package/Materials/Node/Blocks/minBlock.js.map +1 -1
  358. package/Materials/Node/Blocks/modBlock.js +1 -1
  359. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  360. package/Materials/Node/Blocks/multiplyBlock.js +1 -1
  361. package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
  362. package/Materials/Node/Blocks/nLerpBlock.js +1 -1
  363. package/Materials/Node/Blocks/nLerpBlock.js.map +1 -1
  364. package/Materials/Node/Blocks/negateBlock.js +1 -1
  365. package/Materials/Node/Blocks/negateBlock.js.map +1 -1
  366. package/Materials/Node/Blocks/normalBlendBlock.js +5 -5
  367. package/Materials/Node/Blocks/normalBlendBlock.js.map +1 -1
  368. package/Materials/Node/Blocks/normalizeBlock.js +1 -1
  369. package/Materials/Node/Blocks/normalizeBlock.js.map +1 -1
  370. package/Materials/Node/Blocks/oneMinusBlock.js +1 -1
  371. package/Materials/Node/Blocks/oneMinusBlock.js.map +1 -1
  372. package/Materials/Node/Blocks/posterizeBlock.js +1 -1
  373. package/Materials/Node/Blocks/posterizeBlock.js.map +1 -1
  374. package/Materials/Node/Blocks/powBlock.js +1 -1
  375. package/Materials/Node/Blocks/powBlock.js.map +1 -1
  376. package/Materials/Node/Blocks/randomNumberBlock.js +2 -2
  377. package/Materials/Node/Blocks/randomNumberBlock.js.map +1 -1
  378. package/Materials/Node/Blocks/reciprocalBlock.js +1 -1
  379. package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
  380. package/Materials/Node/Blocks/reflectBlock.js +1 -1
  381. package/Materials/Node/Blocks/reflectBlock.js.map +1 -1
  382. package/Materials/Node/Blocks/refractBlock.js +1 -1
  383. package/Materials/Node/Blocks/refractBlock.js.map +1 -1
  384. package/Materials/Node/Blocks/remapBlock.js +3 -3
  385. package/Materials/Node/Blocks/remapBlock.js.map +1 -1
  386. package/Materials/Node/Blocks/replaceColorBlock.js +3 -3
  387. package/Materials/Node/Blocks/replaceColorBlock.js.map +1 -1
  388. package/Materials/Node/Blocks/rotate2dBlock.js +1 -1
  389. package/Materials/Node/Blocks/rotate2dBlock.js.map +1 -1
  390. package/Materials/Node/Blocks/scaleBlock.js +1 -1
  391. package/Materials/Node/Blocks/scaleBlock.js.map +1 -1
  392. package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -1
  393. package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
  394. package/Materials/Node/Blocks/smoothStepBlock.js +1 -1
  395. package/Materials/Node/Blocks/smoothStepBlock.js.map +1 -1
  396. package/Materials/Node/Blocks/stepBlock.js +1 -1
  397. package/Materials/Node/Blocks/stepBlock.js.map +1 -1
  398. package/Materials/Node/Blocks/subtractBlock.js +1 -1
  399. package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
  400. package/Materials/Node/Blocks/transformBlock.js +13 -13
  401. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  402. package/Materials/Node/Blocks/trigonometryBlock.js +2 -2
  403. package/Materials/Node/Blocks/trigonometryBlock.js.map +1 -1
  404. package/Materials/Node/Blocks/vectorMergerBlock.js +22 -22
  405. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  406. package/Materials/Node/Blocks/vectorSplitterBlock.js +8 -8
  407. package/Materials/Node/Blocks/vectorSplitterBlock.js.map +1 -1
  408. package/Materials/Node/Blocks/viewDirectionBlock.js +1 -1
  409. package/Materials/Node/Blocks/viewDirectionBlock.js.map +1 -1
  410. package/Materials/Node/Blocks/voronoiNoiseBlock.js +5 -5
  411. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
  412. package/Materials/Node/Blocks/waveBlock.js +3 -3
  413. package/Materials/Node/Blocks/waveBlock.js.map +1 -1
  414. package/Materials/Node/Blocks/worleyNoise3DBlock.js +5 -5
  415. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  416. package/Materials/Node/Enums/nodeMaterialSystemValues.d.ts +3 -1
  417. package/Materials/Node/Enums/nodeMaterialSystemValues.js +2 -0
  418. package/Materials/Node/Enums/nodeMaterialSystemValues.js.map +1 -1
  419. package/Materials/Node/nodeMaterial.d.ts +4 -0
  420. package/Materials/Node/nodeMaterial.js +22 -11
  421. package/Materials/Node/nodeMaterial.js.map +1 -1
  422. package/Materials/Node/nodeMaterialBlock.js +12 -12
  423. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  424. package/Materials/Node/nodeMaterialBuildState.js +24 -24
  425. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  426. package/Materials/Node/nodeMaterialBuildStateSharedData.js +1 -1
  427. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  428. package/Materials/PBR/pbrBaseMaterial.d.ts +2 -1
  429. package/Materials/PBR/pbrBaseMaterial.js +4 -3
  430. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  431. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +1 -1
  432. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  433. package/Materials/PBR/pbrMaterial.d.ts +1 -1
  434. package/Materials/PBR/pbrMaterial.js +2 -3
  435. package/Materials/PBR/pbrMaterial.js.map +1 -1
  436. package/Materials/PBR/pbrMetallicRoughnessMaterial.d.ts +1 -1
  437. package/Materials/PBR/pbrMetallicRoughnessMaterial.js.map +1 -1
  438. package/Materials/PBR/pbrSpecularGlossinessMaterial.d.ts +1 -1
  439. package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
  440. package/Materials/Textures/Loaders/ddsTextureLoader.js +8 -1
  441. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  442. package/Materials/Textures/Loaders/ktxTextureLoader.js +2 -2
  443. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  444. package/Materials/Textures/MultiviewRenderTarget.d.ts +2 -1
  445. package/Materials/Textures/MultiviewRenderTarget.js +10 -2
  446. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  447. package/Materials/Textures/Procedurals/proceduralTexture.js +1 -1
  448. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  449. package/Materials/Textures/baseTexture.d.ts +1 -1
  450. package/Materials/Textures/baseTexture.js.map +1 -1
  451. package/Materials/Textures/equiRectangularCubeTexture.js +1 -1
  452. package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
  453. package/Materials/Textures/mirrorTexture.d.ts +2 -2
  454. package/Materials/Textures/mirrorTexture.js +7 -3
  455. package/Materials/Textures/mirrorTexture.js.map +1 -1
  456. package/Materials/Textures/multiRenderTarget.d.ts +1 -1
  457. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  458. package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
  459. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  460. package/Materials/Textures/refractionTexture.d.ts +1 -1
  461. package/Materials/Textures/refractionTexture.js +2 -2
  462. package/Materials/Textures/refractionTexture.js.map +1 -1
  463. package/Materials/Textures/renderTargetTexture.d.ts +1 -1
  464. package/Materials/Textures/renderTargetTexture.js +2 -2
  465. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  466. package/Materials/Textures/texture.d.ts +1 -1
  467. package/Materials/Textures/texture.js.map +1 -1
  468. package/Materials/Textures/videoTexture.js +1 -0
  469. package/Materials/Textures/videoTexture.js.map +1 -1
  470. package/Materials/effect.js +3 -3
  471. package/Materials/effect.js.map +1 -1
  472. package/Materials/material.d.ts +3 -1
  473. package/Materials/material.js +11 -3
  474. package/Materials/material.js.map +1 -1
  475. package/Materials/materialHelper.js +4 -1
  476. package/Materials/materialHelper.js.map +1 -1
  477. package/Materials/materialPluginManager.js +3 -3
  478. package/Materials/materialPluginManager.js.map +1 -1
  479. package/Materials/multiMaterial.d.ts +3 -1
  480. package/Materials/multiMaterial.js +13 -11
  481. package/Materials/multiMaterial.js.map +1 -1
  482. package/Materials/pushMaterial.d.ts +1 -1
  483. package/Materials/pushMaterial.js.map +1 -1
  484. package/Materials/shaderMaterial.js +8 -4
  485. package/Materials/shaderMaterial.js.map +1 -1
  486. package/Materials/shadowDepthWrapper.d.ts +1 -1
  487. package/Materials/shadowDepthWrapper.js +3 -3
  488. package/Materials/shadowDepthWrapper.js.map +1 -1
  489. package/Materials/standardMaterial.d.ts +2 -6
  490. package/Materials/standardMaterial.js +5 -10
  491. package/Materials/standardMaterial.js.map +1 -1
  492. package/Maths/math.path.d.ts +1 -0
  493. package/Maths/math.path.js +1 -0
  494. package/Maths/math.path.js.map +1 -1
  495. package/Maths/math.size.js +1 -1
  496. package/Maths/math.size.js.map +1 -1
  497. package/Maths/math.vector.d.ts +5 -2
  498. package/Maths/math.vector.js +35 -32
  499. package/Maths/math.vector.js.map +1 -1
  500. package/Meshes/Builders/cylinderBuilder.d.ts +1 -1
  501. package/Meshes/Builders/cylinderBuilder.js +1 -1
  502. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  503. package/Meshes/Builders/geodesicBuilder.d.ts +1 -0
  504. package/Meshes/Builders/geodesicBuilder.js +1 -0
  505. package/Meshes/Builders/geodesicBuilder.js.map +1 -1
  506. package/Meshes/Builders/goldbergBuilder.d.ts +1 -0
  507. package/Meshes/Builders/goldbergBuilder.js +1 -0
  508. package/Meshes/Builders/goldbergBuilder.js.map +1 -1
  509. package/Meshes/Builders/linesBuilder.js.map +1 -1
  510. package/Meshes/Builders/tiledBoxBuilder.d.ts +30 -11
  511. package/Meshes/Builders/tiledBoxBuilder.js +30 -11
  512. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  513. package/Meshes/Builders/tiledPlaneBuilder.d.ts +21 -16
  514. package/Meshes/Builders/tiledPlaneBuilder.js +21 -16
  515. package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
  516. package/Meshes/Compression/dracoCompression.d.ts +3 -0
  517. package/Meshes/Compression/dracoCompression.js +23 -7
  518. package/Meshes/Compression/dracoCompression.js.map +1 -1
  519. package/Meshes/abstractMesh.d.ts +6 -0
  520. package/Meshes/abstractMesh.js +18 -2
  521. package/Meshes/abstractMesh.js.map +1 -1
  522. package/Meshes/geometry.d.ts +1 -1
  523. package/Meshes/geometry.js +7 -3
  524. package/Meshes/geometry.js.map +1 -1
  525. package/Meshes/groundMesh.d.ts +1 -1
  526. package/Meshes/groundMesh.js.map +1 -1
  527. package/Meshes/mesh.js +21 -6
  528. package/Meshes/mesh.js.map +1 -1
  529. package/Meshes/mesh.lts.d.ts +1 -1
  530. package/Meshes/mesh.lts.js.map +1 -1
  531. package/Meshes/mesh.vertexData.d.ts +1 -1
  532. package/Meshes/mesh.vertexData.js +2 -2
  533. package/Meshes/mesh.vertexData.js.map +1 -1
  534. package/Meshes/polygonMesh.js +2 -2
  535. package/Meshes/polygonMesh.js.map +1 -1
  536. package/Meshes/subMesh.js +1 -2
  537. package/Meshes/subMesh.js.map +1 -1
  538. package/Meshes/subMesh.project.js +1 -2
  539. package/Meshes/subMesh.project.js.map +1 -1
  540. package/Meshes/thinInstanceMesh.js +5 -0
  541. package/Meshes/thinInstanceMesh.js.map +1 -1
  542. package/Meshes/trailMesh.d.ts +1 -1
  543. package/Meshes/trailMesh.js.map +1 -1
  544. package/Meshes/transformNode.js +40 -13
  545. package/Meshes/transformNode.js.map +1 -1
  546. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +5 -0
  547. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +13 -2
  548. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  549. package/Misc/PerformanceViewer/performanceViewerCollector.js +36 -19
  550. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  551. package/Misc/assetsManager.d.ts +2 -1
  552. package/Misc/assetsManager.js +15 -1
  553. package/Misc/assetsManager.js.map +1 -1
  554. package/Misc/basis.js +1 -1
  555. package/Misc/basis.js.map +1 -1
  556. package/Misc/brdfTextureTools.js +4 -1
  557. package/Misc/brdfTextureTools.js.map +1 -1
  558. package/Misc/dds.js +7 -0
  559. package/Misc/dds.js.map +1 -1
  560. package/Misc/devTools.js +1 -1
  561. package/Misc/devTools.js.map +1 -1
  562. package/Misc/environmentTextureTools.js +2 -2
  563. package/Misc/environmentTextureTools.js.map +1 -1
  564. package/Misc/fileTools.js +4 -4
  565. package/Misc/fileTools.js.map +1 -1
  566. package/Misc/index.d.ts +1 -0
  567. package/Misc/index.js +1 -0
  568. package/Misc/index.js.map +1 -1
  569. package/Misc/khronosTextureContainer2.js +4 -3
  570. package/Misc/khronosTextureContainer2.js.map +1 -1
  571. package/Misc/reflector.js +6 -6
  572. package/Misc/reflector.js.map +1 -1
  573. package/Misc/tools.js +15 -13
  574. package/Misc/tools.js.map +1 -1
  575. package/Misc/uniqueIdGenerator.js +1 -1
  576. package/Misc/uniqueIdGenerator.js.map +1 -1
  577. package/Offline/database.js +1 -1
  578. package/Offline/database.js.map +1 -1
  579. package/Particles/baseParticleSystem.d.ts +4 -1
  580. package/Particles/baseParticleSystem.js +20 -5
  581. package/Particles/baseParticleSystem.js.map +1 -1
  582. package/Particles/gpuParticleSystem.js +2 -1
  583. package/Particles/gpuParticleSystem.js.map +1 -1
  584. package/Particles/particleHelper.js +2 -2
  585. package/Particles/particleHelper.js.map +1 -1
  586. package/Physics/Plugins/ammoJSPlugin.d.ts +5 -1
  587. package/Physics/Plugins/ammoJSPlugin.js +16 -11
  588. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  589. package/Physics/physicsEngine.d.ts +1 -0
  590. package/Physics/physicsEngine.js +3 -1
  591. package/Physics/physicsEngine.js.map +1 -1
  592. package/Physics/physicsImpostor.d.ts +2 -2
  593. package/Physics/physicsImpostor.js.map +1 -1
  594. package/PostProcesses/blurPostProcess.js +5 -5
  595. package/PostProcesses/blurPostProcess.js.map +1 -1
  596. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  597. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  598. package/PostProcesses/postProcess.js +1 -1
  599. package/PostProcesses/postProcess.js.map +1 -1
  600. package/PostProcesses/postProcessManager.js +2 -2
  601. package/PostProcesses/postProcessManager.js.map +1 -1
  602. package/Probes/reflectionProbe.js +2 -2
  603. package/Probes/reflectionProbe.js.map +1 -1
  604. package/Rendering/depthPeelingRenderer.js +3 -3
  605. package/Rendering/depthPeelingRenderer.js.map +1 -1
  606. package/Rendering/geometryBufferRenderer.js +8 -8
  607. package/Rendering/geometryBufferRenderer.js.map +1 -1
  608. package/Rendering/outlineRenderer.js +1 -1
  609. package/Rendering/outlineRenderer.js.map +1 -1
  610. package/Rendering/utilityLayerRenderer.js +4 -0
  611. package/Rendering/utilityLayerRenderer.js.map +1 -1
  612. package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
  613. package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
  614. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +1 -1
  615. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  616. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +1 -1
  617. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  618. package/Shaders/ShadersInclude/prePassVertex.js +1 -1
  619. package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
  620. package/Shaders/color.fragment.js +1 -1
  621. package/Shaders/color.fragment.js.map +1 -1
  622. package/Shaders/color.vertex.js +1 -1
  623. package/Shaders/color.vertex.js.map +1 -1
  624. package/Shaders/default.fragment.js +1 -1
  625. package/Shaders/default.fragment.js.map +1 -1
  626. package/Shaders/default.vertex.js +1 -1
  627. package/Shaders/default.vertex.js.map +1 -1
  628. package/Shaders/pbr.vertex.js +1 -1
  629. package/Shaders/pbr.vertex.js.map +1 -1
  630. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
  631. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
  632. package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
  633. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  634. package/Sprites/spriteManager.js +9 -10
  635. package/Sprites/spriteManager.js.map +1 -1
  636. package/Sprites/spriteMap.js +2 -2
  637. package/Sprites/spriteMap.js.map +1 -1
  638. package/Sprites/spriteRenderer.js +1 -1
  639. package/Sprites/spriteRenderer.js.map +1 -1
  640. package/XR/features/WebXRControllerPointerSelection.js +15 -9
  641. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  642. package/XR/features/WebXRDOMOverlay.js +1 -1
  643. package/XR/features/WebXRDOMOverlay.js.map +1 -1
  644. package/XR/features/WebXRHandTracking.js +30 -30
  645. package/XR/features/WebXRHandTracking.js.map +1 -1
  646. package/XR/features/WebXRImageTracking.js +2 -2
  647. package/XR/features/WebXRImageTracking.js.map +1 -1
  648. package/XR/features/WebXRLayers.d.ts +28 -5
  649. package/XR/features/WebXRLayers.js +54 -20
  650. package/XR/features/WebXRLayers.js.map +1 -1
  651. package/XR/features/WebXRNearInteraction.d.ts +35 -3
  652. package/XR/features/WebXRNearInteraction.js +201 -40
  653. package/XR/features/WebXRNearInteraction.js.map +1 -1
  654. package/XR/motionController/webXRAbstractMotionController.js +1 -1
  655. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  656. package/XR/motionController/webXRMotionControllerManager.js +2 -2
  657. package/XR/motionController/webXRMotionControllerManager.js.map +1 -1
  658. package/XR/motionController/webXRProfiledMotionController.js +1 -1
  659. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  660. package/XR/webXRCamera.js +17 -4
  661. package/XR/webXRCamera.js.map +1 -1
  662. package/XR/webXRDefaultExperience.js +3 -0
  663. package/XR/webXRDefaultExperience.js.map +1 -1
  664. package/XR/webXREnterExitUI.js +2 -2
  665. package/XR/webXREnterExitUI.js.map +1 -1
  666. package/XR/webXRExperienceHelper.js +3 -2
  667. package/XR/webXRExperienceHelper.js.map +1 -1
  668. package/XR/webXRFeaturesManager.js +6 -6
  669. package/XR/webXRFeaturesManager.js.map +1 -1
  670. package/XR/webXRInputSource.js +3 -3
  671. package/XR/webXRInputSource.js.map +1 -1
  672. package/XR/webXRRenderTargetTextureProvider.d.ts +3 -2
  673. package/XR/webXRRenderTargetTextureProvider.js +37 -18
  674. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  675. package/XR/webXRSessionManager.d.ts +1 -0
  676. package/XR/webXRSessionManager.js +6 -1
  677. package/XR/webXRSessionManager.js.map +1 -1
  678. package/assetContainer.d.ts +1 -1
  679. package/assetContainer.js +4 -0
  680. package/assetContainer.js.map +1 -1
  681. package/node.d.ts +1 -1
  682. package/node.js.map +1 -1
  683. package/package.json +22 -13
  684. package/scene.d.ts +5 -2
  685. package/scene.js +31 -5
  686. package/scene.js.map +1 -1
  687. package/DeviceInput/Implementations/nativeDeviceInputSystem.js.map +0 -1
  688. package/DeviceInput/Implementations/webDeviceInputSystem.js.map +0 -1
  689. package/DeviceInput/Interfaces/inputInterfaces.js.map +0 -1
  690. package/DeviceInput/deviceInputSystem.d.ts +0 -60
  691. package/DeviceInput/deviceInputSystem.js +0 -84
  692. package/DeviceInput/deviceInputSystem.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"freeCameraMouseInput.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Inputs/freeCameraMouseInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observer, EventState, Observable } from \"../../Misc/observable\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport { Nullable } from \"../../types\";\r\nimport { ICameraInput, CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { PointerInfo, PointerEventTypes } from \"../../Events/pointerEvents\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport { IMouseEvent, IPointerEvent } from \"../../Events/deviceInputEvents\";\r\n/**\r\n * Manage the mouse inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/how_to/customizing_camera_inputs\r\n */\r\nexport class FreeCameraMouseInput implements ICameraInput<FreeCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\r\n\r\n /**\r\n * Defines the buttons associated with the input to handle camera move.\r\n */\r\n @serialize()\r\n public buttons = [0, 1, 2];\r\n\r\n /**\r\n * Defines the pointer angular sensibility along the X and Y axis or how fast is the camera rotating.\r\n */\r\n @serialize()\r\n public angularSensibility = 2000.0;\r\n\r\n private _pointerInput: (p: PointerInfo, s: EventState) => void;\r\n private _onMouseMove: Nullable<(e: IMouseEvent) => any>;\r\n private _observer: Nullable<Observer<PointerInfo>>;\r\n private previousPosition: Nullable<{ x: number; y: number }> = null;\r\n\r\n /**\r\n * Observable for when a pointer move event occurs containing the move offset\r\n */\r\n public onPointerMovedObservable = new Observable<{ offsetX: number; offsetY: number }>();\r\n /**\r\n * @hidden\r\n * If the camera should be rotated automatically based on pointer movement\r\n */\r\n public _allowCameraRotation = true;\r\n\r\n private _currentActiveButton: number = -1;\r\n\r\n /**\r\n * Manage the mouse inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/how_to/customizing_camera_inputs\r\n * @param touchEnabled Defines if touch is enabled or not\r\n */\r\n constructor(\r\n /**\r\n * Define if touch is enabled in the mouse input\r\n */\r\n public touchEnabled = true\r\n ) { }\r\n\r\n /**\r\n * Attach the input controls to a specific dom element to get the input from.\r\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\r\n */\r\n public attachControl(noPreventDefault?: boolean): void {\r\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\r\n var engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n\r\n if (!this._pointerInput) {\r\n this._pointerInput = (p) => {\r\n var evt = <IPointerEvent>p.event;\r\n let isTouch = evt.pointerType === \"touch\";\r\n\r\n if (engine.isInVRExclusivePointerMode) {\r\n return;\r\n }\r\n\r\n if (!this.touchEnabled && isTouch) {\r\n return;\r\n }\r\n\r\n if (p.type !== PointerEventTypes.POINTERMOVE && this.buttons.indexOf(evt.button) === -1) {\r\n return;\r\n }\r\n\r\n let srcElement = <HTMLElement>(evt.srcElement || evt.target);\r\n\r\n if (p.type === PointerEventTypes.POINTERDOWN && (this._currentActiveButton === -1 || isTouch)) {\r\n try {\r\n srcElement?.setPointerCapture(evt.pointerId);\r\n } catch (e) {\r\n //Nothing to do with the error. Execution will continue.\r\n }\r\n\r\n if (this._currentActiveButton === -1) {\r\n this._currentActiveButton = evt.button;\r\n }\r\n\r\n this.previousPosition = {\r\n x: evt.clientX,\r\n y: evt.clientY,\r\n };\r\n\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n element && element.focus();\r\n }\r\n\r\n // This is required to move while pointer button is down\r\n if (engine.isPointerLock && this._onMouseMove) {\r\n this._onMouseMove(p.event);\r\n }\r\n } else if (p.type === PointerEventTypes.POINTERUP && (this._currentActiveButton === evt.button || isTouch)) {\r\n try {\r\n srcElement?.releasePointerCapture(evt.pointerId);\r\n } catch (e) {\r\n //Nothing to do with the error.\r\n }\r\n this._currentActiveButton = -1;\r\n\r\n this.previousPosition = null;\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n } else if (p.type === PointerEventTypes.POINTERMOVE) {\r\n\r\n if (engine.isPointerLock && this._onMouseMove) {\r\n this._onMouseMove(p.event);\r\n }\r\n else if (this.previousPosition) {\r\n var offsetX = evt.clientX - this.previousPosition.x;\r\n var offsetY = evt.clientY - this.previousPosition.y;\r\n if (this.camera.getScene().useRightHandedSystem) {\r\n offsetX *= -1;\r\n }\r\n if (this.camera.parent && this.camera.parent._getWorldMatrixDeterminant() < 0) {\r\n offsetX *= -1;\r\n }\r\n\r\n if (this._allowCameraRotation) {\r\n this.camera.cameraRotation.y += offsetX / this.angularSensibility;\r\n this.camera.cameraRotation.x += offsetY / this.angularSensibility;\r\n }\r\n this.onPointerMovedObservable.notifyObservers({ offsetX: offsetX, offsetY: offsetY });\r\n\r\n this.previousPosition = {\r\n x: evt.clientX,\r\n y: evt.clientY,\r\n };\r\n\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n }\r\n }\r\n };\r\n }\r\n\r\n this._onMouseMove = (evt) => {\r\n if (!engine.isPointerLock) {\r\n return;\r\n }\r\n\r\n if (engine.isInVRExclusivePointerMode) {\r\n return;\r\n }\r\n\r\n var offsetX = evt.movementX || evt.mozMovementX || evt.webkitMovementX || evt.msMovementX || 0;\r\n if (this.camera.getScene().useRightHandedSystem) {\r\n offsetX *= -1;\r\n }\r\n if (this.camera.parent && this.camera.parent._getWorldMatrixDeterminant() < 0) {\r\n offsetX *= -1;\r\n }\r\n this.camera.cameraRotation.y += offsetX / this.angularSensibility;\r\n\r\n var offsetY = evt.movementY || evt.mozMovementY || evt.webkitMovementY || evt.msMovementY || 0;\r\n this.camera.cameraRotation.x += offsetY / this.angularSensibility;\r\n\r\n this.previousPosition = null;\r\n\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n };\r\n\r\n this._observer = this.camera.getScene().onPointerObservable.add(this._pointerInput, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE);\r\n\r\n element && element.addEventListener(\"contextmenu\", <EventListener>this.onContextMenu.bind(this), false); // TODO: We need to figure out how to handle this for Native\r\n }\r\n\r\n /**\r\n * Called on JS contextmenu event.\r\n * Override this method to provide functionality.\r\n */\r\n protected onContextMenu(evt: PointerEvent): void {\r\n evt.preventDefault();\r\n }\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n */\r\n public detachControl(): void;\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n * @param ignored defines an ignored parameter kept for backward compatibility. If you want to define the source input element, you can set engine.inputElement before calling camera.attachControl\r\n */\r\n public detachControl(ignored?: any): void {\r\n if (this._observer) {\r\n this.camera.getScene().onPointerObservable.remove(this._observer);\r\n\r\n if (this.onContextMenu) {\r\n const engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n element && element.removeEventListener(\"contextmenu\", <EventListener>this.onContextMenu);\r\n }\r\n\r\n if (this.onPointerMovedObservable) {\r\n this.onPointerMovedObservable.clear();\r\n }\r\n\r\n this._observer = null;\r\n this._onMouseMove = null;\r\n this.previousPosition = null;\r\n }\r\n }\r\n\r\n /**\r\n * Gets the class name of the current input.\r\n * @returns the class name\r\n */\r\n public getClassName(): string {\r\n return \"FreeCameraMouseInput\";\r\n }\r\n\r\n /**\r\n * Get the friendly name associated with the input class.\r\n * @returns the input friendly name\r\n */\r\n public getSimpleName(): string {\r\n return \"mouse\";\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraMouseInput\"] = FreeCameraMouseInput;\r\n"]}
1
+ {"version":3,"file":"freeCameraMouseInput.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Inputs/freeCameraMouseInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observer, EventState, Observable } from \"../../Misc/observable\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport { Nullable } from \"../../types\";\r\nimport { ICameraInput, CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { PointerInfo, PointerEventTypes } from \"../../Events/pointerEvents\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport { IMouseEvent, IPointerEvent } from \"../../Events/deviceInputEvents\";\r\n/**\r\n * Manage the mouse inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/how_to/customizing_camera_inputs\r\n */\r\nexport class FreeCameraMouseInput implements ICameraInput<FreeCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\r\n\r\n /**\r\n * Defines the buttons associated with the input to handle camera move.\r\n */\r\n @serialize()\r\n public buttons = [0, 1, 2];\r\n\r\n /**\r\n * Defines the pointer angular sensibility along the X and Y axis or how fast is the camera rotating.\r\n */\r\n @serialize()\r\n public angularSensibility = 2000.0;\r\n\r\n private _pointerInput: (p: PointerInfo, s: EventState) => void;\r\n private _onMouseMove: Nullable<(e: IMouseEvent) => any>;\r\n private _observer: Nullable<Observer<PointerInfo>>;\r\n private previousPosition: Nullable<{ x: number; y: number }> = null;\r\n\r\n /**\r\n * Observable for when a pointer move event occurs containing the move offset\r\n */\r\n public onPointerMovedObservable = new Observable<{ offsetX: number; offsetY: number }>();\r\n /**\r\n * @hidden\r\n * If the camera should be rotated automatically based on pointer movement\r\n */\r\n public _allowCameraRotation = true;\r\n\r\n private _currentActiveButton: number = -1;\r\n\r\n private _contextMenuBind: () => void;\r\n\r\n /**\r\n * Manage the mouse inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/how_to/customizing_camera_inputs\r\n * @param touchEnabled Defines if touch is enabled or not\r\n */\r\n constructor(\r\n /**\r\n * Define if touch is enabled in the mouse input\r\n */\r\n public touchEnabled = true\r\n ) { }\r\n\r\n /**\r\n * Attach the input controls to a specific dom element to get the input from.\r\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\r\n */\r\n public attachControl(noPreventDefault?: boolean): void {\r\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\r\n var engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n\r\n if (!this._pointerInput) {\r\n this._pointerInput = (p) => {\r\n var evt = <IPointerEvent>p.event;\r\n let isTouch = evt.pointerType === \"touch\";\r\n\r\n if (engine.isInVRExclusivePointerMode) {\r\n return;\r\n }\r\n\r\n if (!this.touchEnabled && isTouch) {\r\n return;\r\n }\r\n\r\n if (p.type !== PointerEventTypes.POINTERMOVE && this.buttons.indexOf(evt.button) === -1) {\r\n return;\r\n }\r\n\r\n let srcElement = <HTMLElement>(evt.srcElement || evt.target);\r\n\r\n if (p.type === PointerEventTypes.POINTERDOWN && (this._currentActiveButton === -1 || isTouch)) {\r\n try {\r\n srcElement?.setPointerCapture(evt.pointerId);\r\n } catch (e) {\r\n //Nothing to do with the error. Execution will continue.\r\n }\r\n\r\n if (this._currentActiveButton === -1) {\r\n this._currentActiveButton = evt.button;\r\n }\r\n\r\n this.previousPosition = {\r\n x: evt.clientX,\r\n y: evt.clientY,\r\n };\r\n\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n element && element.focus();\r\n }\r\n\r\n // This is required to move while pointer button is down\r\n if (engine.isPointerLock && this._onMouseMove) {\r\n this._onMouseMove(p.event);\r\n }\r\n } else if (p.type === PointerEventTypes.POINTERUP && (this._currentActiveButton === evt.button || isTouch)) {\r\n try {\r\n srcElement?.releasePointerCapture(evt.pointerId);\r\n } catch (e) {\r\n //Nothing to do with the error.\r\n }\r\n this._currentActiveButton = -1;\r\n\r\n this.previousPosition = null;\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n } else if (p.type === PointerEventTypes.POINTERMOVE) {\r\n\r\n if (engine.isPointerLock && this._onMouseMove) {\r\n this._onMouseMove(p.event);\r\n }\r\n else if (this.previousPosition) {\r\n var offsetX = evt.clientX - this.previousPosition.x;\r\n var offsetY = evt.clientY - this.previousPosition.y;\r\n if (this.camera.getScene().useRightHandedSystem) {\r\n offsetX *= -1;\r\n }\r\n if (this.camera.parent && this.camera.parent._getWorldMatrixDeterminant() < 0) {\r\n offsetX *= -1;\r\n }\r\n\r\n if (this._allowCameraRotation) {\r\n this.camera.cameraRotation.y += offsetX / this.angularSensibility;\r\n this.camera.cameraRotation.x += offsetY / this.angularSensibility;\r\n }\r\n this.onPointerMovedObservable.notifyObservers({ offsetX: offsetX, offsetY: offsetY });\r\n\r\n this.previousPosition = {\r\n x: evt.clientX,\r\n y: evt.clientY,\r\n };\r\n\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n }\r\n }\r\n };\r\n }\r\n\r\n this._onMouseMove = (evt) => {\r\n if (!engine.isPointerLock) {\r\n return;\r\n }\r\n\r\n if (engine.isInVRExclusivePointerMode) {\r\n return;\r\n }\r\n\r\n var offsetX = evt.movementX || evt.mozMovementX || evt.webkitMovementX || evt.msMovementX || 0;\r\n if (this.camera.getScene().useRightHandedSystem) {\r\n offsetX *= -1;\r\n }\r\n if (this.camera.parent && this.camera.parent._getWorldMatrixDeterminant() < 0) {\r\n offsetX *= -1;\r\n }\r\n this.camera.cameraRotation.y += offsetX / this.angularSensibility;\r\n\r\n var offsetY = evt.movementY || evt.mozMovementY || evt.webkitMovementY || evt.msMovementY || 0;\r\n this.camera.cameraRotation.x += offsetY / this.angularSensibility;\r\n\r\n this.previousPosition = null;\r\n\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n };\r\n\r\n this._observer = this.camera.getScene().onPointerObservable.add(this._pointerInput, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE);\r\n\r\n if (element) {\r\n this._contextMenuBind = this.onContextMenu.bind(this);\r\n element.addEventListener(\"contextmenu\", this._contextMenuBind, false); // TODO: We need to figure out how to handle this for Native\r\n }\r\n }\r\n\r\n /**\r\n * Called on JS contextmenu event.\r\n * Override this method to provide functionality.\r\n */\r\n protected onContextMenu(evt: PointerEvent): void {\r\n evt.preventDefault();\r\n }\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n */\r\n public detachControl(): void;\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n * @param ignored defines an ignored parameter kept for backward compatibility. If you want to define the source input element, you can set engine.inputElement before calling camera.attachControl\r\n */\r\n public detachControl(ignored?: any): void {\r\n if (this._observer) {\r\n this.camera.getScene().onPointerObservable.remove(this._observer);\r\n\r\n if (this._contextMenuBind) {\r\n const engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n element && element.removeEventListener(\"contextmenu\", this._contextMenuBind);\r\n }\r\n\r\n if (this.onPointerMovedObservable) {\r\n this.onPointerMovedObservable.clear();\r\n }\r\n\r\n this._observer = null;\r\n this._onMouseMove = null;\r\n this.previousPosition = null;\r\n }\r\n }\r\n\r\n /**\r\n * Gets the class name of the current input.\r\n * @returns the class name\r\n */\r\n public getClassName(): string {\r\n return \"FreeCameraMouseInput\";\r\n }\r\n\r\n /**\r\n * Get the friendly name associated with the input class.\r\n * @returns the input friendly name\r\n */\r\n public getSimpleName(): string {\r\n return \"mouse\";\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraMouseInput\"] = FreeCameraMouseInput;\r\n"]}
@@ -103,9 +103,7 @@ var FreeCameraTouchInput = /** @class */ (function () {
103
103
  }
104
104
  };
105
105
  }
106
- this._observer = this.camera
107
- .getScene()
108
- .onPointerObservable.add(this._pointerInput, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE);
106
+ this._observer = this.camera.getScene().onPointerObservable.add(this._pointerInput, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE);
109
107
  if (this._onLostFocus) {
110
108
  var engine = this.camera.getEngine();
111
109
  var element = engine.getInputElement();
@@ -145,10 +143,10 @@ var FreeCameraTouchInput = /** @class */ (function () {
145
143
  return;
146
144
  }
147
145
  var camera = this.camera;
146
+ camera.cameraRotation.y = this._offsetX / this.touchAngularSensibility;
148
147
  var rotateCamera = (this.singleFingerRotate && this._pointerPressed.length === 1) || (!this.singleFingerRotate && this._pointerPressed.length > 1);
149
148
  if (rotateCamera) {
150
149
  camera.cameraRotation.x = -this._offsetY / this.touchAngularSensibility;
151
- camera.cameraRotation.y = this._offsetX / this.touchAngularSensibility;
152
150
  }
153
151
  else {
154
152
  var speed = camera._computeLocalCameraSpeed();
@@ -1 +1 @@
1
- {"version":3,"file":"freeCameraTouchInput.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Inputs/freeCameraTouchInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { serialize } from \"../../Misc/decorators\";\r\nimport { Observer, EventState } from \"../../Misc/observable\";\r\nimport { Nullable } from \"../../types\";\r\nimport { ICameraInput, CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { PointerInfo, PointerEventTypes } from \"../../Events/pointerEvents\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport { IPointerEvent } from \"../../Events/deviceInputEvents\";\r\n/**\r\n * Manage the touch inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/how_to/customizing_camera_inputs\r\n */\r\nexport class FreeCameraTouchInput implements ICameraInput<FreeCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\r\n\r\n /**\r\n * Defines the touch sensibility for rotation.\r\n * The lower the faster.\r\n */\r\n @serialize()\r\n public touchAngularSensibility: number = 200000.0;\r\n\r\n /**\r\n * Defines the touch sensibility for move.\r\n * The lower the faster.\r\n */\r\n @serialize()\r\n public touchMoveSensibility: number = 250.0;\r\n\r\n /**\r\n * Swap touch actions so that one touch is used for rotation and multiple for movement\r\n */\r\n public singleFingerRotate: boolean = false;\r\n\r\n private _offsetX: Nullable<number> = null;\r\n private _offsetY: Nullable<number> = null;\r\n\r\n private _pointerPressed = new Array<number>();\r\n private _pointerInput?: (p: PointerInfo, s: EventState) => void;\r\n private _observer: Nullable<Observer<PointerInfo>>;\r\n private _onLostFocus: Nullable<(e: FocusEvent) => any>;\r\n\r\n /**\r\n * Manage the touch inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/how_to/customizing_camera_inputs\r\n * @param allowMouse Defines if mouse events can be treated as touch events\r\n */\r\n constructor(\r\n /**\r\n * Define if mouse events can be treated as touch events\r\n */\r\n public allowMouse = false\r\n ) {}\r\n\r\n /**\r\n * Attach the input controls to a specific dom element to get the input from.\r\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\r\n */\r\n public attachControl(noPreventDefault?: boolean): void {\r\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\r\n var previousPosition: Nullable<{ x: number; y: number }> = null;\r\n\r\n if (this._pointerInput === undefined) {\r\n this._onLostFocus = () => {\r\n this._offsetX = null;\r\n this._offsetY = null;\r\n };\r\n\r\n this._pointerInput = (p) => {\r\n var evt = <IPointerEvent>p.event;\r\n\r\n let isMouseEvent = !this.camera.getEngine().hostInformation.isMobile && evt instanceof MouseEvent;\r\n\r\n if (!this.allowMouse && (evt.pointerType === \"mouse\" || isMouseEvent)) {\r\n return;\r\n }\r\n\r\n if (p.type === PointerEventTypes.POINTERDOWN) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n this._pointerPressed.push(evt.pointerId);\r\n\r\n if (this._pointerPressed.length !== 1) {\r\n return;\r\n }\r\n\r\n previousPosition = {\r\n x: evt.clientX,\r\n y: evt.clientY,\r\n };\r\n } else if (p.type === PointerEventTypes.POINTERUP) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n var index: number = this._pointerPressed.indexOf(evt.pointerId);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n this._pointerPressed.splice(index, 1);\r\n\r\n if (index != 0) {\r\n return;\r\n }\r\n previousPosition = null;\r\n this._offsetX = null;\r\n this._offsetY = null;\r\n } else if (p.type === PointerEventTypes.POINTERMOVE) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n if (!previousPosition) {\r\n return;\r\n }\r\n\r\n var index: number = this._pointerPressed.indexOf(evt.pointerId);\r\n\r\n if (index != 0) {\r\n return;\r\n }\r\n\r\n this._offsetX = evt.clientX - previousPosition.x;\r\n this._offsetY = -(evt.clientY - previousPosition.y);\r\n }\r\n };\r\n }\r\n\r\n this._observer = this.camera\r\n .getScene()\r\n .onPointerObservable.add(this._pointerInput, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE);\r\n\r\n if (this._onLostFocus) {\r\n const engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n element && element.addEventListener(\"blur\", this._onLostFocus);\r\n }\r\n }\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n */\r\n public detachControl(): void;\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n * @param ignored defines an ignored parameter kept for backward compatibility. If you want to define the source input element, you can set engine.inputElement before calling camera.attachControl\r\n */\r\n public detachControl(ignored?: any): void {\r\n if (this._pointerInput) {\r\n if (this._observer) {\r\n this.camera.getScene().onPointerObservable.remove(this._observer);\r\n this._observer = null;\r\n }\r\n\r\n if (this._onLostFocus) {\r\n const engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n element && element.removeEventListener(\"blur\", this._onLostFocus);\r\n this._onLostFocus = null;\r\n }\r\n this._pointerPressed = [];\r\n this._offsetX = null;\r\n this._offsetY = null;\r\n }\r\n }\r\n\r\n /**\r\n * Update the current camera state depending on the inputs that have been used this frame.\r\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\r\n */\r\n public checkInputs(): void {\r\n if (this._offsetX === null || this._offsetY === null) {\r\n return;\r\n }\r\n if (this._offsetX === 0 && this._offsetY === 0) {\r\n return;\r\n }\r\n\r\n var camera = this.camera;\r\n\r\n const rotateCamera = (this.singleFingerRotate && this._pointerPressed.length === 1) || (!this.singleFingerRotate && this._pointerPressed.length > 1);\r\n\r\n if (rotateCamera) {\r\n camera.cameraRotation.x = -this._offsetY / this.touchAngularSensibility;\r\n camera.cameraRotation.y = this._offsetX / this.touchAngularSensibility;\r\n } else {\r\n var speed = camera._computeLocalCameraSpeed();\r\n var direction = new Vector3(0, 0, (speed * this._offsetY) / this.touchMoveSensibility);\r\n\r\n Matrix.RotationYawPitchRollToRef(camera.rotation.y, camera.rotation.x, 0, camera._cameraRotationMatrix);\r\n camera.cameraDirection.addInPlace(Vector3.TransformCoordinates(direction, camera._cameraRotationMatrix));\r\n }\r\n }\r\n\r\n /**\r\n * Gets the class name of the current input.\r\n * @returns the class name\r\n */\r\n public getClassName(): string {\r\n return \"FreeCameraTouchInput\";\r\n }\r\n\r\n /**\r\n * Get the friendly name associated with the input class.\r\n * @returns the input friendly name\r\n */\r\n public getSimpleName(): string {\r\n return \"touch\";\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraTouchInput\"] = FreeCameraTouchInput;\r\n"]}
1
+ {"version":3,"file":"freeCameraTouchInput.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Inputs/freeCameraTouchInput.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAgB,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,OAAO,EAAe,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;GAGG;AACH;IAiCI;;;;OAIG;IACH;IACI;;OAEG;IACI,UAAkB;QAAlB,2BAAA,EAAA,kBAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QApC7B;;;WAGG;QAEI,4BAAuB,GAAW,QAAQ,CAAC;QAElD;;;WAGG;QAEI,yBAAoB,GAAW,KAAK,CAAC;QAE5C;;WAEG;QACI,uBAAkB,GAAY,KAAK,CAAC;QAEnC,aAAQ,GAAqB,IAAI,CAAC;QAClC,aAAQ,GAAqB,IAAI,CAAC;QAElC,oBAAe,GAAG,IAAI,KAAK,EAAU,CAAC;IAe3C,CAAC;IAEJ;;;OAGG;IACI,4CAAa,GAApB,UAAqB,gBAA0B;QAA/C,iBAgFC;QA/EG,gBAAgB,GAAG,KAAK,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,gBAAgB,GAAuC,IAAI,CAAC;QAEhE,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YAClC,IAAI,CAAC,YAAY,GAAG;gBAChB,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACzB,CAAC,CAAC;YAEF,IAAI,CAAC,aAAa,GAAG,UAAC,CAAC;gBACnB,IAAI,GAAG,GAAkB,CAAC,CAAC,KAAK,CAAC;gBAEjC,IAAI,YAAY,GAAG,CAAC,KAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,eAAe,CAAC,QAAQ,IAAI,GAAG,YAAY,UAAU,CAAC;gBAElG,IAAI,CAAC,KAAI,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,OAAO,IAAI,YAAY,CAAC,EAAE;oBACnE,OAAO;iBACV;gBAED,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,WAAW,EAAE;oBAC1C,IAAI,CAAC,gBAAgB,EAAE;wBACnB,GAAG,CAAC,cAAc,EAAE,CAAC;qBACxB;oBAED,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAEzC,IAAI,KAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;wBACnC,OAAO;qBACV;oBAED,gBAAgB,GAAG;wBACf,CAAC,EAAE,GAAG,CAAC,OAAO;wBACd,CAAC,EAAE,GAAG,CAAC,OAAO;qBACjB,CAAC;iBACL;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,SAAS,EAAE;oBAC/C,IAAI,CAAC,gBAAgB,EAAE;wBACnB,GAAG,CAAC,cAAc,EAAE,CAAC;qBACxB;oBAED,IAAI,KAAK,GAAW,KAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAEhE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;wBACd,OAAO;qBACV;oBACD,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAEtC,IAAI,KAAK,IAAI,CAAC,EAAE;wBACZ,OAAO;qBACV;oBACD,gBAAgB,GAAG,IAAI,CAAC;oBACxB,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACxB;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,WAAW,EAAE;oBACjD,IAAI,CAAC,gBAAgB,EAAE;wBACnB,GAAG,CAAC,cAAc,EAAE,CAAC;qBACxB;oBAED,IAAI,CAAC,gBAAgB,EAAE;wBACnB,OAAO;qBACV;oBAED,IAAI,KAAK,GAAW,KAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAEhE,IAAI,KAAK,IAAI,CAAC,EAAE;wBACZ,OAAO;qBACV;oBAED,KAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC;oBACjD,KAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;iBACvD;YACL,CAAC,CAAC;SACL;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,WAAW,GAAG,iBAAiB,CAAC,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAEjL,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACvC,IAAM,OAAO,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;YACzC,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAClE;IACL,CAAC;IAOD;;;OAGG;IACI,4CAAa,GAApB,UAAqB,OAAa;QAC9B,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACzB;YAED,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAM,OAAO,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;gBACzC,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBAClE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC5B;YACD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;IACL,CAAC;IAED;;;OAGG;IACI,0CAAW,GAAlB;QACI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YAClD,OAAO;SACV;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;YAC5C,OAAO;SACV;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAEvE,IAAM,YAAY,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAErJ,IAAI,YAAY,EAAE;YACd,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC;SAC3E;aAAM;YACH,IAAI,KAAK,GAAG,MAAM,CAAC,wBAAwB,EAAE,CAAC;YAC9C,IAAI,SAAS,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAEvF,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACxG,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;SAC5G;IACL,CAAC;IAED;;;OAGG;IACI,2CAAY,GAAnB;QACI,OAAO,sBAAsB,CAAC;IAClC,CAAC;IAED;;;OAGG;IACI,4CAAa,GAApB;QACI,OAAO,OAAO,CAAC;IACnB,CAAC;IA9LD;QADC,SAAS,EAAE;yEACsC;IAOlD;QADC,SAAS,EAAE;sEACgC;IAwLhD,2BAAC;CAAA,AA1MD,IA0MC;SA1MY,oBAAoB;AA4M3B,gBAAiB,CAAC,sBAAsB,CAAC,GAAG,oBAAoB,CAAC","sourcesContent":["import { serialize } from \"../../Misc/decorators\";\r\nimport { Observer, EventState } from \"../../Misc/observable\";\r\nimport { Nullable } from \"../../types\";\r\nimport { ICameraInput, CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { PointerInfo, PointerEventTypes } from \"../../Events/pointerEvents\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport { IPointerEvent } from \"../../Events/deviceInputEvents\";\r\n/**\r\n * Manage the touch inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/how_to/customizing_camera_inputs\r\n */\r\nexport class FreeCameraTouchInput implements ICameraInput<FreeCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\r\n\r\n /**\r\n * Defines the touch sensibility for rotation.\r\n * The lower the faster.\r\n */\r\n @serialize()\r\n public touchAngularSensibility: number = 200000.0;\r\n\r\n /**\r\n * Defines the touch sensibility for move.\r\n * The lower the faster.\r\n */\r\n @serialize()\r\n public touchMoveSensibility: number = 250.0;\r\n\r\n /**\r\n * Swap touch actions so that one touch is used for rotation and multiple for movement\r\n */\r\n public singleFingerRotate: boolean = false;\r\n\r\n private _offsetX: Nullable<number> = null;\r\n private _offsetY: Nullable<number> = null;\r\n\r\n private _pointerPressed = new Array<number>();\r\n private _pointerInput?: (p: PointerInfo, s: EventState) => void;\r\n private _observer: Nullable<Observer<PointerInfo>>;\r\n private _onLostFocus: Nullable<(e: FocusEvent) => any>;\r\n\r\n /**\r\n * Manage the touch inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/how_to/customizing_camera_inputs\r\n * @param allowMouse Defines if mouse events can be treated as touch events\r\n */\r\n constructor(\r\n /**\r\n * Define if mouse events can be treated as touch events\r\n */\r\n public allowMouse = false\r\n ) {}\r\n\r\n /**\r\n * Attach the input controls to a specific dom element to get the input from.\r\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\r\n */\r\n public attachControl(noPreventDefault?: boolean): void {\r\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\r\n var previousPosition: Nullable<{ x: number; y: number }> = null;\r\n\r\n if (this._pointerInput === undefined) {\r\n this._onLostFocus = () => {\r\n this._offsetX = null;\r\n this._offsetY = null;\r\n };\r\n\r\n this._pointerInput = (p) => {\r\n var evt = <IPointerEvent>p.event;\r\n\r\n let isMouseEvent = !this.camera.getEngine().hostInformation.isMobile && evt instanceof MouseEvent;\r\n\r\n if (!this.allowMouse && (evt.pointerType === \"mouse\" || isMouseEvent)) {\r\n return;\r\n }\r\n\r\n if (p.type === PointerEventTypes.POINTERDOWN) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n this._pointerPressed.push(evt.pointerId);\r\n\r\n if (this._pointerPressed.length !== 1) {\r\n return;\r\n }\r\n\r\n previousPosition = {\r\n x: evt.clientX,\r\n y: evt.clientY,\r\n };\r\n } else if (p.type === PointerEventTypes.POINTERUP) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n var index: number = this._pointerPressed.indexOf(evt.pointerId);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n this._pointerPressed.splice(index, 1);\r\n\r\n if (index != 0) {\r\n return;\r\n }\r\n previousPosition = null;\r\n this._offsetX = null;\r\n this._offsetY = null;\r\n } else if (p.type === PointerEventTypes.POINTERMOVE) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n if (!previousPosition) {\r\n return;\r\n }\r\n\r\n var index: number = this._pointerPressed.indexOf(evt.pointerId);\r\n\r\n if (index != 0) {\r\n return;\r\n }\r\n\r\n this._offsetX = evt.clientX - previousPosition.x;\r\n this._offsetY = -(evt.clientY - previousPosition.y);\r\n }\r\n };\r\n }\r\n\r\n this._observer = this.camera.getScene().onPointerObservable.add(this._pointerInput, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE);\r\n\r\n if (this._onLostFocus) {\r\n const engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n element && element.addEventListener(\"blur\", this._onLostFocus);\r\n }\r\n }\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n */\r\n public detachControl(): void;\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n * @param ignored defines an ignored parameter kept for backward compatibility. If you want to define the source input element, you can set engine.inputElement before calling camera.attachControl\r\n */\r\n public detachControl(ignored?: any): void {\r\n if (this._pointerInput) {\r\n if (this._observer) {\r\n this.camera.getScene().onPointerObservable.remove(this._observer);\r\n this._observer = null;\r\n }\r\n\r\n if (this._onLostFocus) {\r\n const engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n element && element.removeEventListener(\"blur\", this._onLostFocus);\r\n this._onLostFocus = null;\r\n }\r\n this._pointerPressed = [];\r\n this._offsetX = null;\r\n this._offsetY = null;\r\n }\r\n }\r\n\r\n /**\r\n * Update the current camera state depending on the inputs that have been used this frame.\r\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\r\n */\r\n public checkInputs(): void {\r\n if (this._offsetX === null || this._offsetY === null) {\r\n return;\r\n }\r\n if (this._offsetX === 0 && this._offsetY === 0) {\r\n return;\r\n }\r\n\r\n var camera = this.camera;\r\n camera.cameraRotation.y = this._offsetX / this.touchAngularSensibility;\r\n\r\n const rotateCamera = (this.singleFingerRotate && this._pointerPressed.length === 1) || (!this.singleFingerRotate && this._pointerPressed.length > 1);\r\n\r\n if (rotateCamera) {\r\n camera.cameraRotation.x = -this._offsetY / this.touchAngularSensibility;\r\n } else {\r\n var speed = camera._computeLocalCameraSpeed();\r\n var direction = new Vector3(0, 0, (speed * this._offsetY) / this.touchMoveSensibility);\r\n\r\n Matrix.RotationYawPitchRollToRef(camera.rotation.y, camera.rotation.x, 0, camera._cameraRotationMatrix);\r\n camera.cameraDirection.addInPlace(Vector3.TransformCoordinates(direction, camera._cameraRotationMatrix));\r\n }\r\n }\r\n\r\n /**\r\n * Gets the class name of the current input.\r\n * @returns the class name\r\n */\r\n public getClassName(): string {\r\n return \"FreeCameraTouchInput\";\r\n }\r\n\r\n /**\r\n * Get the friendly name associated with the input class.\r\n * @returns the input friendly name\r\n */\r\n public getSimpleName(): string {\r\n return \"touch\";\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraTouchInput\"] = FreeCameraTouchInput;\r\n"]}
@@ -16,7 +16,7 @@ export declare class AnaglyphArcRotateCamera extends ArcRotateCamera {
16
16
  * @param interaxialDistance defines distance between each color axis
17
17
  * @param scene defines the hosting scene
18
18
  */
19
- constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, interaxialDistance: number, scene: Scene);
19
+ constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, interaxialDistance: number, scene?: Scene);
20
20
  /**
21
21
  * Gets camera class name
22
22
  * @returns AnaglyphArcRotateCamera
@@ -1 +1 @@
1
- {"version":3,"file":"anaglyphArcRotateCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/anaglyphArcRotateCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACpE,OAAO,cAAM,OAAA,IAAI,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAhG,CAAgG,CAAC;AAClH,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAA6C,2CAAe;IAExD;;;;;;;;;OASG;IACH,iCAAY,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,MAAc,EAAE,MAAe,EAAE,kBAA0B,EAAE,KAAY;QAAhI,YACI,kBAAM,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAGlD;QAUS,iBAAW,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAZpE,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC7G,CAAC;IAED;;;OAGG;IACI,8CAAY,GAAnB;QACI,OAAO,yBAAyB,CAAC;IACrC,CAAC;IAGL,8BAAC;AAAD,CAAC,AA3BD,CAA6C,eAAe,GA2B3D","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode\";\r\n\r\nNode.AddNodeConstructor(\"AnaglyphArcRotateCamera\", (name, scene, options) => {\r\n return () => new AnaglyphArcRotateCamera(name, 0, 0, 1.0, Vector3.Zero(), options.interaxial_distance, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate anaglyphic rendering (based on ArcRotateCamera)\r\n * @see https://doc.babylonjs.com/features/cameras#anaglyph-cameras\r\n */\r\nexport class AnaglyphArcRotateCamera extends ArcRotateCamera {\r\n\r\n /**\r\n * Creates a new AnaglyphArcRotateCamera\r\n * @param name defines camera name\r\n * @param alpha defines alpha angle (in radians)\r\n * @param beta defines beta angle (in radians)\r\n * @param radius defines radius\r\n * @param target defines camera target\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, interaxialDistance: number, scene: Scene) {\r\n super(name, alpha, beta, radius, target, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns AnaglyphArcRotateCamera\r\n */\r\n public getClassName(): string {\r\n return \"AnaglyphArcRotateCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicAnaglyphRigMode.bind(null, this);\r\n}\r\n"]}
1
+ {"version":3,"file":"anaglyphArcRotateCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/anaglyphArcRotateCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACpE,OAAO,cAAM,OAAA,IAAI,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAhG,CAAgG,CAAC;AAClH,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAA6C,2CAAe;IAExD;;;;;;;;;OASG;IACH,iCAAY,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,MAAc,EAAE,MAAe,EAAE,kBAA0B,EAAE,KAAa;QAAjI,YACI,kBAAM,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAGlD;QAUS,iBAAW,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAZpE,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC7G,CAAC;IAED;;;OAGG;IACI,8CAAY,GAAnB;QACI,OAAO,yBAAyB,CAAC;IACrC,CAAC;IAGL,8BAAC;AAAD,CAAC,AA3BD,CAA6C,eAAe,GA2B3D","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode\";\r\n\r\nNode.AddNodeConstructor(\"AnaglyphArcRotateCamera\", (name, scene, options) => {\r\n return () => new AnaglyphArcRotateCamera(name, 0, 0, 1.0, Vector3.Zero(), options.interaxial_distance, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate anaglyphic rendering (based on ArcRotateCamera)\r\n * @see https://doc.babylonjs.com/features/cameras#anaglyph-cameras\r\n */\r\nexport class AnaglyphArcRotateCamera extends ArcRotateCamera {\r\n\r\n /**\r\n * Creates a new AnaglyphArcRotateCamera\r\n * @param name defines camera name\r\n * @param alpha defines alpha angle (in radians)\r\n * @param beta defines beta angle (in radians)\r\n * @param radius defines radius\r\n * @param target defines camera target\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, interaxialDistance: number, scene?: Scene) {\r\n super(name, alpha, beta, radius, target, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns AnaglyphArcRotateCamera\r\n */\r\n public getClassName(): string {\r\n return \"AnaglyphArcRotateCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicAnaglyphRigMode.bind(null, this);\r\n}\r\n"]}
@@ -13,7 +13,7 @@ export declare class AnaglyphFreeCamera extends FreeCamera {
13
13
  * @param interaxialDistance defines distance between each color axis
14
14
  * @param scene defines the hosting scene
15
15
  */
16
- constructor(name: string, position: Vector3, interaxialDistance: number, scene: Scene);
16
+ constructor(name: string, position: Vector3, interaxialDistance: number, scene?: Scene);
17
17
  /**
18
18
  * Gets camera class name
19
19
  * @returns AnaglyphFreeCamera
@@ -1 +1 @@
1
- {"version":3,"file":"anaglyphFreeCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/anaglyphFreeCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IAC/D,OAAO,cAAM,OAAA,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAhF,CAAgF,CAAC;AAClG,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAAwC,sCAAU;IAC9C;;;;;;OAMG;IACH,4BAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,KAAY;QAArF,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAG/B;QAUS,iBAAW,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAZpE,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC7G,CAAC;IAED;;;OAGG;IACI,yCAAY,GAAnB;QACI,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAGL,yBAAC;AAAD,CAAC,AAvBD,CAAwC,UAAU,GAuBjD","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode\";\r\n\r\nNode.AddNodeConstructor(\"AnaglyphFreeCamera\", (name, scene, options) => {\r\n return () => new AnaglyphFreeCamera(name, Vector3.Zero(), options.interaxial_distance, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate anaglyphic rendering (based on FreeCamera)\r\n * @see https://doc.babylonjs.com/features/cameras#anaglyph-cameras\r\n */\r\nexport class AnaglyphFreeCamera extends FreeCamera {\r\n /**\r\n * Creates a new AnaglyphFreeCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, scene: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns AnaglyphFreeCamera\r\n */\r\n public getClassName(): string {\r\n return \"AnaglyphFreeCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicAnaglyphRigMode.bind(null, this);\r\n}\r\n"]}
1
+ {"version":3,"file":"anaglyphFreeCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/anaglyphFreeCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IAC/D,OAAO,cAAM,OAAA,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAhF,CAAgF,CAAC;AAClG,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAAwC,sCAAU;IAC9C;;;;;;OAMG;IACH,4BAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,KAAa;QAAtF,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAG/B;QAUS,iBAAW,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAZpE,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC7G,CAAC;IAED;;;OAGG;IACI,yCAAY,GAAnB;QACI,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAGL,yBAAC;AAAD,CAAC,AAvBD,CAAwC,UAAU,GAuBjD","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode\";\r\n\r\nNode.AddNodeConstructor(\"AnaglyphFreeCamera\", (name, scene, options) => {\r\n return () => new AnaglyphFreeCamera(name, Vector3.Zero(), options.interaxial_distance, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate anaglyphic rendering (based on FreeCamera)\r\n * @see https://doc.babylonjs.com/features/cameras#anaglyph-cameras\r\n */\r\nexport class AnaglyphFreeCamera extends FreeCamera {\r\n /**\r\n * Creates a new AnaglyphFreeCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, scene?: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns AnaglyphFreeCamera\r\n */\r\n public getClassName(): string {\r\n return \"AnaglyphFreeCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicAnaglyphRigMode.bind(null, this);\r\n}\r\n"]}
@@ -13,7 +13,7 @@ export declare class AnaglyphGamepadCamera extends GamepadCamera {
13
13
  * @param interaxialDistance defines distance between each color axis
14
14
  * @param scene defines the hosting scene
15
15
  */
16
- constructor(name: string, position: Vector3, interaxialDistance: number, scene: Scene);
16
+ constructor(name: string, position: Vector3, interaxialDistance: number, scene?: Scene);
17
17
  /**
18
18
  * Gets camera class name
19
19
  * @returns AnaglyphGamepadCamera
@@ -1 +1 @@
1
- {"version":3,"file":"anaglyphGamepadCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/anaglyphGamepadCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IAClE,OAAO,cAAM,OAAA,IAAI,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAnF,CAAmF,CAAC;AACrG,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAA2C,yCAAa;IACpD;;;;;;OAMG;IACH,+BAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,KAAY;QAArF,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAG/B;QAUS,iBAAW,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAZpE,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC7G,CAAC;IAED;;;OAGG;IACI,4CAAY,GAAnB;QACI,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAGL,4BAAC;AAAD,CAAC,AAvBD,CAA2C,aAAa,GAuBvD","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { GamepadCamera } from \"../../Cameras/gamepadCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode\";\r\n\r\nNode.AddNodeConstructor(\"AnaglyphGamepadCamera\", (name, scene, options) => {\r\n return () => new AnaglyphGamepadCamera(name, Vector3.Zero(), options.interaxial_distance, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate anaglyphic rendering (based on GamepadCamera)\r\n * @see https://doc.babylonjs.com/features/cameras#anaglyph-cameras\r\n */\r\nexport class AnaglyphGamepadCamera extends GamepadCamera {\r\n /**\r\n * Creates a new AnaglyphGamepadCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, scene: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns AnaglyphGamepadCamera\r\n */\r\n public getClassName(): string {\r\n return \"AnaglyphGamepadCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicAnaglyphRigMode.bind(null, this);\r\n}\r\n"]}
1
+ {"version":3,"file":"anaglyphGamepadCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/anaglyphGamepadCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IAClE,OAAO,cAAM,OAAA,IAAI,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAnF,CAAmF,CAAC;AACrG,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAA2C,yCAAa;IACpD;;;;;;OAMG;IACH,+BAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,KAAa;QAAtF,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAG/B;QAUS,iBAAW,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAZpE,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC7G,CAAC;IAED;;;OAGG;IACI,4CAAY,GAAnB;QACI,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAGL,4BAAC;AAAD,CAAC,AAvBD,CAA2C,aAAa,GAuBvD","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { GamepadCamera } from \"../../Cameras/gamepadCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode\";\r\n\r\nNode.AddNodeConstructor(\"AnaglyphGamepadCamera\", (name, scene, options) => {\r\n return () => new AnaglyphGamepadCamera(name, Vector3.Zero(), options.interaxial_distance, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate anaglyphic rendering (based on GamepadCamera)\r\n * @see https://doc.babylonjs.com/features/cameras#anaglyph-cameras\r\n */\r\nexport class AnaglyphGamepadCamera extends GamepadCamera {\r\n /**\r\n * Creates a new AnaglyphGamepadCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, scene?: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns AnaglyphGamepadCamera\r\n */\r\n public getClassName(): string {\r\n return \"AnaglyphGamepadCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicAnaglyphRigMode.bind(null, this);\r\n}\r\n"]}
@@ -13,7 +13,7 @@ export declare class AnaglyphUniversalCamera extends UniversalCamera {
13
13
  * @param interaxialDistance defines distance between each color axis
14
14
  * @param scene defines the hosting scene
15
15
  */
16
- constructor(name: string, position: Vector3, interaxialDistance: number, scene: Scene);
16
+ constructor(name: string, position: Vector3, interaxialDistance: number, scene?: Scene);
17
17
  /**
18
18
  * Gets camera class name
19
19
  * @returns AnaglyphUniversalCamera
@@ -1 +1 @@
1
- {"version":3,"file":"anaglyphUniversalCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/anaglyphUniversalCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACpE,OAAO,cAAM,OAAA,IAAI,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAArF,CAAqF,CAAC;AACvG,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAA6C,2CAAe;IACxD;;;;;;OAMG;IACH,iCAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,KAAY;QAArF,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAG/B;QAUS,iBAAW,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAZpE,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC7G,CAAC;IAED;;;OAGG;IACI,8CAAY,GAAnB;QACI,OAAO,yBAAyB,CAAC;IACrC,CAAC;IAGL,8BAAC;AAAD,CAAC,AAvBD,CAA6C,eAAe,GAuB3D","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { UniversalCamera } from \"../../Cameras/universalCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\n\r\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode\";\r\n\r\nNode.AddNodeConstructor(\"AnaglyphUniversalCamera\", (name, scene, options) => {\r\n return () => new AnaglyphUniversalCamera(name, Vector3.Zero(), options.interaxial_distance, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate anaglyphic rendering (based on UniversalCamera)\r\n * @see https://doc.babylonjs.com/features/cameras#anaglyph-cameras\r\n */\r\nexport class AnaglyphUniversalCamera extends UniversalCamera {\r\n /**\r\n * Creates a new AnaglyphUniversalCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, scene: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns AnaglyphUniversalCamera\r\n */\r\n public getClassName(): string {\r\n return \"AnaglyphUniversalCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicAnaglyphRigMode.bind(null, this);\r\n}\r\n"]}
1
+ {"version":3,"file":"anaglyphUniversalCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/anaglyphUniversalCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACpE,OAAO,cAAM,OAAA,IAAI,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAArF,CAAqF,CAAC;AACvG,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAA6C,2CAAe;IACxD;;;;;;OAMG;IACH,iCAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,KAAa;QAAtF,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAG/B;QAUS,iBAAW,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAZpE,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC7G,CAAC;IAED;;;OAGG;IACI,8CAAY,GAAnB;QACI,OAAO,yBAAyB,CAAC;IACrC,CAAC;IAGL,8BAAC;AAAD,CAAC,AAvBD,CAA6C,eAAe,GAuB3D","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { UniversalCamera } from \"../../Cameras/universalCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\n\r\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode\";\r\n\r\nNode.AddNodeConstructor(\"AnaglyphUniversalCamera\", (name, scene, options) => {\r\n return () => new AnaglyphUniversalCamera(name, Vector3.Zero(), options.interaxial_distance, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate anaglyphic rendering (based on UniversalCamera)\r\n * @see https://doc.babylonjs.com/features/cameras#anaglyph-cameras\r\n */\r\nexport class AnaglyphUniversalCamera extends UniversalCamera {\r\n /**\r\n * Creates a new AnaglyphUniversalCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, scene?: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns AnaglyphUniversalCamera\r\n */\r\n public getClassName(): string {\r\n return \"AnaglyphUniversalCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicAnaglyphRigMode.bind(null, this);\r\n}\r\n"]}
@@ -17,7 +17,7 @@ export declare class StereoscopicArcRotateCamera extends ArcRotateCamera {
17
17
  * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under
18
18
  * @param scene defines the hosting scene
19
19
  */
20
- constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene);
20
+ constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene?: Scene);
21
21
  /**
22
22
  * Gets camera class name
23
23
  * @returns StereoscopicArcRotateCamera
@@ -1 +1 @@
1
- {"version":3,"file":"stereoscopicArcRotateCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/stereoscopicArcRotateCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACxE,OAAO,cAAM,OAAA,IAAI,2BAA2B,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAtI,CAAsI,CAAC;AACxJ,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAAiD,+CAAe;IAC5D;;;;;;;;;;OAUG;IACH,qCAAY,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,MAAc,EAAE,MAAe,EAAE,kBAA0B,EAAE,wBAAiC,EAAE,KAAY;QAAnK,YACI,kBAAM,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAIlD;QAUS,iBAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAb5D,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,KAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,MAAM,CAAC,+BAA+B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC5L,CAAC;IAED;;;OAGG;IACI,kDAAY,GAAnB;QACI,OAAO,6BAA6B,CAAC;IACzC,CAAC;IAGL,kCAAC;AAAD,CAAC,AA5BD,CAAiD,eAAe,GA4B/D","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode\";\r\n\r\nNode.AddNodeConstructor(\"StereoscopicArcRotateCamera\", (name, scene, options) => {\r\n return () => new StereoscopicArcRotateCamera(name, 0, 0, 1.0, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate stereoscopic rendering (based on ArcRotateCamera)\r\n * @see https://doc.babylonjs.com/features/cameras\r\n */\r\nexport class StereoscopicArcRotateCamera extends ArcRotateCamera {\r\n /**\r\n * Creates a new StereoscopicArcRotateCamera\r\n * @param name defines camera name\r\n * @param alpha defines alpha angle (in radians)\r\n * @param beta defines beta angle (in radians)\r\n * @param radius defines radius\r\n * @param target defines camera target\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene) {\r\n super(name, alpha, beta, radius, target, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\r\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns StereoscopicArcRotateCamera\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicArcRotateCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicRigMode.bind(null, this);\r\n}\r\n"]}
1
+ {"version":3,"file":"stereoscopicArcRotateCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/stereoscopicArcRotateCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACxE,OAAO,cAAM,OAAA,IAAI,2BAA2B,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAtI,CAAsI,CAAC;AACxJ,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAAiD,+CAAe;IAC5D;;;;;;;;;;OAUG;IACH,qCAAY,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,MAAc,EAAE,MAAe,EAAE,kBAA0B,EAAE,wBAAiC,EAAE,KAAa;QAApK,YACI,kBAAM,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAIlD;QAUS,iBAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAb5D,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,KAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,MAAM,CAAC,+BAA+B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC5L,CAAC;IAED;;;OAGG;IACI,kDAAY,GAAnB;QACI,OAAO,6BAA6B,CAAC;IACzC,CAAC;IAGL,kCAAC;AAAD,CAAC,AA5BD,CAAiD,eAAe,GA4B/D","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode\";\r\n\r\nNode.AddNodeConstructor(\"StereoscopicArcRotateCamera\", (name, scene, options) => {\r\n return () => new StereoscopicArcRotateCamera(name, 0, 0, 1.0, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate stereoscopic rendering (based on ArcRotateCamera)\r\n * @see https://doc.babylonjs.com/features/cameras\r\n */\r\nexport class StereoscopicArcRotateCamera extends ArcRotateCamera {\r\n /**\r\n * Creates a new StereoscopicArcRotateCamera\r\n * @param name defines camera name\r\n * @param alpha defines alpha angle (in radians)\r\n * @param beta defines beta angle (in radians)\r\n * @param radius defines radius\r\n * @param target defines camera target\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene?: Scene) {\r\n super(name, alpha, beta, radius, target, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\r\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns StereoscopicArcRotateCamera\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicArcRotateCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicRigMode.bind(null, this);\r\n}\r\n"]}
@@ -14,7 +14,7 @@ export declare class StereoscopicFreeCamera extends FreeCamera {
14
14
  * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under
15
15
  * @param scene defines the hosting scene
16
16
  */
17
- constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene);
17
+ constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene?: Scene);
18
18
  /**
19
19
  * Gets camera class name
20
20
  * @returns StereoscopicFreeCamera
@@ -1 +1 @@
1
- {"version":3,"file":"stereoscopicFreeCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/stereoscopicFreeCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACnE,OAAO,cAAM,OAAA,IAAI,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAtH,CAAsH,CAAC;AACxI,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAA4C,0CAAU;IAClD;;;;;;;OAOG;IACH,gCAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,wBAAiC,EAAE,KAAY;QAAxH,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAI/B;QAUS,iBAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAb5D,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,KAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,MAAM,CAAC,+BAA+B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC5L,CAAC;IAED;;;OAGG;IACI,6CAAY,GAAnB;QACI,OAAO,wBAAwB,CAAC;IACpC,CAAC;IAGL,6BAAC;AAAD,CAAC,AAzBD,CAA4C,UAAU,GAyBrD","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode\";\r\n\r\nNode.AddNodeConstructor(\"StereoscopicFreeCamera\", (name, scene, options) => {\r\n return () => new StereoscopicFreeCamera(name, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate stereoscopic rendering (based on FreeCamera)\r\n * @see https://doc.babylonjs.com/features/cameras\r\n */\r\nexport class StereoscopicFreeCamera extends FreeCamera {\r\n /**\r\n * Creates a new StereoscopicFreeCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\r\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns StereoscopicFreeCamera\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicFreeCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicRigMode.bind(null, this);\r\n}\r\n"]}
1
+ {"version":3,"file":"stereoscopicFreeCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/stereoscopicFreeCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACnE,OAAO,cAAM,OAAA,IAAI,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAtH,CAAsH,CAAC;AACxI,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAA4C,0CAAU;IAClD;;;;;;;OAOG;IACH,gCAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,wBAAiC,EAAE,KAAa;QAAzH,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAI/B;QAUS,iBAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAb5D,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,KAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,MAAM,CAAC,+BAA+B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC5L,CAAC;IAED;;;OAGG;IACI,6CAAY,GAAnB;QACI,OAAO,wBAAwB,CAAC;IACpC,CAAC;IAGL,6BAAC;AAAD,CAAC,AAzBD,CAA4C,UAAU,GAyBrD","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode\";\r\n\r\nNode.AddNodeConstructor(\"StereoscopicFreeCamera\", (name, scene, options) => {\r\n return () => new StereoscopicFreeCamera(name, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate stereoscopic rendering (based on FreeCamera)\r\n * @see https://doc.babylonjs.com/features/cameras\r\n */\r\nexport class StereoscopicFreeCamera extends FreeCamera {\r\n /**\r\n * Creates a new StereoscopicFreeCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene?: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\r\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns StereoscopicFreeCamera\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicFreeCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicRigMode.bind(null, this);\r\n}\r\n"]}
@@ -14,7 +14,7 @@ export declare class StereoscopicGamepadCamera extends GamepadCamera {
14
14
  * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under
15
15
  * @param scene defines the hosting scene
16
16
  */
17
- constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene);
17
+ constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene?: Scene);
18
18
  /**
19
19
  * Gets camera class name
20
20
  * @returns StereoscopicGamepadCamera
@@ -1 +1 @@
1
- {"version":3,"file":"stereoscopicGamepadCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/stereoscopicGamepadCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACtE,OAAO,cAAM,OAAA,IAAI,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAzH,CAAyH,CAAC;AAC3I,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAA+C,6CAAa;IACxD;;;;;;;OAOG;IACH,mCAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,wBAAiC,EAAE,KAAY;QAAxH,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAI/B;QAUS,iBAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAb5D,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,KAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,MAAM,CAAC,+BAA+B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC5L,CAAC;IAED;;;OAGG;IACI,gDAAY,GAAnB;QACI,OAAO,2BAA2B,CAAC;IACvC,CAAC;IAGL,gCAAC;AAAD,CAAC,AAzBD,CAA+C,aAAa,GAyB3D","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { GamepadCamera } from \"../../Cameras/gamepadCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode\";\r\n\r\nNode.AddNodeConstructor(\"StereoscopicGamepadCamera\", (name, scene, options) => {\r\n return () => new StereoscopicGamepadCamera(name, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate stereoscopic rendering (based on GamepadCamera)\r\n * @see https://doc.babylonjs.com/features/cameras\r\n */\r\nexport class StereoscopicGamepadCamera extends GamepadCamera {\r\n /**\r\n * Creates a new StereoscopicGamepadCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\r\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns StereoscopicGamepadCamera\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicGamepadCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicRigMode.bind(null, this);\r\n}\r\n"]}
1
+ {"version":3,"file":"stereoscopicGamepadCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/stereoscopicGamepadCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACtE,OAAO,cAAM,OAAA,IAAI,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAzH,CAAyH,CAAC;AAC3I,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAA+C,6CAAa;IACxD;;;;;;;OAOG;IACH,mCAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,wBAAiC,EAAE,KAAa;QAAzH,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAI/B;QAUS,iBAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAb5D,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,KAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,MAAM,CAAC,+BAA+B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC5L,CAAC;IAED;;;OAGG;IACI,gDAAY,GAAnB;QACI,OAAO,2BAA2B,CAAC;IACvC,CAAC;IAGL,gCAAC;AAAD,CAAC,AAzBD,CAA+C,aAAa,GAyB3D","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { GamepadCamera } from \"../../Cameras/gamepadCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode\";\r\n\r\nNode.AddNodeConstructor(\"StereoscopicGamepadCamera\", (name, scene, options) => {\r\n return () => new StereoscopicGamepadCamera(name, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate stereoscopic rendering (based on GamepadCamera)\r\n * @see https://doc.babylonjs.com/features/cameras\r\n */\r\nexport class StereoscopicGamepadCamera extends GamepadCamera {\r\n /**\r\n * Creates a new StereoscopicGamepadCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene?: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\r\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns StereoscopicGamepadCamera\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicGamepadCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicRigMode.bind(null, this);\r\n}\r\n"]}
@@ -28,7 +28,7 @@ export declare class StereoscopicScreenUniversalCamera extends UniversalCamera {
28
28
  * @param distanceToProjectionPlane defines distance between each color axis. The rig cameras will receive this as their negative z position!
29
29
  * @param distanceBetweenEyes defines is stereoscopic is done side by side or over under
30
30
  */
31
- constructor(name: string, position: Vector3, scene: Scene, distanceToProjectionPlane?: number, distanceBetweenEyes?: number);
31
+ constructor(name: string, position: Vector3, scene?: Scene, distanceToProjectionPlane?: number, distanceBetweenEyes?: number);
32
32
  /**
33
33
  * Gets camera class name
34
34
  * @returns StereoscopicScreenUniversalCamera
@@ -1 +1 @@
1
- {"version":3,"file":"stereoscopicScreenUniversalCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.ts"],"names":[],"mappings":"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","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { UniversalCamera } from \"../../Cameras/universalCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport { Nullable } from \"../../types\";\r\nimport { TargetCamera } from \"../targetCamera\";\r\nimport { TransformNode } from \"../../Meshes/transformNode\";\r\nimport { Viewport } from \"../../Maths/math.viewport\";\r\n\r\n/**\r\n * Camera used to simulate stereoscopic rendering on real screens (based on UniversalCamera)\r\n * @see https://doc.babylonjs.com/features/cameras\r\n */\r\nexport class StereoscopicScreenUniversalCamera extends UniversalCamera {\r\n private _distanceToProjectionPlane: number;\r\n private _distanceBetweenEyes: number;\r\n\r\n public set distanceBetweenEyes(newValue: number) {\r\n this._distanceBetweenEyes = newValue;\r\n }\r\n\r\n /**\r\n * distance between the eyes\r\n */\r\n public get distanceBetweenEyes(): number {\r\n return this._distanceBetweenEyes;\r\n }\r\n\r\n public set distanceToProjectionPlane(newValue: number) {\r\n this._distanceToProjectionPlane = newValue;\r\n }\r\n\r\n /**\r\n * Distance to projection plane (should be the same units the like distance between the eyes)\r\n */\r\n public get distanceToProjectionPlane(): number {\r\n return this._distanceToProjectionPlane;\r\n }\r\n /**\r\n * Creates a new StereoscopicScreenUniversalCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param scene defines the hosting scene\r\n * @param distanceToProjectionPlane defines distance between each color axis. The rig cameras will receive this as their negative z position!\r\n * @param distanceBetweenEyes defines is stereoscopic is done side by side or over under\r\n */\r\n constructor(name: string, position: Vector3, scene: Scene, distanceToProjectionPlane: number = 1, distanceBetweenEyes: number = 0.065) {\r\n super(name, position, scene);\r\n this._distanceBetweenEyes = distanceBetweenEyes;\r\n this._distanceToProjectionPlane = distanceToProjectionPlane;\r\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL, {\r\n stereoHalfAngle: 0\r\n });\r\n this._cameraRigParams.stereoHalfAngle = 0;\r\n this._cameraRigParams.interaxialDistance = distanceBetweenEyes;\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns StereoscopicScreenUniversalCamera\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicUniversalCamera\";\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public createRigCamera(name: string, cameraIndex: number): Nullable<Camera> {\r\n const camera = new TargetCamera(name, Vector3.Zero(), this.getScene());\r\n const transform = new TransformNode('tm_' + name, this.getScene());\r\n camera.parent = transform;\r\n transform.setPivotMatrix(Matrix.Identity(), false);\r\n camera.isRigCamera = true;\r\n camera.rigParent = this;\r\n return camera;\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public _updateRigCameras() {\r\n for (let cameraIndex = 0; cameraIndex < this._rigCameras.length; cameraIndex++) {\r\n const cam = this._rigCameras[cameraIndex] as TargetCamera;\r\n cam.minZ = this.minZ;\r\n cam.maxZ = this.maxZ;\r\n cam.fov = this.fov;\r\n cam.upVector.copyFrom(this.upVector);\r\n if (cam.rotationQuaternion) {\r\n cam.rotationQuaternion.copyFrom(this.rotationQuaternion);\r\n } else {\r\n cam.rotation.copyFrom(this.rotation);\r\n }\r\n this._updateCamera(this._rigCameras[cameraIndex] as TargetCamera, cameraIndex);\r\n }\r\n }\r\n\r\n private _updateCamera(camera: TargetCamera, cameraIndex: number) {\r\n const b = this.distanceBetweenEyes / 2;\r\n const z = b / this.distanceToProjectionPlane;\r\n camera.position.copyFrom(this.position);\r\n camera.position.addInPlaceFromFloats((cameraIndex === 0 ? -b : b), 0, -this._distanceToProjectionPlane);\r\n const transform = camera.parent as TransformNode;\r\n const m = transform.getPivotMatrix();\r\n m.setTranslationFromFloats((cameraIndex === 0 ? b : -b), 0, 0);\r\n m.setRowFromFloats(2, (cameraIndex === 0 ? z : -z), 0, 1, 0);\r\n transform.setPivotMatrix(m, false);\r\n }\r\n\r\n protected _setRigMode() {\r\n this._rigCameras[0].viewport = new Viewport(0, 0, 0.5, 1);\r\n this._rigCameras[1].viewport = new Viewport(0.5, 0, 0.5, 1.0);\r\n for (let cameraIndex = 0; cameraIndex < this._rigCameras.length; cameraIndex++) {\r\n this._updateCamera(this._rigCameras[cameraIndex] as TargetCamera, cameraIndex);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"stereoscopicScreenUniversalCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.ts"],"names":[],"mappings":"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","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { UniversalCamera } from \"../../Cameras/universalCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport { Nullable } from \"../../types\";\r\nimport { TargetCamera } from \"../targetCamera\";\r\nimport { TransformNode } from \"../../Meshes/transformNode\";\r\nimport { Viewport } from \"../../Maths/math.viewport\";\r\n\r\n/**\r\n * Camera used to simulate stereoscopic rendering on real screens (based on UniversalCamera)\r\n * @see https://doc.babylonjs.com/features/cameras\r\n */\r\nexport class StereoscopicScreenUniversalCamera extends UniversalCamera {\r\n private _distanceToProjectionPlane: number;\r\n private _distanceBetweenEyes: number;\r\n\r\n public set distanceBetweenEyes(newValue: number) {\r\n this._distanceBetweenEyes = newValue;\r\n }\r\n\r\n /**\r\n * distance between the eyes\r\n */\r\n public get distanceBetweenEyes(): number {\r\n return this._distanceBetweenEyes;\r\n }\r\n\r\n public set distanceToProjectionPlane(newValue: number) {\r\n this._distanceToProjectionPlane = newValue;\r\n }\r\n\r\n /**\r\n * Distance to projection plane (should be the same units the like distance between the eyes)\r\n */\r\n public get distanceToProjectionPlane(): number {\r\n return this._distanceToProjectionPlane;\r\n }\r\n /**\r\n * Creates a new StereoscopicScreenUniversalCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param scene defines the hosting scene\r\n * @param distanceToProjectionPlane defines distance between each color axis. The rig cameras will receive this as their negative z position!\r\n * @param distanceBetweenEyes defines is stereoscopic is done side by side or over under\r\n */\r\n constructor(name: string, position: Vector3, scene?: Scene, distanceToProjectionPlane: number = 1, distanceBetweenEyes: number = 0.065) {\r\n super(name, position, scene);\r\n this._distanceBetweenEyes = distanceBetweenEyes;\r\n this._distanceToProjectionPlane = distanceToProjectionPlane;\r\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL, {\r\n stereoHalfAngle: 0\r\n });\r\n this._cameraRigParams.stereoHalfAngle = 0;\r\n this._cameraRigParams.interaxialDistance = distanceBetweenEyes;\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns StereoscopicScreenUniversalCamera\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicUniversalCamera\";\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public createRigCamera(name: string, cameraIndex: number): Nullable<Camera> {\r\n const camera = new TargetCamera(name, Vector3.Zero(), this.getScene());\r\n const transform = new TransformNode('tm_' + name, this.getScene());\r\n camera.parent = transform;\r\n transform.setPivotMatrix(Matrix.Identity(), false);\r\n camera.isRigCamera = true;\r\n camera.rigParent = this;\r\n return camera;\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public _updateRigCameras() {\r\n for (let cameraIndex = 0; cameraIndex < this._rigCameras.length; cameraIndex++) {\r\n const cam = this._rigCameras[cameraIndex] as TargetCamera;\r\n cam.minZ = this.minZ;\r\n cam.maxZ = this.maxZ;\r\n cam.fov = this.fov;\r\n cam.upVector.copyFrom(this.upVector);\r\n if (cam.rotationQuaternion) {\r\n cam.rotationQuaternion.copyFrom(this.rotationQuaternion);\r\n } else {\r\n cam.rotation.copyFrom(this.rotation);\r\n }\r\n this._updateCamera(this._rigCameras[cameraIndex] as TargetCamera, cameraIndex);\r\n }\r\n }\r\n\r\n private _updateCamera(camera: TargetCamera, cameraIndex: number) {\r\n const b = this.distanceBetweenEyes / 2;\r\n const z = b / this.distanceToProjectionPlane;\r\n camera.position.copyFrom(this.position);\r\n camera.position.addInPlaceFromFloats((cameraIndex === 0 ? -b : b), 0, -this._distanceToProjectionPlane);\r\n const transform = camera.parent as TransformNode;\r\n const m = transform.getPivotMatrix();\r\n m.setTranslationFromFloats((cameraIndex === 0 ? b : -b), 0, 0);\r\n m.setRowFromFloats(2, (cameraIndex === 0 ? z : -z), 0, 1, 0);\r\n transform.setPivotMatrix(m, false);\r\n }\r\n\r\n protected _setRigMode() {\r\n this._rigCameras[0].viewport = new Viewport(0, 0, 0.5, 1);\r\n this._rigCameras[1].viewport = new Viewport(0.5, 0, 0.5, 1.0);\r\n for (let cameraIndex = 0; cameraIndex < this._rigCameras.length; cameraIndex++) {\r\n this._updateCamera(this._rigCameras[cameraIndex] as TargetCamera, cameraIndex);\r\n }\r\n }\r\n}\r\n"]}
@@ -14,7 +14,7 @@ export declare class StereoscopicUniversalCamera extends UniversalCamera {
14
14
  * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under
15
15
  * @param scene defines the hosting scene
16
16
  */
17
- constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene);
17
+ constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene?: Scene);
18
18
  /**
19
19
  * Gets camera class name
20
20
  * @returns StereoscopicUniversalCamera
@@ -1 +1 @@
1
- {"version":3,"file":"stereoscopicUniversalCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/stereoscopicUniversalCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACnE,OAAO,cAAM,OAAA,IAAI,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAA3H,CAA2H,CAAC;AAC7I,CAAC,CAAC,CAAC;AACH;;;GAGG;AACH;IAAiD,+CAAe;IAC5D;;;;;;;OAOG;IACH,qCAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,wBAAiC,EAAE,KAAY;QAAxH,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAI/B;QAUS,iBAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAb5D,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,KAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,MAAM,CAAC,+BAA+B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC5L,CAAC;IAED;;;OAGG;IACI,kDAAY,GAAnB;QACI,OAAO,6BAA6B,CAAC;IACzC,CAAC;IAGL,kCAAC;AAAD,CAAC,AAzBD,CAAiD,eAAe,GAyB/D","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { UniversalCamera } from \"../../Cameras/universalCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode\";\r\n\r\nNode.AddNodeConstructor(\"StereoscopicFreeCamera\", (name, scene, options) => {\r\n return () => new StereoscopicUniversalCamera(name, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\r\n});\r\n/**\r\n * Camera used to simulate stereoscopic rendering (based on UniversalCamera)\r\n * @see https://doc.babylonjs.com/features/cameras\r\n */\r\nexport class StereoscopicUniversalCamera extends UniversalCamera {\r\n /**\r\n * Creates a new StereoscopicUniversalCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\r\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns StereoscopicUniversalCamera\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicUniversalCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicRigMode.bind(null, this);\r\n}\r\n"]}
1
+ {"version":3,"file":"stereoscopicUniversalCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/Stereoscopic/stereoscopicUniversalCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;IACnE,OAAO,cAAM,OAAA,IAAI,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAA3H,CAA2H,CAAC;AAC7I,CAAC,CAAC,CAAC;AACH;;;GAGG;AACH;IAAiD,+CAAe;IAC5D;;;;;;;OAOG;IACH,qCAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,wBAAiC,EAAE,KAAa;QAAzH,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAI/B;QAUS,iBAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAb5D,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,KAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,MAAM,CAAC,+BAA+B,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,CAAC;;IAC5L,CAAC;IAED;;;OAGG;IACI,kDAAY,GAAnB;QACI,OAAO,6BAA6B,CAAC;IACzC,CAAC;IAGL,kCAAC;AAAD,CAAC,AAzBD,CAAiD,eAAe,GAyB/D","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { UniversalCamera } from \"../../Cameras/universalCamera\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode\";\r\n\r\nNode.AddNodeConstructor(\"StereoscopicFreeCamera\", (name, scene, options) => {\r\n return () => new StereoscopicUniversalCamera(name, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\r\n});\r\n/**\r\n * Camera used to simulate stereoscopic rendering (based on UniversalCamera)\r\n * @see https://doc.babylonjs.com/features/cameras\r\n */\r\nexport class StereoscopicUniversalCamera extends UniversalCamera {\r\n /**\r\n * Creates a new StereoscopicUniversalCamera\r\n * @param name defines camera name\r\n * @param position defines initial position\r\n * @param interaxialDistance defines distance between each color axis\r\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\r\n * @param scene defines the hosting scene\r\n */\r\n constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene?: Scene) {\r\n super(name, position, scene);\r\n this.interaxialDistance = interaxialDistance;\r\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\r\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: interaxialDistance });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns StereoscopicUniversalCamera\r\n */\r\n public getClassName(): string {\r\n return \"StereoscopicUniversalCamera\";\r\n }\r\n\r\n protected _setRigMode = setStereoscopicRigMode.bind(null, this);\r\n}\r\n"]}
@@ -19,7 +19,7 @@ export declare class VRDeviceOrientationArcRotateCamera extends ArcRotateCamera
19
19
  * @param compensateDistortion defines if the camera needs to compensate the lens distortion
20
20
  * @param vrCameraMetrics defines the vr metrics associated to the camera
21
21
  */
22
- constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, scene: Scene, compensateDistortion?: boolean, vrCameraMetrics?: VRCameraMetrics);
22
+ constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, scene?: Scene, compensateDistortion?: boolean, vrCameraMetrics?: VRCameraMetrics);
23
23
  /**
24
24
  * Gets camera class name
25
25
  * @returns VRDeviceOrientationArcRotateCamera
@@ -1 +1 @@
1
- {"version":3,"file":"vrDeviceOrientationArcRotateCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/VR/vrDeviceOrientationArcRotateCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,mDAAmD,CAAC;AAE3D,IAAI,CAAC,kBAAkB,CAAC,oCAAoC,EAAE,UAAC,IAAI,EAAE,KAAK;IACtE,OAAO,cAAM,OAAA,IAAI,kCAAkC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,EAA9E,CAA8E,CAAC;AAChG,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAAwD,sDAAe;IAEnE;;;;;;;;;;OAUG;IACH,4CAAY,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,MAAc,EAAE,MAAe,EAAE,KAAY,EAAE,oBAA2B,EAAE,eAA+D;QAA5F,qCAAA,EAAA,2BAA2B;QAAE,gCAAA,EAAA,kBAAmC,eAAe,CAAC,UAAU,EAAE;QAAlM,YACI,kBAAM,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAMlD;QAUS,iBAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAdlD,eAAe,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC5D,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;QAEhF,KAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;;IACzC,CAAC;IAED;;;OAGG;IACI,yDAAY,GAAnB;QACI,OAAO,oCAAoC,CAAC;IAChD,CAAC;IAGL,yCAAC;AAAD,CAAC,AA/BD,CAAwD,eAAe,GA+BtE","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setVRRigMode } from \"../RigModes/vrRigMode\";\r\n\r\nimport \"../Inputs/arcRotateCameraVRDeviceOrientationInput\";\r\n\r\nNode.AddNodeConstructor(\"VRDeviceOrientationArcRotateCamera\", (name, scene) => {\r\n return () => new VRDeviceOrientationArcRotateCamera(name, 0, 0, 1.0, Vector3.Zero(), scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate VR rendering (based on ArcRotateCamera)\r\n * @see https://doc.babylonjs.com/babylon101/cameras#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationArcRotateCamera extends ArcRotateCamera {\r\n\r\n /**\r\n * Creates a new VRDeviceOrientationArcRotateCamera\r\n * @param name defines camera name\r\n * @param alpha defines the camera rotation along the longitudinal axis\r\n * @param beta defines the camera rotation along the latitudinal axis\r\n * @param radius defines the camera distance from its target\r\n * @param target defines the camera target\r\n * @param scene defines the scene the camera belongs to\r\n * @param compensateDistortion defines if the camera needs to compensate the lens distortion\r\n * @param vrCameraMetrics defines the vr metrics associated to the camera\r\n */\r\n constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, scene: Scene, compensateDistortion = true, vrCameraMetrics: VRCameraMetrics = VRCameraMetrics.GetDefault()) {\r\n super(name, alpha, beta, radius, target, scene);\r\n\r\n vrCameraMetrics.compensateDistortion = compensateDistortion;\r\n this.setCameraRigMode(Camera.RIG_MODE_VR, { vrCameraMetrics: vrCameraMetrics });\r\n\r\n this.inputs.addVRDeviceOrientation();\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns VRDeviceOrientationArcRotateCamera\r\n */\r\n public getClassName(): string {\r\n return \"VRDeviceOrientationArcRotateCamera\";\r\n }\r\n\r\n protected _setRigMode = setVRRigMode.bind(null, this);\r\n}\r\n"]}
1
+ {"version":3,"file":"vrDeviceOrientationArcRotateCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/VR/vrDeviceOrientationArcRotateCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,mDAAmD,CAAC;AAE3D,IAAI,CAAC,kBAAkB,CAAC,oCAAoC,EAAE,UAAC,IAAI,EAAE,KAAK;IACtE,OAAO,cAAM,OAAA,IAAI,kCAAkC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,EAA9E,CAA8E,CAAC;AAChG,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAAwD,sDAAe;IAEnE;;;;;;;;;;OAUG;IACH,4CAAY,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,MAAc,EAAE,MAAe,EAAE,KAAa,EAAE,oBAA2B,EAAE,eAA+D;QAA5F,qCAAA,EAAA,2BAA2B;QAAE,gCAAA,EAAA,kBAAmC,eAAe,CAAC,UAAU,EAAE;QAAnM,YACI,kBAAM,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAMlD;QAUS,iBAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAdlD,eAAe,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC5D,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;QAEhF,KAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;;IACzC,CAAC;IAED;;;OAGG;IACI,yDAAY,GAAnB;QACI,OAAO,oCAAoC,CAAC;IAChD,CAAC;IAGL,yCAAC;AAAD,CAAC,AA/BD,CAAwD,eAAe,GA+BtE","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setVRRigMode } from \"../RigModes/vrRigMode\";\r\n\r\nimport \"../Inputs/arcRotateCameraVRDeviceOrientationInput\";\r\n\r\nNode.AddNodeConstructor(\"VRDeviceOrientationArcRotateCamera\", (name, scene) => {\r\n return () => new VRDeviceOrientationArcRotateCamera(name, 0, 0, 1.0, Vector3.Zero(), scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate VR rendering (based on ArcRotateCamera)\r\n * @see https://doc.babylonjs.com/babylon101/cameras#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationArcRotateCamera extends ArcRotateCamera {\r\n\r\n /**\r\n * Creates a new VRDeviceOrientationArcRotateCamera\r\n * @param name defines camera name\r\n * @param alpha defines the camera rotation along the longitudinal axis\r\n * @param beta defines the camera rotation along the latitudinal axis\r\n * @param radius defines the camera distance from its target\r\n * @param target defines the camera target\r\n * @param scene defines the scene the camera belongs to\r\n * @param compensateDistortion defines if the camera needs to compensate the lens distortion\r\n * @param vrCameraMetrics defines the vr metrics associated to the camera\r\n */\r\n constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, scene?: Scene, compensateDistortion = true, vrCameraMetrics: VRCameraMetrics = VRCameraMetrics.GetDefault()) {\r\n super(name, alpha, beta, radius, target, scene);\r\n\r\n vrCameraMetrics.compensateDistortion = compensateDistortion;\r\n this.setCameraRigMode(Camera.RIG_MODE_VR, { vrCameraMetrics: vrCameraMetrics });\r\n\r\n this.inputs.addVRDeviceOrientation();\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns VRDeviceOrientationArcRotateCamera\r\n */\r\n public getClassName(): string {\r\n return \"VRDeviceOrientationArcRotateCamera\";\r\n }\r\n\r\n protected _setRigMode = setVRRigMode.bind(null, this);\r\n}\r\n"]}
@@ -15,7 +15,7 @@ export declare class VRDeviceOrientationFreeCamera extends DeviceOrientationCame
15
15
  * @param compensateDistortion defines if the camera needs to compensate the lens distortion
16
16
  * @param vrCameraMetrics defines the vr metrics associated to the camera
17
17
  */
18
- constructor(name: string, position: Vector3, scene: Scene, compensateDistortion?: boolean, vrCameraMetrics?: VRCameraMetrics);
18
+ constructor(name: string, position: Vector3, scene?: Scene, compensateDistortion?: boolean, vrCameraMetrics?: VRCameraMetrics);
19
19
  /**
20
20
  * Gets camera class name
21
21
  * @returns VRDeviceOrientationFreeCamera
@@ -1 +1 @@
1
- {"version":3,"file":"vrDeviceOrientationFreeCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/VR/vrDeviceOrientationFreeCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,IAAI,CAAC,kBAAkB,CAAC,+BAA+B,EAAE,UAAC,IAAI,EAAE,KAAK;IACjE,OAAO,cAAM,OAAA,IAAI,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,EAA9D,CAA8D,CAAC;AAChF,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAAmD,iDAAuB;IAEtE;;;;;;;OAOG;IACH,uCAAY,IAAY,EAAE,QAAiB,EAAE,KAAY,EAAE,oBAA2B,EAAE,eAA+D;QAA5F,qCAAA,EAAA,2BAA2B;QAAE,gCAAA,EAAA,kBAAmC,eAAe,CAAC,UAAU,EAAE;QAAvJ,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAI/B;QAUS,iBAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAZlD,eAAe,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC5D,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;;IACpF,CAAC;IAED;;;OAGG;IACI,oDAAY,GAAnB;QACI,OAAO,+BAA+B,CAAC;IAC3C,CAAC;IAGL,oCAAC;AAAD,CAAC,AA1BD,CAAmD,uBAAuB,GA0BzE","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { DeviceOrientationCamera } from \"../../Cameras/deviceOrientationCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setVRRigMode } from \"../RigModes/vrRigMode\";\r\n\r\nNode.AddNodeConstructor(\"VRDeviceOrientationFreeCamera\", (name, scene) => {\r\n return () => new VRDeviceOrientationFreeCamera(name, Vector3.Zero(), scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate VR rendering (based on FreeCamera)\r\n * @see https://doc.babylonjs.com/babylon101/cameras#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationFreeCamera extends DeviceOrientationCamera {\r\n\r\n /**\r\n * Creates a new VRDeviceOrientationFreeCamera\r\n * @param name defines camera name\r\n * @param position defines the start position of the camera\r\n * @param scene defines the scene the camera belongs to\r\n * @param compensateDistortion defines if the camera needs to compensate the lens distortion\r\n * @param vrCameraMetrics defines the vr metrics associated to the camera\r\n */\r\n constructor(name: string, position: Vector3, scene: Scene, compensateDistortion = true, vrCameraMetrics: VRCameraMetrics = VRCameraMetrics.GetDefault()) {\r\n super(name, position, scene);\r\n\r\n vrCameraMetrics.compensateDistortion = compensateDistortion;\r\n this.setCameraRigMode(Camera.RIG_MODE_VR, { vrCameraMetrics: vrCameraMetrics });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns VRDeviceOrientationFreeCamera\r\n */\r\n public getClassName(): string {\r\n return \"VRDeviceOrientationFreeCamera\";\r\n }\r\n\r\n protected _setRigMode = setVRRigMode.bind(null, this);\r\n}\r\n"]}
1
+ {"version":3,"file":"vrDeviceOrientationFreeCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/VR/vrDeviceOrientationFreeCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,IAAI,CAAC,kBAAkB,CAAC,+BAA+B,EAAE,UAAC,IAAI,EAAE,KAAK;IACjE,OAAO,cAAM,OAAA,IAAI,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,EAA9D,CAA8D,CAAC;AAChF,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAAmD,iDAAuB;IAEtE;;;;;;;OAOG;IACH,uCAAY,IAAY,EAAE,QAAiB,EAAE,KAAa,EAAE,oBAA2B,EAAE,eAA+D;QAA5F,qCAAA,EAAA,2BAA2B;QAAE,gCAAA,EAAA,kBAAmC,eAAe,CAAC,UAAU,EAAE;QAAxJ,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAI/B;QAUS,iBAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAZlD,eAAe,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC5D,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;;IACpF,CAAC;IAED;;;OAGG;IACI,oDAAY,GAAnB;QACI,OAAO,+BAA+B,CAAC;IAC3C,CAAC;IAGL,oCAAC;AAAD,CAAC,AA1BD,CAAmD,uBAAuB,GA0BzE","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { DeviceOrientationCamera } from \"../../Cameras/deviceOrientationCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setVRRigMode } from \"../RigModes/vrRigMode\";\r\n\r\nNode.AddNodeConstructor(\"VRDeviceOrientationFreeCamera\", (name, scene) => {\r\n return () => new VRDeviceOrientationFreeCamera(name, Vector3.Zero(), scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate VR rendering (based on FreeCamera)\r\n * @see https://doc.babylonjs.com/babylon101/cameras#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationFreeCamera extends DeviceOrientationCamera {\r\n\r\n /**\r\n * Creates a new VRDeviceOrientationFreeCamera\r\n * @param name defines camera name\r\n * @param position defines the start position of the camera\r\n * @param scene defines the scene the camera belongs to\r\n * @param compensateDistortion defines if the camera needs to compensate the lens distortion\r\n * @param vrCameraMetrics defines the vr metrics associated to the camera\r\n */\r\n constructor(name: string, position: Vector3, scene?: Scene, compensateDistortion = true, vrCameraMetrics: VRCameraMetrics = VRCameraMetrics.GetDefault()) {\r\n super(name, position, scene);\r\n\r\n vrCameraMetrics.compensateDistortion = compensateDistortion;\r\n this.setCameraRigMode(Camera.RIG_MODE_VR, { vrCameraMetrics: vrCameraMetrics });\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns VRDeviceOrientationFreeCamera\r\n */\r\n public getClassName(): string {\r\n return \"VRDeviceOrientationFreeCamera\";\r\n }\r\n\r\n protected _setRigMode = setVRRigMode.bind(null, this);\r\n}\r\n"]}
@@ -16,7 +16,7 @@ export declare class VRDeviceOrientationGamepadCamera extends VRDeviceOrientatio
16
16
  * @param compensateDistortion defines if the camera needs to compensate the lens distortion
17
17
  * @param vrCameraMetrics defines the vr metrics associated to the camera
18
18
  */
19
- constructor(name: string, position: Vector3, scene: Scene, compensateDistortion?: boolean, vrCameraMetrics?: VRCameraMetrics);
19
+ constructor(name: string, position: Vector3, scene?: Scene, compensateDistortion?: boolean, vrCameraMetrics?: VRCameraMetrics);
20
20
  /**
21
21
  * Gets camera class name
22
22
  * @returns VRDeviceOrientationGamepadCamera
@@ -1 +1 @@
1
- {"version":3,"file":"vrDeviceOrientationGamepadCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/VR/vrDeviceOrientationGamepadCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,sCAAsC,CAAC;AAE9C,IAAI,CAAC,kBAAkB,CAAC,kCAAkC,EAAE,UAAC,IAAI,EAAE,KAAK;IACpE,OAAO,cAAM,OAAA,IAAI,gCAAgC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,EAAjE,CAAiE,CAAC;AACnF,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAAsD,oDAA6B;IAE/E;;;;;;;OAOG;IACH,0CAAY,IAAY,EAAE,QAAiB,EAAE,KAAY,EAAE,oBAA2B,EAAE,eAA+D;QAA5F,qCAAA,EAAA,2BAA2B;QAAE,gCAAA,EAAA,kBAAmC,eAAe,CAAC,UAAU,EAAE;QAAvJ,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE,eAAe,CAAC,SAGtE;QAUS,iBAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAXlD,KAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;;IAC7B,CAAC;IAED;;;OAGG;IACI,uDAAY,GAAnB;QACI,OAAO,kCAAkC,CAAC;IAC9C,CAAC;IAGL,uCAAC;AAAD,CAAC,AAzBD,CAAsD,6BAA6B,GAyBlF","sourcesContent":["import { VRDeviceOrientationFreeCamera } from \"./vrDeviceOrientationFreeCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setVRRigMode } from \"../RigModes/vrRigMode\";\r\n\r\nimport \"../../Gamepads/gamepadSceneComponent\";\r\n\r\nNode.AddNodeConstructor(\"VRDeviceOrientationGamepadCamera\", (name, scene) => {\r\n return () => new VRDeviceOrientationGamepadCamera(name, Vector3.Zero(), scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate VR rendering (based on VRDeviceOrientationFreeCamera)\r\n * @see https://doc.babylonjs.com/babylon101/cameras#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationGamepadCamera extends VRDeviceOrientationFreeCamera {\r\n\r\n /**\r\n * Creates a new VRDeviceOrientationGamepadCamera\r\n * @param name defines camera name\r\n * @param position defines the start position of the camera\r\n * @param scene defines the scene the camera belongs to\r\n * @param compensateDistortion defines if the camera needs to compensate the lens distortion\r\n * @param vrCameraMetrics defines the vr metrics associated to the camera\r\n */\r\n constructor(name: string, position: Vector3, scene: Scene, compensateDistortion = true, vrCameraMetrics: VRCameraMetrics = VRCameraMetrics.GetDefault()) {\r\n super(name, position, scene, compensateDistortion, vrCameraMetrics);\r\n\r\n this.inputs.addGamepad();\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns VRDeviceOrientationGamepadCamera\r\n */\r\n public getClassName(): string {\r\n return \"VRDeviceOrientationGamepadCamera\";\r\n }\r\n\r\n protected _setRigMode = setVRRigMode.bind(null, this);\r\n}\r\n"]}
1
+ {"version":3,"file":"vrDeviceOrientationGamepadCamera.js","sourceRoot":"","sources":["../../../../sourceES6/core/Cameras/VR/vrDeviceOrientationGamepadCamera.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,sCAAsC,CAAC;AAE9C,IAAI,CAAC,kBAAkB,CAAC,kCAAkC,EAAE,UAAC,IAAI,EAAE,KAAK;IACpE,OAAO,cAAM,OAAA,IAAI,gCAAgC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,EAAjE,CAAiE,CAAC;AACnF,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH;IAAsD,oDAA6B;IAE/E;;;;;;;OAOG;IACH,0CAAY,IAAY,EAAE,QAAiB,EAAE,KAAa,EAAE,oBAA2B,EAAE,eAA+D;QAA5F,qCAAA,EAAA,2BAA2B;QAAE,gCAAA,EAAA,kBAAmC,eAAe,CAAC,UAAU,EAAE;QAAxJ,YACI,kBAAM,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE,eAAe,CAAC,SAGtE;QAUS,iBAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,CAAC;QAXlD,KAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;;IAC7B,CAAC;IAED;;;OAGG;IACI,uDAAY,GAAnB;QACI,OAAO,kCAAkC,CAAC;IAC9C,CAAC;IAGL,uCAAC;AAAD,CAAC,AAzBD,CAAsD,6BAA6B,GAyBlF","sourcesContent":["import { VRDeviceOrientationFreeCamera } from \"./vrDeviceOrientationFreeCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport { Scene } from \"../../scene\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Node } from \"../../node\";\r\nimport { setVRRigMode } from \"../RigModes/vrRigMode\";\r\n\r\nimport \"../../Gamepads/gamepadSceneComponent\";\r\n\r\nNode.AddNodeConstructor(\"VRDeviceOrientationGamepadCamera\", (name, scene) => {\r\n return () => new VRDeviceOrientationGamepadCamera(name, Vector3.Zero(), scene);\r\n});\r\n\r\n/**\r\n * Camera used to simulate VR rendering (based on VRDeviceOrientationFreeCamera)\r\n * @see https://doc.babylonjs.com/babylon101/cameras#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationGamepadCamera extends VRDeviceOrientationFreeCamera {\r\n\r\n /**\r\n * Creates a new VRDeviceOrientationGamepadCamera\r\n * @param name defines camera name\r\n * @param position defines the start position of the camera\r\n * @param scene defines the scene the camera belongs to\r\n * @param compensateDistortion defines if the camera needs to compensate the lens distortion\r\n * @param vrCameraMetrics defines the vr metrics associated to the camera\r\n */\r\n constructor(name: string, position: Vector3, scene?: Scene, compensateDistortion = true, vrCameraMetrics: VRCameraMetrics = VRCameraMetrics.GetDefault()) {\r\n super(name, position, scene, compensateDistortion, vrCameraMetrics);\r\n\r\n this.inputs.addGamepad();\r\n }\r\n\r\n /**\r\n * Gets camera class name\r\n * @returns VRDeviceOrientationGamepadCamera\r\n */\r\n public getClassName(): string {\r\n return \"VRDeviceOrientationGamepadCamera\";\r\n }\r\n\r\n protected _setRigMode = setVRRigMode.bind(null, this);\r\n}\r\n"]}
@@ -86,6 +86,7 @@ export declare class OnAfterEnteringVRObservableEvent {
86
86
  /**
87
87
  * Helps to quickly add VR support to an existing scene.
88
88
  * See https://doc.babylonjs.com/divingDeeper/cameras/webVRHelper
89
+ * @deprecated
89
90
  */
90
91
  export declare class VRExperienceHelper {
91
92
  /** Options to modify the vr experience helper's behavior. */
@@ -234,6 +234,7 @@ export { OnAfterEnteringVRObservableEvent };
234
234
  /**
235
235
  * Helps to quickly add VR support to an existing scene.
236
236
  * See https://doc.babylonjs.com/divingDeeper/cameras/webVRHelper
237
+ * @deprecated
237
238
  */
238
239
  var VRExperienceHelper = /** @class */ (function () {
239
240
  /**