[Plib-cvs] plib/src/ssg ssgLoadOBJ.cxx,1.23,1.24
Brought to you by:
sjbaker
From: Wolfram K. <wol...@us...> - 2005-03-25 01:04:13
|
Update of /cvsroot/plib/plib/src/ssg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2921 Modified Files: ssgLoadOBJ.cxx Log Message: Making material loading more robust. Index: ssgLoadOBJ.cxx =================================================================== RCS file: /cvsroot/plib/plib/src/ssg/ssgLoadOBJ.cxx,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- ssgLoadOBJ.cxx 15 Sep 2002 01:29:12 -0000 1.23 +++ ssgLoadOBJ.cxx 25 Mar 2005 01:04:04 -0000 1.24 @@ -201,6 +201,9 @@ return TRUE; } +static char filename [ 1024 ] ; + + static void load_materials ( const char* fname ) { num_mat = 0 ; @@ -210,7 +213,20 @@ FILE* filein = fopen (path,"r") ; if ( filein == 0 ) - return ; + { + char mtl_filename[ 1024 ]; + strcpy(mtl_filename, filename); + if(NULL!=strrchr(mtl_filename, '/')) + *strrchr(mtl_filename, '/') = 0; + if(NULL!=strrchr(mtl_filename, '\\')) + *strrchr(mtl_filename, '\\') = 0; + strncat(mtl_filename, "\\", 1024); + strncat(mtl_filename, fname, 1024); + + filein = fopen (mtl_filename,"r") ; + if ( filein == 0 ) + return ; // give up finding the material file + } int index = -1 ; @@ -347,7 +363,6 @@ current_branch -> addKid ( vtab ) ; } - static int obj_read ( FILE *filein ) { int count; @@ -726,7 +741,6 @@ current_branch = NULL ; - char filename [ 1024 ] ; current_options -> makeModelPath ( filename, fname ) ; FILE *loader_fd = fopen ( filename, "ra" ) ; |