]> git.mxchange.org Git - simgear.git/commitdiff
Allow the use of a <texture-path/> tag to specify the directory containing the textur...
authorehofman <ehofman>
Mon, 5 Jul 2004 11:42:19 +0000 (11:42 +0000)
committerehofman <ehofman>
Mon, 5 Jul 2004 11:42:19 +0000 (11:42 +0000)
simgear/scene/model/model.cxx

index 78446fa5bf71f4997401c6e5bd7fe24b3ad65278..f23f59ec42a3984ca89bdee1da3e84bf4e9d9434 100644 (file)
@@ -223,11 +223,11 @@ sgLoad3DModel( const string &fg_root, const string &path,
   SGPropertyNode props;
 
                                 // Load the 3D aircraft object itself
-  SGPath modelpath = path;
+  SGPath modelpath = path, texturepath = path;
   if ( !ulIsAbsolutePathName( path.c_str() ) ) {
     SGPath tmp = fg_root;
     tmp.append(modelpath.str());
-    modelpath = tmp;
+    modelpath = texturepath = tmp;
   }
 
                                 // Check for an XML wrapper
@@ -236,6 +236,10 @@ sgLoad3DModel( const string &fg_root, const string &path,
     if (props.hasValue("/path")) {
       modelpath = modelpath.dir();
       modelpath.append(props.getStringValue("/path"));
+      if (props.hasValue("/texture-path")) {
+        texturepath = texturepath.dir();
+        texturepath.append(props.getStringValue("/texture-path"));
+      }
     } else {
       if (model == 0)
         model = new ssgBranch;
@@ -245,7 +249,7 @@ sgLoad3DModel( const string &fg_root, const string &path,
                                 // Assume that textures are in
                                 // the same location as the XML file.
   if (model == 0) {
-    ssgTexturePath((char *)modelpath.dir().c_str());
+    ssgTexturePath((char *)texturepath.dir().c_str());
     model = (ssgBranch *)ssgLoad((char *)modelpath.c_str());
     if (model == 0)
       throw sg_exception("Failed to load 3D model");