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(";");
|