فهرست منبع

fix nullengine
Associated with #4626

David Catuhe 7 سال پیش
والد
کامیت
11ff7ccf06

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 42289 - 0
Playground/babylon.d.txt


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9432 - 9430
dist/preview release/babylon.d.ts


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 3 - 3
dist/preview release/babylon.js


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

@@ -100846,6 +100846,10 @@ var BABYLON;
         };
         NullEngine.prototype.releaseEffects = function () {
         };
+        NullEngine.prototype.displayLoadingUI = function () {
+        };
+        NullEngine.prototype.hideLoadingUI = function () {
+        };
         return NullEngine;
     }(BABYLON.Engine));
     BABYLON.NullEngine = NullEngine;

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

@@ -100813,6 +100813,10 @@ var BABYLON;
         };
         NullEngine.prototype.releaseEffects = function () {
         };
+        NullEngine.prototype.displayLoadingUI = function () {
+        };
+        NullEngine.prototype.hideLoadingUI = function () {
+        };
         return NullEngine;
     }(BABYLON.Engine));
     BABYLON.NullEngine = NullEngine;

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 3 - 3
dist/preview release/babylon.worker.js


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

@@ -100813,6 +100813,10 @@ var BABYLON;
         };
         NullEngine.prototype.releaseEffects = function () {
         };
+        NullEngine.prototype.displayLoadingUI = function () {
+        };
+        NullEngine.prototype.hideLoadingUI = function () {
+        };
         return NullEngine;
     }(BABYLON.Engine));
     BABYLON.NullEngine = NullEngine;

+ 23 - 22
dist/preview release/viewer/babylon.viewer.d.ts

@@ -19,6 +19,7 @@ declare module BabylonViewer {
     
     
     
+    
     /**
         * BabylonJS Viewer
         *
@@ -947,6 +948,28 @@ declare module BabylonViewer {
 }
 
 declare module BabylonViewer {
+    
+    export interface IViewerTemplatePlugin {
+        readonly templateName: string;
+        readonly eventsToAttach?: Array<string>;
+        interactionPredicate(event: EventCallback): boolean;
+        onEvent?(event: EventCallback): void;
+        addHTMLTemplate?(template: Template): void;
+    }
+    export abstract class AbstractViewerNavbarButton implements IViewerTemplatePlugin {
+        readonly templateName: string;
+        readonly eventsToAttach: Array<string>;
+        protected _prepend: boolean;
+        protected abstract _buttonClass: string;
+        protected abstract _htmlTemplate: string;
+        interactionPredicate(event: EventCallback): boolean;
+        abstract onEvent(event: EventCallback): void;
+        addHTMLTemplate(template: Template): void;
+        protected _generateHTMLElement(template: Template): Element | DocumentFragment;
+    }
+}
+
+declare module BabylonViewer {
     /**
         * Will attach an init function the the DOMContentLoaded event.
         * The init function will be removed automatically after the event was triggered.
@@ -1230,28 +1253,6 @@ declare module BabylonViewer {
 
 declare module BabylonViewer {
     
-    export interface IViewerTemplatePlugin {
-        readonly templateName: string;
-        readonly eventsToAttach?: Array<string>;
-        interactionPredicate(event: EventCallback): boolean;
-        onEvent?(event: EventCallback): void;
-        addHTMLTemplate?(template: Template): void;
-    }
-    export abstract class AbstractViewerNavbarButton implements IViewerTemplatePlugin {
-        readonly templateName: string;
-        readonly eventsToAttach: Array<string>;
-        protected _prepend: boolean;
-        protected abstract _buttonClass: string;
-        protected abstract _htmlTemplate: string;
-        interactionPredicate(event: EventCallback): boolean;
-        abstract onEvent(event: EventCallback): void;
-        addHTMLTemplate(template: Template): void;
-        protected _generateHTMLElement(template: Template): Element | DocumentFragment;
-    }
-}
-
-declare module BabylonViewer {
-    
     
     
     

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 16 - 16
dist/preview release/viewer/babylon.viewer.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 196 - 183
dist/preview release/viewer/babylon.viewer.max.js


+ 41 - 40
dist/preview release/viewer/babylon.viewer.module.d.ts

@@ -19,6 +19,7 @@ declare module 'babylonjs-viewer' {
     import { ViewerModel, ModelState } from 'babylonjs-viewer/model/viewerModel';
     import { AnimationPlayMode, AnimationState } from 'babylonjs-viewer/model/modelAnimation';
     import { ILoaderPlugin } from 'babylonjs-viewer/loader/plugins/loaderPlugin';
+    import { AbstractViewerNavbarButton } from 'babylonjs-viewer/templating/viewerTemplatePlugin';
     /**
         * BabylonJS Viewer
         *
@@ -34,7 +35,7 @@ declare module 'babylonjs-viewer' {
         */
     function disposeAll(): void;
     const Version: string;
-    export { BABYLON, Version, InitTags, DefaultViewer, AbstractViewer, viewerGlobals, telemetryManager, disableInit, viewerManager, mapperManager, disposeAll, ModelLoader, ViewerModel, AnimationPlayMode, AnimationState, ModelState, ILoaderPlugin };
+    export { BABYLON, Version, InitTags, DefaultViewer, AbstractViewer, viewerGlobals, telemetryManager, disableInit, viewerManager, mapperManager, disposeAll, ModelLoader, ViewerModel, AnimationPlayMode, AnimationState, ModelState, ILoaderPlugin, AbstractViewerNavbarButton };
     export * from 'babylonjs-viewer/configuration';
 }
 
@@ -515,11 +516,11 @@ declare module 'babylonjs-viewer/managers/telemetryManager' {
 }
 
 declare module 'babylonjs-viewer/loader/modelLoader' {
-    import { IModelConfiguration } from "babylonjs-viewer/configuration/interfaces/modelConfiguration";
-    import { ViewerModel } from "babylonjs-viewer/model/viewerModel";
+    import { ConfigurationContainer } from 'babylonjs-viewer/configuration/configurationContainer';
+    import { IModelConfiguration } from 'babylonjs-viewer/configuration/interfaces/modelConfiguration';
+    import { ObservablesManager } from 'babylonjs-viewer/managers/observablesManager';
+    import { ViewerModel } from 'babylonjs-viewer/model/viewerModel';
     import { ILoaderPlugin } from 'babylonjs-viewer/loader/plugins';
-    import { ObservablesManager } from "babylonjs-viewer/managers/observablesManager";
-    import { ConfigurationContainer } from "babylonjs-viewer/configuration/configurationContainer";
     /**
         * An instance of the class is in charge of loading the model correctly.
         * This class will continously be expended with tasks required from the specific loaders Babylon has.
@@ -718,7 +719,7 @@ declare module 'babylonjs-viewer/model/viewerModel' {
 }
 
 declare module 'babylonjs-viewer/model/modelAnimation' {
-    import { AnimationGroup, Vector3 } from "babylonjs";
+    import { AnimationGroup, Vector3 } from 'babylonjs';
     /**
         * Animation play mode enum - is the animation looping or playing once
         */
@@ -946,6 +947,28 @@ declare module 'babylonjs-viewer/loader/plugins/loaderPlugin' {
     }
 }
 
+declare module 'babylonjs-viewer/templating/viewerTemplatePlugin' {
+    import { EventCallback, Template } from "babylonjs-viewer/templating/templateManager";
+    export interface IViewerTemplatePlugin {
+        readonly templateName: string;
+        readonly eventsToAttach?: Array<string>;
+        interactionPredicate(event: EventCallback): boolean;
+        onEvent?(event: EventCallback): void;
+        addHTMLTemplate?(template: Template): void;
+    }
+    export abstract class AbstractViewerNavbarButton implements IViewerTemplatePlugin {
+        readonly templateName: string;
+        readonly eventsToAttach: Array<string>;
+        protected _prepend: boolean;
+        protected abstract _buttonClass: string;
+        protected abstract _htmlTemplate: string;
+        interactionPredicate(event: EventCallback): boolean;
+        abstract onEvent(event: EventCallback): void;
+        addHTMLTemplate(template: Template): void;
+        protected _generateHTMLElement(template: Template): Element | DocumentFragment;
+    }
+}
+
 declare module 'babylonjs-viewer/initializer' {
     /**
         * Will attach an init function the the DOMContentLoaded event.
@@ -967,7 +990,7 @@ declare module 'babylonjs-viewer/configuration' {
 
 declare module 'babylonjs-viewer/configuration/configuration' {
     import { EngineOptions } from 'babylonjs';
-    import { IVRConfiguration, IObserversConfiguration, IModelConfiguration, ISceneConfiguration, ISceneOptimizerConfiguration, ICameraConfiguration, ISkyboxConfiguration, IGroundConfiguration, ILightConfiguration, IDefaultRenderingPipelineConfiguration, ITemplateConfiguration } from 'babylonjs-viewer/configuration/interfaces';
+    import { ICameraConfiguration, IDefaultRenderingPipelineConfiguration, IGroundConfiguration, ILightConfiguration, IModelConfiguration, IObserversConfiguration, ISceneConfiguration, ISceneOptimizerConfiguration, ISkyboxConfiguration, ITemplateConfiguration, IVRConfiguration } from 'babylonjs-viewer/configuration/interfaces';
     export function getConfigurationKey(key: string, configObject: any): any;
     export interface ViewerConfiguration {
             version?: string;
@@ -1228,28 +1251,6 @@ declare module 'babylonjs-viewer/templating/templateManager' {
     }
 }
 
-declare module 'babylonjs-viewer/templating/viewerTemplatePlugin' {
-    import { EventCallback, Template } from "babylonjs-viewer/templating/templateManager";
-    export interface IViewerTemplatePlugin {
-        readonly templateName: string;
-        readonly eventsToAttach?: Array<string>;
-        interactionPredicate(event: EventCallback): boolean;
-        onEvent?(event: EventCallback): void;
-        addHTMLTemplate?(template: Template): void;
-    }
-    export abstract class AbstractViewerNavbarButton implements IViewerTemplatePlugin {
-        readonly templateName: string;
-        readonly eventsToAttach: Array<string>;
-        protected _prepend: boolean;
-        protected abstract _buttonClass: string;
-        protected abstract _htmlTemplate: string;
-        interactionPredicate(event: EventCallback): boolean;
-        abstract onEvent(event: EventCallback): void;
-        addHTMLTemplate(template: Template): void;
-        protected _generateHTMLElement(template: Template): Element | DocumentFragment;
-    }
-}
-
 declare module 'babylonjs-viewer/managers/sceneManager' {
     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';
@@ -1463,8 +1464,8 @@ declare module 'babylonjs-viewer/configuration/loader' {
 }
 
 declare module 'babylonjs-viewer/managers/observablesManager' {
-    import { Observable, Scene, Engine, SceneLoaderProgressEvent, ISceneLoaderPlugin, ISceneLoaderPluginAsync } from "babylonjs";
-    import { ViewerModel } from "babylonjs-viewer/model/viewerModel";
+    import { Engine, ISceneLoaderPlugin, ISceneLoaderPluginAsync, Observable, Scene, SceneLoaderProgressEvent } from 'babylonjs';
+    import { ViewerModel } from 'babylonjs-viewer/model/viewerModel';
     export class ObservablesManager {
             /**
                 * Will notify when the scene was initialized
@@ -1761,10 +1762,10 @@ declare module 'babylonjs-viewer/loader/plugins/telemetryLoaderPlugin' {
 }
 
 declare module 'babylonjs-viewer/loader/plugins/msftLodLoaderPlugin' {
-    import { ILoaderPlugin } from "babylonjs-viewer/loader/plugins/loaderPlugin";
-    import { ViewerModel } from "babylonjs-viewer/model/viewerModel";
-    import { ISceneLoaderPlugin, ISceneLoaderPluginAsync } from "babylonjs";
-    import { IGLTFLoaderExtension } from "babylonjs-loaders";
+    import { ISceneLoaderPlugin, ISceneLoaderPluginAsync } from 'babylonjs';
+    import { IGLTFLoaderExtension } from 'babylonjs-loaders';
+    import { ViewerModel } from 'babylonjs-viewer/model/viewerModel';
+    import { ILoaderPlugin } from 'babylonjs-viewer/loader/plugins/loaderPlugin';
     /**
       * A loder plugin to use MSFT_lod extension correctly (glTF)
       */
@@ -1775,9 +1776,9 @@ declare module 'babylonjs-viewer/loader/plugins/msftLodLoaderPlugin' {
 }
 
 declare module 'babylonjs-viewer/loader/plugins/applyMaterialConfig' {
-    import { ILoaderPlugin } from "babylonjs-viewer/loader/plugins/loaderPlugin";
-    import { ViewerModel } from "babylonjs-viewer/model/viewerModel";
-    import { ISceneLoaderPlugin, ISceneLoaderPluginAsync, Material } from "babylonjs";
+    import { ISceneLoaderPlugin, ISceneLoaderPluginAsync, Material } from 'babylonjs';
+    import { ViewerModel } from 'babylonjs-viewer/model/viewerModel';
+    import { ILoaderPlugin } from 'babylonjs-viewer/loader/plugins/loaderPlugin';
     /**
       * Force-apply material configuration right after a material was loaded.
       */
@@ -1788,8 +1789,8 @@ declare module 'babylonjs-viewer/loader/plugins/applyMaterialConfig' {
 }
 
 declare module 'babylonjs-viewer/loader/plugins/extendedMaterialLoaderPlugin' {
-    import { ILoaderPlugin } from "babylonjs-viewer/loader/plugins/loaderPlugin";
-    import { Material } from "babylonjs";
+    import { Material } from 'babylonjs';
+    import { ILoaderPlugin } from 'babylonjs-viewer/loader/plugins/loaderPlugin';
     /**
       * A (PBR) material will be extended using this function.
       * This function will hold extra default configuration for the viewer, if not implemented in Babylon itself.

+ 1 - 1
gui/src/2D/controls/radioButton.ts

@@ -75,7 +75,7 @@ module BABYLON.GUI {
 
             this.onIsCheckedChangedObservable.notifyObservers(value);
 
-            if (this._isChecked) {
+            if (this._isChecked && this._host) {
                 // Update all controls from same group
                 this._host.executeOnAllControls((control) => {
                     if (control === this) {

+ 6 - 0
src/Engine/babylon.nullEngine.ts

@@ -442,5 +442,11 @@
 
         public releaseEffects() {
         }
+
+        public displayLoadingUI(): void {
+        }
+
+        public hideLoadingUI(): void {
+        }
     }
 }

+ 61 - 13
tests/nullEngine/app.js

@@ -160,16 +160,64 @@ var engine = new BABYLON.NullEngine();
 // new BABYLON.PBRMetallicRoughnessMaterial("asdfasf", scene);
 // scene.dispose();
 
-BABYLON.Tools.LogLevels = BABYLON.Tools.ErrorLogLevel & BABYLON.Tools.WarningLogLevel;
-const scene = new BABYLON.Scene(engine);
-BABYLON.ParticleHelper.CreateAsync("sun", scene)
-            .then((system) => {
-                console.log("ok");
-            });
-
-const camera = new BABYLON.ArcRotateCamera("camera", 0, 0, 10, BABYLON.Vector3.Zero(), scene);
-const mesh = BABYLON.MeshBuilder.CreateBox("box", {}, scene);
-mesh.position.set(0.5, 0.5, 0.5);
-mesh.isPickable = true;
-scene.render();
-engine.dispose();
+// BABYLON.Tools.LogLevels = BABYLON.Tools.ErrorLogLevel & BABYLON.Tools.WarningLogLevel;
+// const scene = new BABYLON.Scene(engine);
+// BABYLON.ParticleHelper.CreateAsync("sun", scene)
+//             .then((system) => {
+//                 console.log("ok");
+//             });
+
+// const camera = new BABYLON.ArcRotateCamera("camera", 0, 0, 10, BABYLON.Vector3.Zero(), scene);
+// const mesh = BABYLON.MeshBuilder.CreateBox("box", {}, scene);
+// mesh.position.set(0.5, 0.5, 0.5);
+// mesh.isPickable = true;
+// scene.render();
+// engine.dispose();
+
+var scene = new BABYLON.Scene(engine);
+var light = new BABYLON.PointLight("Omni", new BABYLON.Vector3(20, 20, 100), scene);
+
+var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0.8, 100, BABYLON.Vector3.Zero(), scene);
+
+var assetsManager = new BABYLON.AssetsManager(scene);
+var meshTask = assetsManager.addMeshTask("skull task", "", "https://raw.githubusercontent.com/RaggarDK/Baby/baby/", "he4.babylon");
+
+meshTask.onSuccess = function (task) {
+    
+    //0 = ground plane, 1,2,3 = boxes
+    for(var i=1;i<task.loadedMeshes.length;i++){
+        var mesh = task.loadedMeshes[i];
+        //mesh.computeWorldMatrix(true);
+
+        var position = mesh.position.clone();
+        var rotation = mesh.rotationQuaternion.clone();
+        var scaling = mesh.getBoundingInfo().boundingBox.extendSize;
+        var centerWorld = mesh.getBoundingInfo().boundingBox.centerWorld;
+        console.log(position);
+        console.log(mesh.getBoundingInfo());
+
+        var box = BABYLON.MeshBuilder.CreateBox("box"+i,{height:2,width:2,depth:2});
+        box.scaling.copyFromFloats(scaling.x,scaling.y,scaling.z);    
+        box.rotationQuaternion = rotation;
+        //box.position = position;
+        box.position.set(centerWorld.x,centerWorld.y,centerWorld.z);
+
+        var material = new BABYLON.StandardMaterial("mat", scene);
+        material.diffuseColor = new BABYLON.Color3(0.5,1,0.5); 
+        box.material = material;       
+
+    }
+
+}	
+
+scene.registerBeforeRender(function () {
+    light.position = camera.position;
+});
+
+assetsManager.onFinish = function (tasks) {
+    engine.runRenderLoop(function () {
+        scene.render();
+    });
+};
+
+assetsManager.load();