@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.
- package/Animations/animationGroup.d.ts +2 -1
- package/Animations/animationGroup.js +5 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Behaviors/Cameras/framingBehavior.d.ts +0 -5
- package/Behaviors/Cameras/framingBehavior.js +2 -34
- package/Behaviors/Cameras/framingBehavior.js.map +1 -1
- package/Buffers/buffer.d.ts +64 -1
- package/Buffers/buffer.js +30 -23
- package/Buffers/buffer.js.map +1 -1
- package/Buffers/storageBuffer.d.ts +3 -1
- package/Buffers/storageBuffer.js +4 -2
- package/Buffers/storageBuffer.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js +1 -1
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphArcRotateCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js +1 -1
- package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphFreeCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphFreeCamera.js +1 -1
- package/Cameras/Stereoscopic/anaglyphFreeCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphGamepadCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphGamepadCamera.js +1 -1
- package/Cameras/Stereoscopic/anaglyphGamepadCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphUniversalCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphUniversalCamera.js +1 -1
- package/Cameras/Stereoscopic/anaglyphUniversalCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicFreeCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicFreeCamera.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicFreeCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicGamepadCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationFreeCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationFreeCamera.js +1 -1
- package/Cameras/VR/vrDeviceOrientationFreeCamera.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationGamepadCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationGamepadCamera.js +1 -1
- package/Cameras/VR/vrDeviceOrientationGamepadCamera.js.map +1 -1
- package/Cameras/arcRotateCamera.d.ts +4 -0
- package/Cameras/arcRotateCamera.js +30 -3
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Culling/Octrees/octreeSceneComponent.js +4 -4
- package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
- package/Debug/physicsViewer.js +4 -4
- package/Debug/physicsViewer.js.map +1 -1
- package/Debug/rayHelper.js +1 -1
- package/Debug/rayHelper.js.map +1 -1
- package/Engines/Extensions/engine.storageBuffer.d.ts +2 -1
- package/Engines/Extensions/engine.storageBuffer.js.map +1 -1
- package/Engines/Extensions/engine.uniformBuffer.d.ts +4 -2
- package/Engines/Extensions/engine.uniformBuffer.js +2 -2
- package/Engines/Extensions/engine.uniformBuffer.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.storageBuffer.d.ts +2 -1
- package/Engines/WebGPU/Extensions/engine.storageBuffer.js +3 -3
- package/Engines/WebGPU/Extensions/engine.storageBuffer.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.uniformBuffer.js +5 -5
- package/Engines/WebGPU/Extensions/engine.uniformBuffer.js.map +1 -1
- package/Engines/WebGPU/webgpuBufferManager.d.ts +3 -2
- package/Engines/WebGPU/webgpuBufferManager.js +16 -3
- package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +2 -0
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +63 -2
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuConstants.d.ts +5 -4
- package/Engines/WebGPU/webgpuConstants.js +15 -15
- package/Engines/WebGPU/webgpuConstants.js.map +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
- package/Engines/WebGPU/webgpuPipelineContext.d.ts +3 -0
- package/Engines/WebGPU/webgpuPipelineContext.js +1 -0
- package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuQuerySet.js +3 -3
- package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.d.ts +3 -0
- package/Engines/WebGPU/webgpuShaderProcessor.js +5 -0
- package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +11 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +3 -0
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +32 -4
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -0
- package/Engines/WebGPU/webgpuTextureHelper.js +32 -34
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
- package/Engines/engine.d.ts +32 -32
- package/Engines/nativeEngine.d.ts +2 -2
- package/Engines/nativeEngine.js +5 -2
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/thinEngine.d.ts +7 -3
- package/Engines/thinEngine.js +11 -7
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +9 -4
- package/Engines/webgpuEngine.js +16 -11
- package/Engines/webgpuEngine.js.map +1 -1
- package/FlowGraph/flowGraph.js +1 -1
- package/FlowGraph/flowGraph.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.js +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +1 -1
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.d.ts +4 -0
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.js +21 -0
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.d.ts +4 -1
- package/Materials/Textures/Procedurals/proceduralTexture.js +10 -8
- package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
- package/Materials/Textures/equiRectangularCubeTexture.js +1 -1
- package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
- package/Materials/Textures/texture.d.ts +2 -0
- package/Materials/Textures/texture.js +8 -0
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/Textures/videoTexture.d.ts +4 -0
- package/Materials/Textures/videoTexture.js +21 -0
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/effect.d.ts +8 -3
- package/Materials/effect.js +25 -19
- package/Materials/effect.js.map +1 -1
- package/Materials/material.js +8 -6
- package/Materials/material.js.map +1 -1
- package/Materials/meshDebugPluginMaterial.js +1 -1
- package/Materials/meshDebugPluginMaterial.js.map +1 -1
- package/Materials/uniformBuffer.d.ts +1 -0
- package/Materials/uniformBuffer.js +10 -3
- package/Materials/uniformBuffer.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.d.ts +66 -0
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +100 -0
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Instances/instantiateBlock.d.ts +5 -30
- package/Meshes/Node/Blocks/Instances/instantiateBlock.js +2 -52
- package/Meshes/Node/Blocks/Instances/instantiateBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateLinearBlock.d.ts +31 -0
- package/Meshes/Node/Blocks/Instances/instantiateLinearBlock.js +101 -0
- package/Meshes/Node/Blocks/Instances/instantiateLinearBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.d.ts +4 -4
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js +4 -4
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateRadialBlock.d.ts +43 -0
- package/Meshes/Node/Blocks/Instances/instantiateRadialBlock.js +139 -0
- package/Meshes/Node/Blocks/Instances/instantiateRadialBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Sources/meshBlock.d.ts +4 -0
- package/Meshes/Node/Blocks/Sources/meshBlock.js +18 -0
- package/Meshes/Node/Blocks/Sources/meshBlock.js.map +1 -1
- package/Meshes/Node/Blocks/booleanGeometryBlock.js +20 -0
- package/Meshes/Node/Blocks/booleanGeometryBlock.js.map +1 -1
- package/Meshes/Node/index.d.ts +2 -0
- package/Meshes/Node/index.js +2 -0
- package/Meshes/Node/index.js.map +1 -1
- package/Meshes/geometry.js +8 -2
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/mesh.d.ts +10 -0
- package/Meshes/mesh.js +33 -0
- package/Meshes/mesh.js.map +1 -1
- package/Misc/tools.d.ts +0 -1
- package/Misc/tools.js +1 -5
- package/Misc/tools.js.map +1 -1
- package/Misc/videoRecorder.js +3 -3
- package/Misc/videoRecorder.js.map +1 -1
- package/Physics/physicsHelper.js +3 -3
- package/Physics/physicsHelper.js.map +1 -1
- package/Physics/v2/Plugins/havokPlugin.js +64 -56
- package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +7 -0
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js +6 -0
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.js +3 -0
- package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.js +6 -0
- package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderer.js +4 -4
- package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.d.ts +4 -0
- package/Rendering/geometryBufferRenderer.js +7 -0
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +4 -4
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +42 -42
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
- package/Shaders/geometry.fragment.js +4 -0
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/geometry.vertex.js +4 -0
- package/Shaders/geometry.vertex.js.map +1 -1
- package/XR/features/WebXRSpaceWarp.d.ts +2 -0
- package/XR/features/WebXRSpaceWarp.js +6 -1
- package/XR/features/WebXRSpaceWarp.js.map +1 -1
- package/XR/webXRSessionManager.js +1 -1
- package/XR/webXRSessionManager.js.map +1 -1
- package/package.json +1 -1
- package/scene.js +4 -4
- package/scene.js.map +1 -1
|
@@ -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
|
|
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,
|
|
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"]}
|
|
@@ -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
|
|
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,
|
|
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"]}
|
|
@@ -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
|
|
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,
|
|
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,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
|
|
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,
|
|
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
|
-
//
|
|
728
|
-
|
|
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
|
-
|
|
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
|
*/
|