瀏覽代碼

added environment setup and onModelLoaded

Raanan Weber 7 年之前
父節點
當前提交
18de7b28ba
共有 1 個文件被更改,包括 16 次插入1 次删除
  1. 16 1
      Viewer/src/viewer/viewer.ts

+ 16 - 1
Viewer/src/viewer/viewer.ts

@@ -1,6 +1,6 @@
 import { TemplateManager } from './../templateManager';
 import configurationLoader from './../configuration/loader';
-import { Observable, Engine, Scene, ArcRotateCamera, Vector3, SceneLoader, Mesh, HemisphericLight } from 'babylonjs';
+import { Observable, Engine, Scene, ArcRotateCamera, Vector3, SceneLoader, AbstractMesh, Mesh, HemisphericLight } from 'babylonjs';
 import { ViewerConfiguration } from '../configuration/configuration';
 
 export abstract class AbstractViewer {
@@ -51,6 +51,8 @@ export abstract class AbstractViewer {
         }).then(() => {
             return this.initLights();
         }).then(() => {
+            return this.initEnvironment();
+        }).then(() => {
             return this.loadModel();
         }).then(() => {
             return this;
@@ -75,11 +77,17 @@ export abstract class AbstractViewer {
             this.engine.resize();
         });
 
+        var scale = Math.max(0.5, 1 / (window.devicePixelRatio || 2));
+        this.engine.setHardwareScalingLevel(scale);
+
         return Promise.resolve(this.engine);
     }
 
     protected initScene(): Promise<Scene> {
         this.scene = new Scene(this.engine);
+        this.engine.runRenderLoop(() => {
+            this.scene.render();
+        });
         return Promise.resolve(this.scene);
     }
 
@@ -89,4 +97,11 @@ export abstract class AbstractViewer {
 
     public abstract loadModel(model?: string): Promise<Scene>;
 
+    protected onModelLoaded(meshes: Array<AbstractMesh>): Promise<Scene> {
+        console.log("model loaded");
+        return Promise.resolve(this.scene);
+    }
+
+    public abstract initEnvironment(): Promise<Scene>;
+
 }