#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 unsigned int& size );
void storeCacheBlock(
const MString& tag,
const float* value,
const unsigned int& size );
bool readStatus;
cacheBlockList blockList;
};
#endif