Ignore:
Timestamp:
04/30/07 08:16:31 (18 years ago)
Author:
gumbau
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/GeoMeshSaver.cpp

    r2127 r2341  
    181181        if (geoMesh->hasSkeleton) 
    182182        { 
     183                strcat(geoMesh->mSkeletonName,"\n"); 
     184 
    183185                // Write skeleton link 
    184186                writeSkeletonLink(geoMesh->mSkeletonName); 
     
    199201        writeMeshBounds(geoMesh); 
    200202 
     203        // Write submesh name table. 
     204        writeSubMeshNameTable(geoMesh); 
     205 
    201206        /* 
    202207        // Write LOD data if any 
     
    212217        writeBoundsInfo(pMesh); 
    213218        LogManager::getSingleton().logMessage("Bounds information exported."); 
    214  
    215         // Write submesh name table 
    216         LogManager::getSingleton().logMessage("Exporting submesh name table..."); 
    217         writeSubMeshNameTable(pMesh); 
    218         LogManager::getSingleton().logMessage("Submesh name table exported."); 
    219219 
    220220        // Write edge lists 
     
    414414 
    415415        //      Write the vertex declaration header. 
    416         writeChunkHeader(       M_GEOMETRY_VERTEX_DECLARATION,size); 
     416        writeChunkHeader(M_GEOMETRY_VERTEX_DECLARATION,size); 
    417417 
    418418        //      Debug. 
     
    425425        //      Positions. 
    426426        //      Write the vertex element header for position. 
    427         writeChunkHeader(       M_GEOMETRY_VERTEX_ELEMENT,size); 
     427        writeChunkHeader(M_GEOMETRY_VERTEX_ELEMENT,size); 
    428428 
    429429        //      Debug. 
     
    448448        //      Normals. 
    449449        //      Write the vertex element header for position. 
    450         writeChunkHeader(       M_GEOMETRY_VERTEX_ELEMENT,size); 
     450        writeChunkHeader(M_GEOMETRY_VERTEX_ELEMENT,size); 
    451451         
    452452        //      Debug. 
     
    528528 
    529529        //      Write the vertex buffer header. 
    530         writeChunkHeader(       M_GEOMETRY_VERTEX_BUFFER,       size); 
     530        writeChunkHeader(M_GEOMETRY_VERTEX_BUFFER,      size); 
    531531 
    532532        //      Debug. 
     
    613613        writeFloats(geoMesh->mMeshBounds.maxZ,1); 
    614614        writeFloats(geoMesh->mMeshBounds.radius,1); 
     615} 
     616 
     617//------------------------------------------------------------------------- 
     618// Write submesh name table. 
     619//------------------------------------------------------------------------- 
     620void    GeoMeshSaver::writeSubMeshNameTable(Mesh        *geoMesh) 
     621{ 
     622        size_t  size; 
     623        size_t  names_size; 
     624 
     625        //      Size of the names of the submeshes. 
     626        names_size      =       0; 
     627 
     628        //      For each submesh. 
     629        for (size_t     i = 0; i < geoMesh->mSubMeshCount;      i++) 
     630        { 
     631                names_size      =       strlen(geoMesh->mSubMesh[i].mName); 
     632        } 
     633 
     634        size    =       CHUNK_OVERHEAD_SIZE 
     635                                        + 
     636                                        names_size 
     637                                        + 
     638                                        (CHUNK_OVERHEAD_SIZE + sizeof(short)) * geoMesh->mSubMeshCount; 
     639 
     640        writeChunkHeader(M_SUBMESH_NAME_TABLE, (unsigned long)size); 
     641 
     642        //      For each submesh. 
     643        for (size_t     i = 0;  i < geoMesh->mSubMeshCount;     i++) 
     644        { 
     645                size    =       CHUNK_OVERHEAD_SIZE 
     646                                                + 
     647                                                sizeof(short) 
     648                                                + 
     649                                                strlen(geoMesh->mSubMesh[i].mName); 
     650 
     651                writeChunkHeader(M_SUBMESH_NAME_TABLE_ELEMENT, (unsigned long)size); 
     652 
     653                writeShorts(i, 1); 
     654 
     655                strcat(geoMesh->mSubMesh[i].mName,"\n"); 
     656                mSerializer->WriteData(geoMesh->mSubMesh[i].mName); 
     657        } 
    615658} 
    616659 
     
    751794 
    752795        writeString(mesh_version); 
    753  
    754796} 
    755797 
Note: See TracChangeset for help on using the changeset viewer.