瀏覽代碼

Merge pull request #4597 from RaananW/3.3.0-alpha.9

3.3.0-alpha.9
Raanan Weber 7 年之前
父節點
當前提交
79427d1555

文件差異過大導致無法顯示
+ 8535 - 8534
dist/preview release/babylon.d.ts


文件差異過大導致無法顯示
+ 16 - 16
dist/preview release/babylon.js


+ 4 - 5
dist/preview release/babylon.max.js

@@ -12142,7 +12142,7 @@ var BABYLON;
              * Returns the current version of the framework
              * Returns the current version of the framework
              */
              */
             get: function () {
             get: function () {
-                return "3.3.0-alpha.8";
+                return "3.3.0-alpha.9";
             },
             },
             enumerable: true,
             enumerable: true,
             configurable: true
             configurable: true
@@ -56620,10 +56620,6 @@ var BABYLON;
             if (parsedParticleSystem.preventAutoStart) {
             if (parsedParticleSystem.preventAutoStart) {
                 particleSystem.preventAutoStart = parsedParticleSystem.preventAutoStart;
                 particleSystem.preventAutoStart = parsedParticleSystem.preventAutoStart;
             }
             }
-            particleSystem.minEmitBox = BABYLON.Vector3.FromArray(parsedParticleSystem.minEmitBox);
-            particleSystem.maxEmitBox = BABYLON.Vector3.FromArray(parsedParticleSystem.maxEmitBox);
-            particleSystem.direction1 = BABYLON.Vector3.FromArray(parsedParticleSystem.direction1);
-            particleSystem.direction2 = BABYLON.Vector3.FromArray(parsedParticleSystem.direction2);
             ParticleSystem._Parse(parsedParticleSystem, particleSystem, scene, rootUrl);
             ParticleSystem._Parse(parsedParticleSystem, particleSystem, scene, rootUrl);
             particleSystem.textureMask = BABYLON.Color4.FromArray(parsedParticleSystem.textureMask);
             particleSystem.textureMask = BABYLON.Color4.FromArray(parsedParticleSystem.textureMask);
             particleSystem.startSpriteCellID = parsedParticleSystem.startSpriteCellID;
             particleSystem.startSpriteCellID = parsedParticleSystem.startSpriteCellID;
@@ -100210,6 +100206,9 @@ var BABYLON;
             };
             };
             return vbo;
             return vbo;
         };
         };
+        NullEngine.prototype.updateDynamicTexture = function (texture, canvas, invertY, premulAlpha, format) {
+            if (premulAlpha === void 0) { premulAlpha = false; }
+        };
         NullEngine.prototype.updateDynamicIndexBuffer = function (indexBuffer, indices, offset) {
         NullEngine.prototype.updateDynamicIndexBuffer = function (indexBuffer, indices, offset) {
             if (offset === void 0) { offset = 0; }
             if (offset === void 0) { offset = 0; }
         };
         };

+ 4 - 5
dist/preview release/babylon.no-module.max.js

@@ -12109,7 +12109,7 @@ var BABYLON;
              * Returns the current version of the framework
              * Returns the current version of the framework
              */
              */
             get: function () {
             get: function () {
-                return "3.3.0-alpha.8";
+                return "3.3.0-alpha.9";
             },
             },
             enumerable: true,
             enumerable: true,
             configurable: true
             configurable: true
@@ -56587,10 +56587,6 @@ var BABYLON;
             if (parsedParticleSystem.preventAutoStart) {
             if (parsedParticleSystem.preventAutoStart) {
                 particleSystem.preventAutoStart = parsedParticleSystem.preventAutoStart;
                 particleSystem.preventAutoStart = parsedParticleSystem.preventAutoStart;
             }
             }
-            particleSystem.minEmitBox = BABYLON.Vector3.FromArray(parsedParticleSystem.minEmitBox);
-            particleSystem.maxEmitBox = BABYLON.Vector3.FromArray(parsedParticleSystem.maxEmitBox);
-            particleSystem.direction1 = BABYLON.Vector3.FromArray(parsedParticleSystem.direction1);
-            particleSystem.direction2 = BABYLON.Vector3.FromArray(parsedParticleSystem.direction2);
             ParticleSystem._Parse(parsedParticleSystem, particleSystem, scene, rootUrl);
             ParticleSystem._Parse(parsedParticleSystem, particleSystem, scene, rootUrl);
             particleSystem.textureMask = BABYLON.Color4.FromArray(parsedParticleSystem.textureMask);
             particleSystem.textureMask = BABYLON.Color4.FromArray(parsedParticleSystem.textureMask);
             particleSystem.startSpriteCellID = parsedParticleSystem.startSpriteCellID;
             particleSystem.startSpriteCellID = parsedParticleSystem.startSpriteCellID;
@@ -100177,6 +100173,9 @@ var BABYLON;
             };
             };
             return vbo;
             return vbo;
         };
         };
+        NullEngine.prototype.updateDynamicTexture = function (texture, canvas, invertY, premulAlpha, format) {
+            if (premulAlpha === void 0) { premulAlpha = false; }
+        };
         NullEngine.prototype.updateDynamicIndexBuffer = function (indexBuffer, indices, offset) {
         NullEngine.prototype.updateDynamicIndexBuffer = function (indexBuffer, indices, offset) {
             if (offset === void 0) { offset = 0; }
             if (offset === void 0) { offset = 0; }
         };
         };

文件差異過大導致無法顯示
+ 16 - 16
dist/preview release/babylon.worker.js


+ 4 - 5
dist/preview release/es6.js

@@ -12109,7 +12109,7 @@ var BABYLON;
              * Returns the current version of the framework
              * Returns the current version of the framework
              */
              */
             get: function () {
             get: function () {
-                return "3.3.0-alpha.8";
+                return "3.3.0-alpha.9";
             },
             },
             enumerable: true,
             enumerable: true,
             configurable: true
             configurable: true
@@ -56587,10 +56587,6 @@ var BABYLON;
             if (parsedParticleSystem.preventAutoStart) {
             if (parsedParticleSystem.preventAutoStart) {
                 particleSystem.preventAutoStart = parsedParticleSystem.preventAutoStart;
                 particleSystem.preventAutoStart = parsedParticleSystem.preventAutoStart;
             }
             }
-            particleSystem.minEmitBox = BABYLON.Vector3.FromArray(parsedParticleSystem.minEmitBox);
-            particleSystem.maxEmitBox = BABYLON.Vector3.FromArray(parsedParticleSystem.maxEmitBox);
-            particleSystem.direction1 = BABYLON.Vector3.FromArray(parsedParticleSystem.direction1);
-            particleSystem.direction2 = BABYLON.Vector3.FromArray(parsedParticleSystem.direction2);
             ParticleSystem._Parse(parsedParticleSystem, particleSystem, scene, rootUrl);
             ParticleSystem._Parse(parsedParticleSystem, particleSystem, scene, rootUrl);
             particleSystem.textureMask = BABYLON.Color4.FromArray(parsedParticleSystem.textureMask);
             particleSystem.textureMask = BABYLON.Color4.FromArray(parsedParticleSystem.textureMask);
             particleSystem.startSpriteCellID = parsedParticleSystem.startSpriteCellID;
             particleSystem.startSpriteCellID = parsedParticleSystem.startSpriteCellID;
@@ -100177,6 +100173,9 @@ var BABYLON;
             };
             };
             return vbo;
             return vbo;
         };
         };
+        NullEngine.prototype.updateDynamicTexture = function (texture, canvas, invertY, premulAlpha, format) {
+            if (premulAlpha === void 0) { premulAlpha = false; }
+        };
         NullEngine.prototype.updateDynamicIndexBuffer = function (indexBuffer, indices, offset) {
         NullEngine.prototype.updateDynamicIndexBuffer = function (indexBuffer, indices, offset) {
             if (offset === void 0) { offset = 0; }
             if (offset === void 0) { offset = 0; }
         };
         };

+ 1 - 1
dist/preview release/glTF2Interface/package.json

@@ -1,7 +1,7 @@
 {
 {
     "name": "babylonjs-gltf2interface",
     "name": "babylonjs-gltf2interface",
     "description": "A typescript declaration of babylon's gltf2 inteface.",
     "description": "A typescript declaration of babylon's gltf2 inteface.",
-    "version": "3.3.0-alpha.8",
+    "version": "3.3.0-alpha.9",
     "repository": {
     "repository": {
         "type": "git",
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
         "url": "https://github.com/BabylonJS/Babylon.js.git"

+ 1 - 1
dist/preview release/gui/package.json

@@ -4,7 +4,7 @@
     },
     },
     "name": "babylonjs-gui",
     "name": "babylonjs-gui",
     "description": "The Babylon.js GUI library is an extension you can use to generate interactive user interface. It is build on top of the DynamicTexture.",
     "description": "The Babylon.js GUI library is an extension you can use to generate interactive user interface. It is build on top of the DynamicTexture.",
-    "version": "3.3.0-alpha.8",
+    "version": "3.3.0-alpha.9",
     "repository": {
     "repository": {
         "type": "git",
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
         "url": "https://github.com/BabylonJS/Babylon.js.git"

文件差異過大導致無法顯示
+ 2 - 2
dist/preview release/inspector/babylon.inspector.bundle.js


+ 1 - 1
dist/preview release/inspector/package.json

@@ -4,7 +4,7 @@
     },
     },
     "name": "babylonjs-inspector",
     "name": "babylonjs-inspector",
     "description": "The Babylon.js inspector.",
     "description": "The Babylon.js inspector.",
-    "version": "3.3.0-alpha.8",
+    "version": "3.3.0-alpha.9",
     "repository": {
     "repository": {
         "type": "git",
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
         "url": "https://github.com/BabylonJS/Babylon.js.git"

+ 2 - 2
dist/preview release/loaders/package.json

@@ -4,7 +4,7 @@
     },
     },
     "name": "babylonjs-loaders",
     "name": "babylonjs-loaders",
     "description": "The Babylon.js file loaders library is an extension you can use to load different 3D file types into a Babylon scene.",
     "description": "The Babylon.js file loaders library is an extension you can use to load different 3D file types into a Babylon scene.",
-    "version": "3.3.0-alpha.8",
+    "version": "3.3.0-alpha.9",
     "repository": {
     "repository": {
         "type": "git",
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
         "url": "https://github.com/BabylonJS/Babylon.js.git"
@@ -27,7 +27,7 @@
     ],
     ],
     "license": "Apache-2.0",
     "license": "Apache-2.0",
     "dependencies": {
     "dependencies": {
-        "babylonjs-gltf2interface": "3.3.0-alpha.8"
+        "babylonjs-gltf2interface": "3.3.0-alpha.9"
     },
     },
     "peerDependencies": {
     "peerDependencies": {
         "babylonjs": ">=3.2.0-alpha"
         "babylonjs": ">=3.2.0-alpha"

+ 1 - 1
dist/preview release/materialsLibrary/package.json

@@ -4,7 +4,7 @@
     },
     },
     "name": "babylonjs-materials",
     "name": "babylonjs-materials",
     "description": "The Babylon.js materials library is a collection of advanced materials to be used in a Babylon.js scene.",
     "description": "The Babylon.js materials library is a collection of advanced materials to be used in a Babylon.js scene.",
-    "version": "3.3.0-alpha.8",
+    "version": "3.3.0-alpha.9",
     "repository": {
     "repository": {
         "type": "git",
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
         "url": "https://github.com/BabylonJS/Babylon.js.git"

+ 1 - 1
dist/preview release/postProcessesLibrary/package.json

@@ -4,7 +4,7 @@
     },
     },
     "name": "babylonjs-post-process",
     "name": "babylonjs-post-process",
     "description": "The Babylon.js materials library is a collection of advanced materials to be used in a Babylon.js scene.",
     "description": "The Babylon.js materials library is a collection of advanced materials to be used in a Babylon.js scene.",
-    "version": "3.3.0-alpha.8",
+    "version": "3.3.0-alpha.9",
     "repository": {
     "repository": {
         "type": "git",
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
         "url": "https://github.com/BabylonJS/Babylon.js.git"

+ 1 - 1
dist/preview release/proceduralTexturesLibrary/package.json

@@ -4,7 +4,7 @@
     },
     },
     "name": "babylonjs-procedural-textures",
     "name": "babylonjs-procedural-textures",
     "description": "The Babylon.js materials library is a collection of advanced materials to be used in a Babylon.js scene.",
     "description": "The Babylon.js materials library is a collection of advanced materials to be used in a Babylon.js scene.",
-    "version": "3.3.0-alpha.8",
+    "version": "3.3.0-alpha.9",
     "repository": {
     "repository": {
         "type": "git",
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
         "url": "https://github.com/BabylonJS/Babylon.js.git"

+ 2 - 2
dist/preview release/serializers/package.json

@@ -4,7 +4,7 @@
     },
     },
     "name": "babylonjs-serializers",
     "name": "babylonjs-serializers",
     "description": "The Babylon.js serializers library is an extension you can use to serialize Babylon scenes.",
     "description": "The Babylon.js serializers library is an extension you can use to serialize Babylon scenes.",
-    "version": "3.3.0-alpha.8",
+    "version": "3.3.0-alpha.9",
     "repository": {
     "repository": {
         "type": "git",
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
         "url": "https://github.com/BabylonJS/Babylon.js.git"
@@ -27,7 +27,7 @@
     ],
     ],
     "license": "Apache-2.0",
     "license": "Apache-2.0",
     "dependencies": {
     "dependencies": {
-        "babylonjs-gltf2interface": "3.3.0-alpha.8"
+        "babylonjs-gltf2interface": "3.3.0-alpha.9"
     },
     },
     "peerDependencies": {
     "peerDependencies": {
         "babylonjs": ">=3.2.0-alpha"
         "babylonjs": ">=3.2.0-alpha"

+ 30 - 0
dist/preview release/viewer/babylon.viewer.d.ts

@@ -158,6 +158,7 @@ declare module BabylonViewer {
         */
         */
     export class DefaultViewer extends AbstractViewer {
     export class DefaultViewer extends AbstractViewer {
             containerElement: HTMLElement;
             containerElement: HTMLElement;
+            fullscreenElement?: HTMLElement;
             /**
             /**
                 * Create a new default viewer
                 * Create a new default viewer
                 * @param containerElement the element in which the templates will be rendered
                 * @param containerElement the element in which the templates will be rendered
@@ -169,6 +170,7 @@ declare module BabylonViewer {
                 */
                 */
             protected _onTemplatesLoaded(): Promise<AbstractViewer>;
             protected _onTemplatesLoaded(): Promise<AbstractViewer>;
             toggleHD(): void;
             toggleHD(): void;
+            toggleVR(): void;
             /**
             /**
                 * Toggle fullscreen of the entire viewer
                 * Toggle fullscreen of the entire viewer
                 */
                 */
@@ -369,6 +371,9 @@ declare module BabylonViewer {
             forceResize(): void;
             forceResize(): void;
             protected _hdToggled: boolean;
             protected _hdToggled: boolean;
             toggleHD(): void;
             toggleHD(): void;
+            protected _vrToggled: boolean;
+            protected _vrScale: number;
+            toggleVR(): void;
             /**
             /**
                 * The resize function that will be registered with the window object
                 * The resize function that will be registered with the window object
                 */
                 */
@@ -1010,6 +1015,7 @@ declare module BabylonViewer {
                     minecraft?: boolean;
                     minecraft?: boolean;
                     [propName: string]: boolean | undefined;
                     [propName: string]: boolean | undefined;
             };
             };
+            vr?: IVRConfiguration;
             lab?: {
             lab?: {
                     flashlight?: boolean | {
                     flashlight?: boolean | {
                             exponent?: number;
                             exponent?: number;
@@ -1272,6 +1278,10 @@ declare module BabylonViewer {
                     ground?: IGroundConfiguration | boolean;
                     ground?: IGroundConfiguration | boolean;
             }>>;
             }>>;
             /**
             /**
+                * Will notify after the model(s) were configured. Can be used to further configure models
+                */
+            onVRConfiguredObservable: BABYLON.Observable<IPostConfigurationCallback<BABYLON.VRExperienceHelper, IVRConfiguration>>;
+            /**
                 * The Babylon BABYLON.Scene of this viewer
                 * The Babylon BABYLON.Scene of this viewer
                 */
                 */
             scene: BABYLON.Scene;
             scene: BABYLON.Scene;
@@ -1304,6 +1314,8 @@ declare module BabylonViewer {
                 */
                 */
             labs: ViewerLabs;
             labs: ViewerLabs;
             readonly defaultRenderingPipeline: BABYLON.Nullable<BABYLON.DefaultRenderingPipeline>;
             readonly defaultRenderingPipeline: BABYLON.Nullable<BABYLON.DefaultRenderingPipeline>;
+            protected _vrHelper?: BABYLON.VRExperienceHelper;
+            readonly vrHelper: BABYLON.VRExperienceHelper | undefined;
             constructor(_engine: BABYLON.Engine, _configurationContainer: ConfigurationContainer, _observablesManager?: ObservablesManager | undefined);
             constructor(_engine: BABYLON.Engine, _configurationContainer: ConfigurationContainer, _observablesManager?: ObservablesManager | undefined);
             /**
             /**
                 * Returns a boolean representing HDR support
                 * Returns a boolean representing HDR support
@@ -1361,6 +1373,11 @@ declare module BabylonViewer {
                 */
                 */
             protected _configureOptimizer(optimizerConfig: ISceneOptimizerConfiguration | boolean): void;
             protected _configureOptimizer(optimizerConfig: ISceneOptimizerConfiguration | boolean): void;
             /**
             /**
+                * configure all models using the configuration.
+                * @param modelConfiguration the configuration to use to reconfigure the models
+                */
+            protected _configureVR(vrConfig: IVRConfiguration): void;
+            /**
                 * (Re) configure the camera. The camera will only be created once and from this point will only be reconfigured.
                 * (Re) configure the camera. The camera will only be created once and from this point will only be reconfigured.
                 * @param cameraConfig the new camera configuration
                 * @param cameraConfig the new camera configuration
                 * @param model optionally use the model to configure the camera.
                 * @param model optionally use the model to configure the camera.
@@ -1588,6 +1605,7 @@ declare module BabylonViewer {
     export * from 'babylonjs-viewer/configuration/interfaces/sceneOptimizerConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/sceneOptimizerConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/skyboxConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/skyboxConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/templateConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/templateConfiguration';
+    export * from 'babylonjs-viewer/configuration/interfaces/vrConfiguration';
 }
 }
 
 
 declare module BabylonViewer {
 declare module BabylonViewer {
@@ -2214,6 +2232,18 @@ declare module BabylonViewer {
 
 
 declare module BabylonViewer {
 declare module BabylonViewer {
     
     
+    export interface IVRConfiguration {
+        disabled?: boolean;
+        objectScaleFactor?: number;
+        disableInteractions?: boolean;
+        disableTeleportation?: boolean;
+        overrideFloorMeshName?: string;
+        vrOptions?: BABYLON.VRExperienceHelperOptions;
+    }
+}
+
+declare module BabylonViewer {
+    
     
     
     /**
     /**
         * Spherical polynomial coefficients (counter part to spherical harmonic coefficients used in shader irradiance calculation)
         * Spherical polynomial coefficients (counter part to spherical harmonic coefficients used in shader irradiance calculation)

文件差異過大導致無法顯示
+ 30 - 29
dist/preview release/viewer/babylon.viewer.js


文件差異過大導致無法顯示
+ 202 - 33
dist/preview release/viewer/babylon.viewer.max.js


+ 33 - 3
dist/preview release/viewer/babylon.viewer.module.d.ts

@@ -158,6 +158,7 @@ declare module 'babylonjs-viewer/viewer/defaultViewer' {
         */
         */
     export class DefaultViewer extends AbstractViewer {
     export class DefaultViewer extends AbstractViewer {
             containerElement: HTMLElement;
             containerElement: HTMLElement;
+            fullscreenElement?: HTMLElement;
             /**
             /**
                 * Create a new default viewer
                 * Create a new default viewer
                 * @param containerElement the element in which the templates will be rendered
                 * @param containerElement the element in which the templates will be rendered
@@ -169,6 +170,7 @@ declare module 'babylonjs-viewer/viewer/defaultViewer' {
                 */
                 */
             protected _onTemplatesLoaded(): Promise<AbstractViewer>;
             protected _onTemplatesLoaded(): Promise<AbstractViewer>;
             toggleHD(): void;
             toggleHD(): void;
+            toggleVR(): void;
             /**
             /**
                 * Toggle fullscreen of the entire viewer
                 * Toggle fullscreen of the entire viewer
                 */
                 */
@@ -369,6 +371,9 @@ declare module 'babylonjs-viewer/viewer/viewer' {
             forceResize(): void;
             forceResize(): void;
             protected _hdToggled: boolean;
             protected _hdToggled: boolean;
             toggleHD(): void;
             toggleHD(): void;
+            protected _vrToggled: boolean;
+            protected _vrScale: number;
+            toggleVR(): void;
             /**
             /**
                 * The resize function that will be registered with the window object
                 * The resize function that will be registered with the window object
                 */
                 */
@@ -961,7 +966,7 @@ declare module 'babylonjs-viewer/configuration' {
 
 
 declare module 'babylonjs-viewer/configuration/configuration' {
 declare module 'babylonjs-viewer/configuration/configuration' {
     import { EngineOptions } from 'babylonjs';
     import { EngineOptions } from 'babylonjs';
-    import { IObserversConfiguration, IModelConfiguration, ISceneConfiguration, ISceneOptimizerConfiguration, ICameraConfiguration, ISkyboxConfiguration, IGroundConfiguration, ILightConfiguration, IDefaultRenderingPipelineConfiguration, ITemplateConfiguration } from 'babylonjs-viewer/configuration/interfaces';
+    import { IVRConfiguration, IObserversConfiguration, IModelConfiguration, ISceneConfiguration, ISceneOptimizerConfiguration, ICameraConfiguration, ISkyboxConfiguration, IGroundConfiguration, ILightConfiguration, IDefaultRenderingPipelineConfiguration, ITemplateConfiguration } from 'babylonjs-viewer/configuration/interfaces';
     export function getConfigurationKey(key: string, configObject: any): any;
     export function getConfigurationKey(key: string, configObject: any): any;
     export interface ViewerConfiguration {
     export interface ViewerConfiguration {
             version?: string;
             version?: string;
@@ -1010,6 +1015,7 @@ declare module 'babylonjs-viewer/configuration/configuration' {
                     minecraft?: boolean;
                     minecraft?: boolean;
                     [propName: string]: boolean | undefined;
                     [propName: string]: boolean | undefined;
             };
             };
+            vr?: IVRConfiguration;
             lab?: {
             lab?: {
                     flashlight?: boolean | {
                     flashlight?: boolean | {
                             exponent?: number;
                             exponent?: number;
@@ -1220,8 +1226,8 @@ declare module 'babylonjs-viewer/templating/templateManager' {
 }
 }
 
 
 declare module 'babylonjs-viewer/managers/sceneManager' {
 declare module 'babylonjs-viewer/managers/sceneManager' {
-    import { Scene, ArcRotateCamera, Engine, Light, SceneOptimizer, EnvironmentHelper, Color3, Observable, DefaultRenderingPipeline, Nullable } from 'babylonjs';
-    import { ILightConfiguration, ISceneConfiguration, ISceneOptimizerConfiguration, ICameraConfiguration, ISkyboxConfiguration, ViewerConfiguration, IGroundConfiguration, IModelConfiguration } from 'babylonjs-viewer/configuration';
+    import { Scene, ArcRotateCamera, Engine, Light, SceneOptimizer, EnvironmentHelper, Color3, Observable, DefaultRenderingPipeline, Nullable, VRExperienceHelper } from 'babylonjs';
+    import { ILightConfiguration, ISceneConfiguration, ISceneOptimizerConfiguration, ICameraConfiguration, ISkyboxConfiguration, ViewerConfiguration, IGroundConfiguration, IModelConfiguration, IVRConfiguration } from 'babylonjs-viewer/configuration';
     import { ViewerModel } from 'babylonjs-viewer/model/viewerModel';
     import { ViewerModel } from 'babylonjs-viewer/model/viewerModel';
     import { ViewerLabs } from 'babylonjs-viewer/labs/viewerLabs';
     import { ViewerLabs } from 'babylonjs-viewer/labs/viewerLabs';
     import { ObservablesManager } from 'babylonjs-viewer/managers/observablesManager';
     import { ObservablesManager } from 'babylonjs-viewer/managers/observablesManager';
@@ -1272,6 +1278,10 @@ declare module 'babylonjs-viewer/managers/sceneManager' {
                     ground?: IGroundConfiguration | boolean;
                     ground?: IGroundConfiguration | boolean;
             }>>;
             }>>;
             /**
             /**
+                * Will notify after the model(s) were configured. Can be used to further configure models
+                */
+            onVRConfiguredObservable: Observable<IPostConfigurationCallback<VRExperienceHelper, IVRConfiguration>>;
+            /**
                 * The Babylon Scene of this viewer
                 * The Babylon Scene of this viewer
                 */
                 */
             scene: Scene;
             scene: Scene;
@@ -1304,6 +1314,8 @@ declare module 'babylonjs-viewer/managers/sceneManager' {
                 */
                 */
             labs: ViewerLabs;
             labs: ViewerLabs;
             readonly defaultRenderingPipeline: Nullable<DefaultRenderingPipeline>;
             readonly defaultRenderingPipeline: Nullable<DefaultRenderingPipeline>;
+            protected _vrHelper?: VRExperienceHelper;
+            readonly vrHelper: VRExperienceHelper | undefined;
             constructor(_engine: Engine, _configurationContainer: ConfigurationContainer, _observablesManager?: ObservablesManager | undefined);
             constructor(_engine: Engine, _configurationContainer: ConfigurationContainer, _observablesManager?: ObservablesManager | undefined);
             /**
             /**
                 * Returns a boolean representing HDR support
                 * Returns a boolean representing HDR support
@@ -1361,6 +1373,11 @@ declare module 'babylonjs-viewer/managers/sceneManager' {
                 */
                 */
             protected _configureOptimizer(optimizerConfig: ISceneOptimizerConfiguration | boolean): void;
             protected _configureOptimizer(optimizerConfig: ISceneOptimizerConfiguration | boolean): void;
             /**
             /**
+                * configure all models using the configuration.
+                * @param modelConfiguration the configuration to use to reconfigure the models
+                */
+            protected _configureVR(vrConfig: IVRConfiguration): void;
+            /**
                 * (Re) configure the camera. The camera will only be created once and from this point will only be reconfigured.
                 * (Re) configure the camera. The camera will only be created once and from this point will only be reconfigured.
                 * @param cameraConfig the new camera configuration
                 * @param cameraConfig the new camera configuration
                 * @param model optionally use the model to configure the camera.
                 * @param model optionally use the model to configure the camera.
@@ -1588,6 +1605,7 @@ declare module 'babylonjs-viewer/configuration/interfaces' {
     export * from 'babylonjs-viewer/configuration/interfaces/sceneOptimizerConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/sceneOptimizerConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/skyboxConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/skyboxConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/templateConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/templateConfiguration';
+    export * from 'babylonjs-viewer/configuration/interfaces/vrConfiguration';
 }
 }
 
 
 declare module 'babylonjs-viewer/templating/eventManager' {
 declare module 'babylonjs-viewer/templating/eventManager' {
@@ -2212,6 +2230,18 @@ declare module 'babylonjs-viewer/configuration/interfaces/templateConfiguration'
     }
     }
 }
 }
 
 
+declare module 'babylonjs-viewer/configuration/interfaces/vrConfiguration' {
+    import { VRExperienceHelperOptions } from "babylonjs";
+    export interface IVRConfiguration {
+        disabled?: boolean;
+        objectScaleFactor?: number;
+        disableInteractions?: boolean;
+        disableTeleportation?: boolean;
+        overrideFloorMeshName?: string;
+        vrOptions?: VRExperienceHelperOptions;
+    }
+}
+
 declare module 'babylonjs-viewer/labs/environmentSerializer' {
 declare module 'babylonjs-viewer/labs/environmentSerializer' {
     import { Vector3 } from "babylonjs";
     import { Vector3 } from "babylonjs";
     import { TextureCube } from 'babylonjs-viewer/labs/texture';
     import { TextureCube } from 'babylonjs-viewer/labs/texture';

+ 1 - 1
package.json

@@ -9,7 +9,7 @@
     ],
     ],
     "name": "babylonjs",
     "name": "babylonjs",
     "description": "Babylon.js is a JavaScript 3D engine based on webgl.",
     "description": "Babylon.js is a JavaScript 3D engine based on webgl.",
-    "version": "3.3.0-alpha.8",
+    "version": "3.3.0-alpha.9",
     "repository": {
     "repository": {
         "type": "git",
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
         "url": "https://github.com/BabylonJS/Babylon.js.git"

+ 1 - 1
src/Engine/babylon.engine.ts

@@ -710,7 +710,7 @@
          * Returns the current version of the framework
          * Returns the current version of the framework
          */
          */
         public static get Version(): string {
         public static get Version(): string {
-            return "3.3.0-alpha.8";
+            return "3.3.0-alpha.9";
         }
         }
 
 
         // Updatable statics so stick with vars here
         // Updatable statics so stick with vars here