Explorar o código

Creating a method to create default camera and light if not found in loaded scene.
Sandbox can now load a scene without camera or light, they will be created if not found in babylon file.

Nicolas Obré %!s(int64=11) %!d(string=hai) anos
pai
achega
6e56bb6c2a

+ 1 - 10
Tools/BuildOurOwnBabylonJS/BuildOurOwnBabylonJSServer/Views/BabylonJSDemo/Index.cshtml

@@ -7,14 +7,7 @@
 <script type="text/javascript">
     $(document).ready(function () {
         BABYLON.SceneLoader.Load("@Html.Raw(this.BabylonJSSamplesFile("Scenes/" + (string)ViewBag.DemoFolderName))" + "@Url.Encode("/")", "@ViewBag.DemoFile", OURBABYLON.engine, function (scene) {
-
-            if (!scene.activeCamera) {
-                scene.activeCamera = new BABYLON.ArcRotateCamera("DefaultCamera", Math.PI / 2, 0, 10, new BABYLON.Vector3.Zero(), scene);
-                scene.activeCamera.zoomOn();
-            }
-            if (scene.lights.length == 0) {
-                var light = new BABYLON.HemisphericLight("Default light", new BABYLON.Vector3(0, 1, 0), scene);
-            }
+            OURBABYLON.sceneInitialization(scene);
             scene.activeCamera.attachControl(OURBABYLON.canvas);
 
             // Render loop
@@ -24,8 +17,6 @@
 
             // Launch render loop
             scene.getEngine().runRenderLoop(renderLoop);
-
-            OURBABYLON.currentScene = scene;
         });
     });
 </script>

+ 1 - 2
Tools/BuildOurOwnBabylonJS/BuildOurOwnBabylonJSServer/Views/SandBox/Index.cshtml

@@ -6,8 +6,7 @@
 <script type="text/javascript">
     $(document).ready(function () {
         var filesInput = new BABYLON.FilesInput(OURBABYLON.engine, OURBABYLON.currentScene, OURBABYLON.canvas, function (sceneFile, babylonScene) {
-            OURBABYLON.currentScene = babylonScene;
-            //babylonScene.activeCamera.attachControl(OURBABYLON.canvas);
+            OURBABYLON.sceneInitialization(babylonScene, true);
         });
         filesInput.monitorElementForDragNDrop(OURBABYLON.canvas);
     });

+ 13 - 0
Tools/BuildOurOwnBabylonJS/BuildOurOwnBabylonJSServer/Views/Shared/_Layout.cshtml

@@ -23,6 +23,19 @@
                 OURBABYLON.canvas = $("#ourOwnBabylonJSCanvas")[0];
                 OURBABYLON.engine = new BABYLON.Engine(OURBABYLON.canvas, true);
 
+                OURBABYLON.sceneInitialization = function (scene, attachControlToCamera) {
+                    OURBABYLON.currentScene = scene;
+                    if (!OURBABYLON.currentScene.activeCamera) {
+                        OURBABYLON.currentScene.activeCamera = new BABYLON.ArcRotateCamera("DefaultCamera", Math.PI / 2, 0, 10, new BABYLON.Vector3.Zero(), OURBABYLON.currentScene);
+                        OURBABYLON.currentScene.activeCamera.zoomOn();
+                        if (attachControlToCamera) {
+                            OURBABYLON.currentScene.activeCamera.attachControl(OURBABYLON.canvas);
+                        }
+                    }
+                    if (OURBABYLON.currentScene.lights.length == 0) {
+                        var light = new BABYLON.HemisphericLight("Default light", new BABYLON.Vector3(0, 1, 0), OURBABYLON.currentScene);
+                    }
+                };
                 window.addEventListener("resize", function () {
                     OURBABYLON.engine.resize();
                 });