Parcourir la source

model loader now has baseUrl exposed
If a file was loaded (local file) it will be file: , otherwise it will bet the best URL of the model loaded.

Raanan Weber il y a 7 ans
Parent
commit
3dd5d10148
1 fichiers modifiés avec 10 ajouts et 6 suppressions
  1. 10 6
      Viewer/src/loader/modelLoader.ts

+ 10 - 6
Viewer/src/loader/modelLoader.ts

@@ -22,6 +22,12 @@ export class ModelLoader {
 
 
     private _plugins: Array<ILoaderPlugin>;
     private _plugins: Array<ILoaderPlugin>;
 
 
+    private _baseUrl: string;
+
+    public get baseUrl(): string {
+        return this._baseUrl;
+    }
+
     /**
     /**
      * Create a new Model loader
      * Create a new Model loader
      * @param _viewer the viewer using this model loader
      * @param _viewer the viewer using this model loader
@@ -62,19 +68,17 @@ export class ModelLoader {
 
 
         model.loadId = this._loadId++;
         model.loadId = this._loadId++;
 
 
-        let base: string = "";
-
         let filename: any;
         let filename: any;
         if (modelConfiguration.file) {
         if (modelConfiguration.file) {
-            base = "file:";
+            this._baseUrl = "file:";
             filename = modelConfiguration.file;
             filename = modelConfiguration.file;
         }
         }
         else if (modelConfiguration.url) {
         else if (modelConfiguration.url) {
             filename = Tools.GetFilename(modelConfiguration.url) || modelConfiguration.url;
             filename = Tools.GetFilename(modelConfiguration.url) || modelConfiguration.url;
-            base = modelConfiguration.root || Tools.GetFolderPath(modelConfiguration.url);
+            this._baseUrl = modelConfiguration.root || Tools.GetFolderPath(modelConfiguration.url);
         }
         }
 
 
-        if (!filename || !base) {
+        if (!filename || !this._baseUrl) {
             model.state = ModelState.ERROR;
             model.state = ModelState.ERROR;
             Tools.Error("No URL provided");
             Tools.Error("No URL provided");
             return model;
             return model;
@@ -85,7 +89,7 @@ export class ModelLoader {
 
 
         let scene = model.rootMesh.getScene();
         let scene = model.rootMesh.getScene();
 
 
-        model.loader = SceneLoader.ImportMesh(undefined, base, filename, scene, (meshes, particleSystems, skeletons, animationGroups) => {
+        model.loader = SceneLoader.ImportMesh(undefined, this._baseUrl, filename, scene, (meshes, particleSystems, skeletons, animationGroups) => {
             meshes.forEach(mesh => {
             meshes.forEach(mesh => {
                 Tags.AddTagsTo(mesh, "viewerMesh");
                 Tags.AddTagsTo(mesh, "viewerMesh");
                 model.addMesh(mesh);
                 model.addMesh(mesh);