[Plib-cvs] plib/src/ssg ssgLoadX.cxx,1.18,1.19
Brought to you by:
sjbaker
From: Wolfram K. <wol...@us...> - 2002-07-22 14:46:50
|
Update of /cvsroot/plib/plib/src/ssg In directory usw-pr-cvs1:/tmp/cvs-serv31978 Modified Files: ssgLoadX.cxx Log Message: The names of all handled entities are read now. Currently, only the names of meshes are used. They are passed on to the ssgLoaderWriterMesh, which sets the ssgLeaf-node-names to them. Index: ssgLoadX.cxx =================================================================== RCS file: /cvsroot/plib/plib/src/ssg/ssgLoadX.cxx,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- ssgLoadX.cxx 10 Jun 2002 16:34:32 -0000 1.18 +++ ssgLoadX.cxx 22 Jul 2002 14:46:46 -0000 1.19 @@ -203,17 +203,19 @@ { parser.error("unexpected end fo file\n"); return FALSE; } - - if (0!=strcmp(sNextToken, "{")) - { sName=sNextToken; - sNextToken=parser.getNextToken(0); - if (0!=strcmp(sNextToken, "{")) + sName = NULL; + if (0 != strcmp(sNextToken, "{")) + { sName = new char[ strlen(sNextToken) + 1 ]; + assert ( sName ); + strcpy(sName, sNextToken); + sNextToken = parser.getNextToken(0); + if (0 != strcmp(sNextToken, "{")) parser.error("\"{\" expected\n"); } - sNextToken=parser.getNextToken(0); + sNextToken = parser.getNextToken(0); - if(sNextToken[0]=='<') // UUID - sNextToken=parser.getNextToken(0); + if(sNextToken[0] == '<') // UUID + sNextToken = parser.getNextToken(0); if ( parser.eof ) { parser.error("unexpected end fo file\n"); return FALSE; @@ -221,6 +223,8 @@ if (!aEntities[i].HandleEntity(sName, sNextToken)) return FALSE; + if ( sName ) + delete [] sName; } else if (aEntities[i].bMayBeIgnored) @@ -252,7 +256,7 @@ static ssgSimpleState *currentState; extern sgVec4 currentDiffuse; -static int HandleTextureFileName(const char *sName, const char *firstToken) +static int HandleTextureFileName(const char * /*sName*/, const char *firstToken) {/* TextureFilename { "../image/box_top.gif"; @@ -277,7 +281,7 @@ return TRUE; } -static int HandleMaterial(const char *sName, const char *firstToken) +static int HandleMaterial(const char * /*sName*/, const char *firstToken) // return TRUE on success { SGfloat power; int bFoundTextureFileName = FALSE; @@ -481,11 +485,10 @@ } -static int HandleMesh(const char * /* sName */, const char *firstToken) +static int HandleMesh(const char * sName, const char *firstToken) { u32 i, j, nNoOfVertices, nNoOfVerticesForThisFace, nNoOfFaces; int iVertex, aiVertices[MAX_NO_VERTICES_PER_FACE]; - //char *sMeshName = parser.getNextToken("Mesh name"); //parser.expectNextToken("{"); if (! Ascii2UInt(nNoOfVertices, firstToken, "nNoOfVertices")) @@ -494,6 +497,7 @@ //parser.getNextInt("number of vertices"); currentMesh.reInit (); + currentMesh.setName( sName ); currentMesh.createVertices( nNoOfVertices ); parser.expectNextToken(";"); |