@babylonjs/core 6.22.1 → 6.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/Animations/animationGroup.d.ts +2 -1
  2. package/Animations/animationGroup.js +5 -1
  3. package/Animations/animationGroup.js.map +1 -1
  4. package/Behaviors/Cameras/framingBehavior.d.ts +0 -5
  5. package/Behaviors/Cameras/framingBehavior.js +2 -34
  6. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  7. package/Buffers/buffer.d.ts +64 -1
  8. package/Buffers/buffer.js +30 -23
  9. package/Buffers/buffer.js.map +1 -1
  10. package/Buffers/storageBuffer.d.ts +3 -1
  11. package/Buffers/storageBuffer.js +4 -2
  12. package/Buffers/storageBuffer.js.map +1 -1
  13. package/Cameras/Inputs/BaseCameraPointersInput.js +1 -1
  14. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  15. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js +1 -1
  16. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js.map +1 -1
  17. package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
  18. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  19. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.d.ts +1 -1
  20. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js +1 -1
  21. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js.map +1 -1
  22. package/Cameras/Stereoscopic/anaglyphFreeCamera.d.ts +1 -1
  23. package/Cameras/Stereoscopic/anaglyphFreeCamera.js +1 -1
  24. package/Cameras/Stereoscopic/anaglyphFreeCamera.js.map +1 -1
  25. package/Cameras/Stereoscopic/anaglyphGamepadCamera.d.ts +1 -1
  26. package/Cameras/Stereoscopic/anaglyphGamepadCamera.js +1 -1
  27. package/Cameras/Stereoscopic/anaglyphGamepadCamera.js.map +1 -1
  28. package/Cameras/Stereoscopic/anaglyphUniversalCamera.d.ts +1 -1
  29. package/Cameras/Stereoscopic/anaglyphUniversalCamera.js +1 -1
  30. package/Cameras/Stereoscopic/anaglyphUniversalCamera.js.map +1 -1
  31. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.d.ts +1 -1
  32. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js +1 -1
  33. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js.map +1 -1
  34. package/Cameras/Stereoscopic/stereoscopicFreeCamera.d.ts +1 -1
  35. package/Cameras/Stereoscopic/stereoscopicFreeCamera.js +1 -1
  36. package/Cameras/Stereoscopic/stereoscopicFreeCamera.js.map +1 -1
  37. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.d.ts +1 -1
  38. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js +1 -1
  39. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js.map +1 -1
  40. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.d.ts +1 -1
  41. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js +1 -1
  42. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js.map +1 -1
  43. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.d.ts +1 -1
  44. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js +1 -1
  45. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
  46. package/Cameras/VR/vrDeviceOrientationFreeCamera.d.ts +1 -1
  47. package/Cameras/VR/vrDeviceOrientationFreeCamera.js +1 -1
  48. package/Cameras/VR/vrDeviceOrientationFreeCamera.js.map +1 -1
  49. package/Cameras/VR/vrDeviceOrientationGamepadCamera.d.ts +1 -1
  50. package/Cameras/VR/vrDeviceOrientationGamepadCamera.js +1 -1
  51. package/Cameras/VR/vrDeviceOrientationGamepadCamera.js.map +1 -1
  52. package/Cameras/arcRotateCamera.d.ts +4 -0
  53. package/Cameras/arcRotateCamera.js +30 -3
  54. package/Cameras/arcRotateCamera.js.map +1 -1
  55. package/Culling/Octrees/octreeSceneComponent.js +4 -4
  56. package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
  57. package/Debug/physicsViewer.js +4 -4
  58. package/Debug/physicsViewer.js.map +1 -1
  59. package/Debug/rayHelper.js +1 -1
  60. package/Debug/rayHelper.js.map +1 -1
  61. package/Engines/Extensions/engine.storageBuffer.d.ts +2 -1
  62. package/Engines/Extensions/engine.storageBuffer.js.map +1 -1
  63. package/Engines/Extensions/engine.uniformBuffer.d.ts +4 -2
  64. package/Engines/Extensions/engine.uniformBuffer.js +2 -2
  65. package/Engines/Extensions/engine.uniformBuffer.js.map +1 -1
  66. package/Engines/WebGPU/Extensions/engine.storageBuffer.d.ts +2 -1
  67. package/Engines/WebGPU/Extensions/engine.storageBuffer.js +3 -3
  68. package/Engines/WebGPU/Extensions/engine.storageBuffer.js.map +1 -1
  69. package/Engines/WebGPU/Extensions/engine.uniformBuffer.js +5 -5
  70. package/Engines/WebGPU/Extensions/engine.uniformBuffer.js.map +1 -1
  71. package/Engines/WebGPU/webgpuBufferManager.d.ts +3 -2
  72. package/Engines/WebGPU/webgpuBufferManager.js +16 -3
  73. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  74. package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +2 -0
  75. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +63 -2
  76. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  77. package/Engines/WebGPU/webgpuConstants.d.ts +5 -4
  78. package/Engines/WebGPU/webgpuConstants.js +15 -15
  79. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  80. package/Engines/WebGPU/webgpuDrawContext.js +1 -1
  81. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  82. package/Engines/WebGPU/webgpuPipelineContext.d.ts +3 -0
  83. package/Engines/WebGPU/webgpuPipelineContext.js +1 -0
  84. package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
  85. package/Engines/WebGPU/webgpuQuerySet.js +3 -3
  86. package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
  87. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  88. package/Engines/WebGPU/webgpuShaderProcessor.d.ts +3 -0
  89. package/Engines/WebGPU/webgpuShaderProcessor.js +5 -0
  90. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  91. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +11 -1
  92. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  93. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +3 -0
  94. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +32 -4
  95. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  96. package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -0
  97. package/Engines/WebGPU/webgpuTextureHelper.js +32 -34
  98. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  99. package/Engines/WebGPU/webgpuTintWASM.js +1 -1
  100. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  101. package/Engines/engine.d.ts +32 -32
  102. package/Engines/nativeEngine.d.ts +2 -2
  103. package/Engines/nativeEngine.js +5 -2
  104. package/Engines/nativeEngine.js.map +1 -1
  105. package/Engines/thinEngine.d.ts +7 -3
  106. package/Engines/thinEngine.js +11 -7
  107. package/Engines/thinEngine.js.map +1 -1
  108. package/Engines/webgpuEngine.d.ts +9 -4
  109. package/Engines/webgpuEngine.js +16 -11
  110. package/Engines/webgpuEngine.js.map +1 -1
  111. package/FlowGraph/flowGraph.js +1 -1
  112. package/FlowGraph/flowGraph.js.map +1 -1
  113. package/Lights/Shadows/cascadedShadowGenerator.js +1 -1
  114. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  115. package/Lights/Shadows/shadowGenerator.js +1 -1
  116. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  117. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.d.ts +4 -0
  118. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.js +21 -0
  119. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.js.map +1 -1
  120. package/Materials/Textures/Procedurals/proceduralTexture.d.ts +4 -1
  121. package/Materials/Textures/Procedurals/proceduralTexture.js +10 -8
  122. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  123. package/Materials/Textures/equiRectangularCubeTexture.js +1 -1
  124. package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
  125. package/Materials/Textures/texture.d.ts +2 -0
  126. package/Materials/Textures/texture.js +8 -0
  127. package/Materials/Textures/texture.js.map +1 -1
  128. package/Materials/Textures/videoTexture.d.ts +4 -0
  129. package/Materials/Textures/videoTexture.js +21 -0
  130. package/Materials/Textures/videoTexture.js.map +1 -1
  131. package/Materials/effect.d.ts +8 -3
  132. package/Materials/effect.js +25 -19
  133. package/Materials/effect.js.map +1 -1
  134. package/Materials/material.js +8 -6
  135. package/Materials/material.js.map +1 -1
  136. package/Materials/meshDebugPluginMaterial.js +1 -1
  137. package/Materials/meshDebugPluginMaterial.js.map +1 -1
  138. package/Materials/uniformBuffer.d.ts +1 -0
  139. package/Materials/uniformBuffer.js +10 -3
  140. package/Materials/uniformBuffer.js.map +1 -1
  141. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.d.ts +66 -0
  142. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +100 -0
  143. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -0
  144. package/Meshes/Node/Blocks/Instances/instantiateBlock.d.ts +5 -30
  145. package/Meshes/Node/Blocks/Instances/instantiateBlock.js +2 -52
  146. package/Meshes/Node/Blocks/Instances/instantiateBlock.js.map +1 -1
  147. package/Meshes/Node/Blocks/Instances/instantiateLinearBlock.d.ts +31 -0
  148. package/Meshes/Node/Blocks/Instances/instantiateLinearBlock.js +101 -0
  149. package/Meshes/Node/Blocks/Instances/instantiateLinearBlock.js.map +1 -0
  150. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.d.ts +4 -4
  151. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js +4 -4
  152. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js.map +1 -1
  153. package/Meshes/Node/Blocks/Instances/instantiateRadialBlock.d.ts +43 -0
  154. package/Meshes/Node/Blocks/Instances/instantiateRadialBlock.js +139 -0
  155. package/Meshes/Node/Blocks/Instances/instantiateRadialBlock.js.map +1 -0
  156. package/Meshes/Node/Blocks/Sources/meshBlock.d.ts +4 -0
  157. package/Meshes/Node/Blocks/Sources/meshBlock.js +18 -0
  158. package/Meshes/Node/Blocks/Sources/meshBlock.js.map +1 -1
  159. package/Meshes/Node/Blocks/booleanGeometryBlock.js +20 -0
  160. package/Meshes/Node/Blocks/booleanGeometryBlock.js.map +1 -1
  161. package/Meshes/Node/index.d.ts +2 -0
  162. package/Meshes/Node/index.js +2 -0
  163. package/Meshes/Node/index.js.map +1 -1
  164. package/Meshes/geometry.js +8 -2
  165. package/Meshes/geometry.js.map +1 -1
  166. package/Meshes/mesh.d.ts +10 -0
  167. package/Meshes/mesh.js +33 -0
  168. package/Meshes/mesh.js.map +1 -1
  169. package/Misc/tools.d.ts +0 -1
  170. package/Misc/tools.js +1 -5
  171. package/Misc/tools.js.map +1 -1
  172. package/Misc/videoRecorder.js +3 -3
  173. package/Misc/videoRecorder.js.map +1 -1
  174. package/Physics/physicsHelper.js +3 -3
  175. package/Physics/physicsHelper.js.map +1 -1
  176. package/Physics/v2/Plugins/havokPlugin.js +64 -56
  177. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  178. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +7 -0
  179. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
  180. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js +6 -0
  181. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js.map +1 -1
  182. package/PostProcesses/screenSpaceCurvaturePostProcess.js +3 -0
  183. package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
  184. package/PostProcesses/screenSpaceReflectionPostProcess.js +6 -0
  185. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  186. package/Rendering/fluidRenderer/fluidRenderer.js +4 -4
  187. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  188. package/Rendering/geometryBufferRenderer.d.ts +4 -0
  189. package/Rendering/geometryBufferRenderer.js +7 -0
  190. package/Rendering/geometryBufferRenderer.js.map +1 -1
  191. package/Shaders/ShadersInclude/lightFragment.js +4 -4
  192. package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
  193. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +42 -42
  194. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
  195. package/Shaders/geometry.fragment.js +4 -0
  196. package/Shaders/geometry.fragment.js.map +1 -1
  197. package/Shaders/geometry.vertex.js +4 -0
  198. package/Shaders/geometry.vertex.js.map +1 -1
  199. package/XR/features/WebXRSpaceWarp.d.ts +2 -0
  200. package/XR/features/WebXRSpaceWarp.js +6 -1
  201. package/XR/features/WebXRSpaceWarp.js.map +1 -1
  202. package/XR/webXRSessionManager.js +1 -1
  203. package/XR/webXRSessionManager.js.map +1 -1
  204. package/package.json +1 -1
  205. package/scene.js +4 -4
  206. package/scene.js.map +1 -1
@@ -20,5 +20,5 @@ export declare class StereoscopicUniversalCamera extends UniversalCamera {
20
20
  * @returns StereoscopicUniversalCamera
21
21
  */
22
22
  getClassName(): string;
23
- protected _setRigMode: any;
23
+ protected _setRigMode: () => void;
24
24
  }
@@ -21,7 +21,7 @@ export class StereoscopicUniversalCamera extends UniversalCamera {
21
21
  */
22
22
  constructor(name, position, interaxialDistance, isStereoscopicSideBySide, scene) {
23
23
  super(name, position, scene);
24
- this._setRigMode = setStereoscopicRigMode.bind(null, this);
24
+ this._setRigMode = () => setStereoscopicRigMode(this);
25
25
  this.interaxialDistance = interaxialDistance;
26
26
  this.isStereoscopicSideBySide = isStereoscopicSideBySide;
27
27
  this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, {
@@ -1 +1 @@
1
- {"version":3,"file":"stereoscopicUniversalCamera.js","sourceRoot":"","sources":["../../../../../dev/core/src/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,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACvE,OAAO,GAAG,EAAE,CAAC,IAAI,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;AAC7I,CAAC,CAAC,CAAC;AACH;;;GAGG;AACH,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC5D;;;;;;;OAOG;IACH,YAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,wBAAiC,EAAE,KAAa;QACrH,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAgBvB,gBAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAf5D,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,MAAM,CAAC,+BAA+B,EAAE;YACxI,kBAAkB,EAAE,kBAAkB;SACzC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,6BAA6B,CAAC;IACzC,CAAC;CAGJ","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { UniversalCamera } from \"../../Cameras/universalCamera\";\r\nimport type { 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/featuresDeepDive/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, {\r\n interaxialDistance: interaxialDistance,\r\n });\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":["../../../../../dev/core/src/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,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACvE,OAAO,GAAG,EAAE,CAAC,IAAI,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;AAC7I,CAAC,CAAC,CAAC;AACH;;;GAGG;AACH,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC5D;;;;;;;OAOG;IACH,YAAY,IAAY,EAAE,QAAiB,EAAE,kBAA0B,EAAE,wBAAiC,EAAE,KAAa;QACrH,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAgBvB,gBAAW,GAAG,GAAG,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAfvD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,MAAM,CAAC,+BAA+B,EAAE;YACxI,kBAAkB,EAAE,kBAAkB;SACzC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,6BAA6B,CAAC;IACzC,CAAC;CAGJ","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { UniversalCamera } from \"../../Cameras/universalCamera\";\r\nimport type { 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/featuresDeepDive/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, {\r\n interaxialDistance: interaxialDistance,\r\n });\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(this);\r\n}\r\n"]}
@@ -25,5 +25,5 @@ export declare class VRDeviceOrientationArcRotateCamera extends ArcRotateCamera
25
25
  * @returns VRDeviceOrientationArcRotateCamera
26
26
  */
27
27
  getClassName(): string;
28
- protected _setRigMode: any;
28
+ protected _setRigMode: (rigParams: any) => void;
29
29
  }
@@ -26,7 +26,7 @@ export class VRDeviceOrientationArcRotateCamera extends ArcRotateCamera {
26
26
  */
27
27
  constructor(name, alpha, beta, radius, target, scene, compensateDistortion = true, vrCameraMetrics = VRCameraMetrics.GetDefault()) {
28
28
  super(name, alpha, beta, radius, target, scene);
29
- this._setRigMode = setVRRigMode.bind(null, this);
29
+ this._setRigMode = (rigParams) => setVRRigMode(this, rigParams);
30
30
  vrCameraMetrics.compensateDistortion = compensateDistortion;
31
31
  this.setCameraRigMode(Camera.RIG_MODE_VR, { vrCameraMetrics: vrCameraMetrics });
32
32
  this.inputs.addVRDeviceOrientation();
@@ -1 +1 @@
1
- {"version":3,"file":"vrDeviceOrientationArcRotateCamera.js","sourceRoot":"","sources":["../../../../../dev/core/src/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,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IAC1E,OAAO,GAAG,EAAE,CAAC,IAAI,kCAAkC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,OAAO,kCAAmC,SAAQ,eAAe;IACnE;;;;;;;;;;OAUG;IACH,YACI,IAAY,EACZ,KAAa,EACb,IAAY,EACZ,MAAc,EACd,MAAe,EACf,KAAa,EACb,oBAAoB,GAAG,IAAI,EAC3B,kBAAmC,eAAe,CAAC,UAAU,EAAE;QAE/D,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAgB1C,gBAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAdlD,eAAe,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC5D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;QAEhF,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,oCAAoC,CAAC;IAChD,CAAC;CAGJ","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport type { 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/features/featuresDeepDive/cameras/camera_introduction#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationArcRotateCamera extends ArcRotateCamera {\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(\r\n name: string,\r\n alpha: number,\r\n beta: number,\r\n radius: number,\r\n target: Vector3,\r\n scene?: Scene,\r\n compensateDistortion = true,\r\n vrCameraMetrics: VRCameraMetrics = VRCameraMetrics.GetDefault()\r\n ) {\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":["../../../../../dev/core/src/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,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IAC1E,OAAO,GAAG,EAAE,CAAC,IAAI,kCAAkC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,OAAO,kCAAmC,SAAQ,eAAe;IACnE;;;;;;;;;;OAUG;IACH,YACI,IAAY,EACZ,KAAa,EACb,IAAY,EACZ,MAAc,EACd,MAAe,EACf,KAAa,EACb,oBAAoB,GAAG,IAAI,EAC3B,kBAAmC,eAAe,CAAC,UAAU,EAAE;QAE/D,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAgB1C,gBAAW,GAAG,CAAC,SAAc,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAdtE,eAAe,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC5D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;QAEhF,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,oCAAoC,CAAC;IAChD,CAAC;CAGJ","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport type { 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/features/featuresDeepDive/cameras/camera_introduction#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationArcRotateCamera extends ArcRotateCamera {\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(\r\n name: string,\r\n alpha: number,\r\n beta: number,\r\n radius: number,\r\n target: Vector3,\r\n scene?: Scene,\r\n compensateDistortion = true,\r\n vrCameraMetrics: VRCameraMetrics = VRCameraMetrics.GetDefault()\r\n ) {\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 = (rigParams: any) => setVRRigMode(this, rigParams);\r\n}\r\n"]}
@@ -21,5 +21,5 @@ export declare class VRDeviceOrientationFreeCamera extends DeviceOrientationCame
21
21
  * @returns VRDeviceOrientationFreeCamera
22
22
  */
23
23
  getClassName(): string;
24
- protected _setRigMode: any;
24
+ protected _setRigMode: (rigParams: any) => void;
25
25
  }
@@ -22,7 +22,7 @@ export class VRDeviceOrientationFreeCamera extends DeviceOrientationCamera {
22
22
  */
23
23
  constructor(name, position, scene, compensateDistortion = true, vrCameraMetrics = VRCameraMetrics.GetDefault()) {
24
24
  super(name, position, scene);
25
- this._setRigMode = setVRRigMode.bind(null, this);
25
+ this._setRigMode = (rigParams) => setVRRigMode(this, rigParams);
26
26
  vrCameraMetrics.compensateDistortion = compensateDistortion;
27
27
  this.setCameraRigMode(Camera.RIG_MODE_VR, { vrCameraMetrics: vrCameraMetrics });
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vrDeviceOrientationFreeCamera.js","sourceRoot":"","sources":["../../../../../dev/core/src/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,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IACrE,OAAO,GAAG,EAAE,CAAC,IAAI,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAChF,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,OAAO,6BAA8B,SAAQ,uBAAuB;IACtE;;;;;;;OAOG;IACH,YAAY,IAAY,EAAE,QAAiB,EAAE,KAAa,EAAE,oBAAoB,GAAG,IAAI,EAAE,kBAAmC,eAAe,CAAC,UAAU,EAAE;QACpJ,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAcvB,gBAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAZlD,eAAe,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC5D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,+BAA+B,CAAC;IAC3C,CAAC;CAGJ","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { DeviceOrientationCamera } from \"../../Cameras/deviceOrientationCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport type { 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/features/featuresDeepDive/cameras/camera_introduction#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationFreeCamera extends DeviceOrientationCamera {\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":["../../../../../dev/core/src/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,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IACrE,OAAO,GAAG,EAAE,CAAC,IAAI,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAChF,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,OAAO,6BAA8B,SAAQ,uBAAuB;IACtE;;;;;;;OAOG;IACH,YAAY,IAAY,EAAE,QAAiB,EAAE,KAAa,EAAE,oBAAoB,GAAG,IAAI,EAAE,kBAAmC,eAAe,CAAC,UAAU,EAAE;QACpJ,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAcvB,gBAAW,GAAG,CAAC,SAAc,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAZtE,eAAe,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC5D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,+BAA+B,CAAC;IAC3C,CAAC;CAGJ","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { DeviceOrientationCamera } from \"../../Cameras/deviceOrientationCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport type { 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/features/featuresDeepDive/cameras/camera_introduction#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationFreeCamera extends DeviceOrientationCamera {\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 = (rigParams: any) => setVRRigMode(this, rigParams);\r\n}\r\n"]}
@@ -22,5 +22,5 @@ export declare class VRDeviceOrientationGamepadCamera extends VRDeviceOrientatio
22
22
  * @returns VRDeviceOrientationGamepadCamera
23
23
  */
24
24
  getClassName(): string;
25
- protected _setRigMode: any;
25
+ protected _setRigMode: (rigParams: any) => void;
26
26
  }
@@ -22,7 +22,7 @@ export class VRDeviceOrientationGamepadCamera extends VRDeviceOrientationFreeCam
22
22
  */
23
23
  constructor(name, position, scene, compensateDistortion = true, vrCameraMetrics = VRCameraMetrics.GetDefault()) {
24
24
  super(name, position, scene, compensateDistortion, vrCameraMetrics);
25
- this._setRigMode = setVRRigMode.bind(null, this);
25
+ this._setRigMode = (rigParams) => setVRRigMode(this, rigParams);
26
26
  this.inputs.addGamepad();
27
27
  }
28
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"vrDeviceOrientationGamepadCamera.js","sourceRoot":"","sources":["../../../../../dev/core/src/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,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IACxE,OAAO,GAAG,EAAE,CAAC,IAAI,gCAAgC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,OAAO,gCAAiC,SAAQ,6BAA6B;IAC/E;;;;;;;OAOG;IACH,YAAY,IAAY,EAAE,QAAiB,EAAE,KAAa,EAAE,oBAAoB,GAAG,IAAI,EAAE,kBAAmC,eAAe,CAAC,UAAU,EAAE;QACpJ,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;QAa9D,gBAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAXlD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,kCAAkC,CAAC;IAC9C,CAAC;CAGJ","sourcesContent":["import { VRDeviceOrientationFreeCamera } from \"./vrDeviceOrientationFreeCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport type { 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/features/featuresDeepDive/cameras/camera_introduction#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationGamepadCamera extends VRDeviceOrientationFreeCamera {\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":["../../../../../dev/core/src/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,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IACxE,OAAO,GAAG,EAAE,CAAC,IAAI,gCAAgC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,OAAO,gCAAiC,SAAQ,6BAA6B;IAC/E;;;;;;;OAOG;IACH,YAAY,IAAY,EAAE,QAAiB,EAAE,KAAa,EAAE,oBAAoB,GAAG,IAAI,EAAE,kBAAmC,eAAe,CAAC,UAAU,EAAE;QACpJ,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;QAa9D,gBAAW,GAAG,CAAC,SAAc,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAXtE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,kCAAkC,CAAC;IAC9C,CAAC;CAGJ","sourcesContent":["import { VRDeviceOrientationFreeCamera } from \"./vrDeviceOrientationFreeCamera\";\r\nimport { VRCameraMetrics } from \"./vrCameraMetrics\";\r\nimport type { 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/features/featuresDeepDive/cameras/camera_introduction#vr-device-orientation-cameras\r\n */\r\nexport class VRDeviceOrientationGamepadCamera extends VRDeviceOrientationFreeCamera {\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 = (rigParams: any) => setVRRigMode(this, rigParams);\r\n}\r\n"]}
@@ -446,6 +446,10 @@ export declare class ArcRotateCamera extends TargetCamera {
446
446
  * Override Camera._updateRigCameras
447
447
  */
448
448
  _updateRigCameras(): void;
449
+ /**
450
+ * @internal
451
+ */
452
+ _calculateLowerRadiusFromModelBoundingSphere(minimumWorld: Vector3, maximumWorld: Vector3, radiusScale?: number): number;
449
453
  /**
450
454
  * Destroy the camera and release the current resources hold by it.
451
455
  */
@@ -724,8 +724,14 @@ export class ArcRotateCamera extends TargetCamera {
724
724
  this._viewMatrix.invertToRef(this._cameraTransformMatrix);
725
725
  localDirection.multiplyInPlace(this.panningAxis);
726
726
  Vector3.TransformNormalToRef(localDirection, this._cameraTransformMatrix, this._transformedDirection);
727
- // Eliminate y if mapPanning is enabled
728
- if (this.mapPanning || !this.panningAxis.y) {
727
+ // If mapPanning is enabled, we need to take the upVector into account and
728
+ // make sure we're not panning in the y direction
729
+ if (this.mapPanning) {
730
+ const up = this.upVector;
731
+ const right = Vector3.CrossToRef(this._transformedDirection, up, this._transformedDirection);
732
+ Vector3.CrossToRef(up, right, this._transformedDirection);
733
+ }
734
+ else if (!this.panningAxis.y) {
729
735
  this._transformedDirection.y = 0;
730
736
  }
731
737
  if (!this._targetHost) {
@@ -922,7 +928,9 @@ export class ArcRotateCamera extends TargetCamera {
922
928
  zoomOn(meshes, doNotUpdateMaxZ = false) {
923
929
  meshes = meshes || this.getScene().meshes;
924
930
  const minMaxVector = Mesh.MinMax(meshes);
925
- const distance = Vector3.Distance(minMaxVector.min, minMaxVector.max);
931
+ let distance = this._calculateLowerRadiusFromModelBoundingSphere(minMaxVector.min, minMaxVector.max);
932
+ // If there are defined limits, we need to take them into account
933
+ distance = Math.max(Math.min(distance, this.upperRadiusLimit || Number.MAX_VALUE), this.lowerRadiusLimit || 0);
926
934
  this.radius = distance * this.zoomOnFactor;
927
935
  this.focusOn({ min: minMaxVector.min, max: minMaxVector.max, distance: distance }, doNotUpdateMaxZ);
928
936
  }
@@ -1007,6 +1015,25 @@ export class ArcRotateCamera extends TargetCamera {
1007
1015
  }
1008
1016
  super._updateRigCameras();
1009
1017
  }
1018
+ /**
1019
+ * @internal
1020
+ */
1021
+ _calculateLowerRadiusFromModelBoundingSphere(minimumWorld, maximumWorld, radiusScale = 1) {
1022
+ const boxVectorGlobalDiagonal = Vector3.Distance(minimumWorld, maximumWorld);
1023
+ // Get aspect ratio in order to calculate frustum slope
1024
+ const engine = this.getScene().getEngine();
1025
+ const aspectRatio = engine.getAspectRatio(this);
1026
+ const frustumSlopeY = Math.tan(this.fov / 2);
1027
+ const frustumSlopeX = frustumSlopeY * aspectRatio;
1028
+ // Formula for setting distance
1029
+ // (Good explanation: http://stackoverflow.com/questions/2866350/move-camera-to-fit-3d-scene)
1030
+ const radiusWithoutFraming = boxVectorGlobalDiagonal * 0.5;
1031
+ // Horizon distance
1032
+ const radius = radiusWithoutFraming * radiusScale;
1033
+ const distanceForHorizontalFrustum = radius * Math.sqrt(1.0 + 1.0 / (frustumSlopeX * frustumSlopeX));
1034
+ const distanceForVerticalFrustum = radius * Math.sqrt(1.0 + 1.0 / (frustumSlopeY * frustumSlopeY));
1035
+ return Math.max(distanceForHorizontalFrustum, distanceForVerticalFrustum);
1036
+ }
1010
1037
  /**
1011
1038
  * Destroy the camera and release the current resources hold by it.
1012
1039
  */