geometryCacheConverter/geometryCacheFile.h
         
    
#ifndef _GEOMETRY_CACHE_FILE
#define _GEOMETRY_CACHE_FILE
#include "geometryCacheBlockBase.h"
#include <maya/MString.h>
#include <maya/MIffFile.h>
#include <list>
typedef std::list<geometryCacheBlockBase*> cacheBlockList;
typedef std::list<geometryCacheBlockBase*>::iterator cacheBlockIterator;
class geometryCacheFile
{
public:
    
    
    virtual     ~geometryCacheFile();
    
    
    const bool&     isRead();
    
    
    bool    readCacheFiles();
    
    
    bool    convertToAscii();
private:
    
    
    bool    readHeaderGroup( 
MStatus& status );
 
    bool    readHeaderVersion();
    bool    readHeaderTimeRange();
    
    
    bool    readChannelGroup( 
MStatus& groupStatus );
 
    
    bool    readChannelTime();
    bool    readChannel( 
MStatus& channelStatus );
 
    bool    readChannelName( 
MStatus& channelStatus );
 
    bool    readChannelData();
    
    
    
    void    storeCacheBlock( 
const MString& tag );
 
    void    storeCacheBlock( 
const MString& tag, 
const int& value );
 
    void    storeCacheBlock( 
const MString& tag, 
 
                        const double* value, 
                        const uint& size );
    void    storeCacheBlock( 
const MString& tag, 
 
                        const float* value, 
                        const uint& size );
    
    
    bool                readStatus;     
    cacheBlockList      blockList;      
};
#endif