13 #ifndef _FBXSDK_SCENE_GEOMETRY_CACHE_H_ 
   14 #define _FBXSDK_SCENE_GEOMETRY_CACHE_H_ 
   23 class FbxCache_internal;
 
   52         void SetCacheFileFormat(EFileFormat pFileFormat, 
FbxStatus* pStatus=
NULL);
 
   56         EFileFormat GetCacheFileFormat() 
const;
 
   62         void SetCacheFileName(
const char* pRelativeFileName_UTF8, 
const char* pAbsoluteFileName_UTF8, 
FbxStatus* pStatus=
NULL);
 
   67         void GetCacheFileName(
FbxString& pRelativeFileName_UTF8, 
FbxString& pAbsoluteFileName_UTF8) 
const;
 
   86         bool Read(
float** pBuffer, 
unsigned int& pBufferLength, 
const FbxTime& pTime, 
unsigned int pChannel=0);
 
  159         bool OpenFileForWrite(EMCFileCount pFileCount, 
double pSamplingFrameRate, 
const char* pChannelName, EMCBinaryFormat pBinaryFormat, EMCDataType pMCDataType=eDoubleVectorArray, 
const char* pInterpretation=
"Points", 
FbxStatus* pStatus=
NULL);
 
  170         bool AddChannel(
const char* pChannelName, EMCDataType pMCDataType, 
const char* pInterpretation, 
unsigned int& pChannelIndex, 
FbxStatus* pStatus=
NULL);     
 
  177         bool GetChannelDataType(
int pChannelIndex, EMCDataType& pChannelType, 
FbxStatus* pStatus=
NULL);
 
  183         int  GetChannelIndex(
const char* pChannelName, 
FbxStatus* pStatus=
NULL);
 
  192         bool Read(
int pChannelIndex, 
FbxTime& pTime, 
double* pBuffer, 
unsigned int pPointCount, 
FbxStatus* pStatus=
NULL);
 
  201         bool Read(
int pChannelIndex, 
FbxTime& pTime, 
float* pBuffer, 
unsigned int pPointCount, 
FbxStatus* pStatus=
NULL);
 
  210         bool Read(
int pChannelIndex, 
FbxTime& pTime, 
int* pBuffer, 
unsigned int pPointCount, 
FbxStatus* pStatus=
NULL);
 
  228         bool Write(
int pChannelIndex, 
FbxTime& pTime, 
double* pBuffer, 
unsigned int pPointCount, 
FbxStatus* pStatus=
NULL);
 
  240         bool Write(
int pChannelIndex, 
FbxTime& pTime, 
float* pBuffer, 
unsigned int pPointCount, 
FbxStatus* pStatus=
NULL);
 
  252         bool Write(
int pChannelIndex, 
FbxTime& pTime, 
int* pBuffer, 
unsigned int pPointCount, 
FbxStatus* pStatus=
NULL);
 
  272         bool GetCacheType(EMCFileCount& pFileCount, 
FbxStatus* pStatus=
NULL);
 
  286         bool GetChannelSamplingType(
int pChannelIndex, EMCSamplingType& pSamplingType, 
FbxStatus* pStatus=
NULL);
 
  293         bool GetChannelSamplingRate(
int pChannelIndex, 
FbxTime& pSamplingRate, 
FbxStatus* pStatus=
NULL);
 
  300         bool GetChannelSampleCount(
int pChannelIndex, 
unsigned int& pSampleCount, 
FbxStatus* pStatus=
NULL);
 
  308         bool GetChannelPointCount(
int pChannelIndex, 
FbxTime pTime, 
unsigned int& pPointCount, 
FbxStatus* pStatus=
NULL);
 
  328         bool EnableMultiChannelFetching(
bool pMultiChannelFetching, 
FbxStatus* pStatus=
NULL);
 
  342         int GetDataCount(
int pChannelIndex, 
FbxStatus* pStatus=
NULL);
 
  350         bool GetDataTime(
int pChannelIndex, 
unsigned int pDataIndex, 
FbxTime& pTime, 
FbxStatus* pStatus=
NULL);
 
  362         bool OpenFileForWrite(
double pFrameStartOffset, 
double pSamplingFrameRate, 
unsigned int pSampleCount, 
unsigned int pPointCount, 
FbxStatus* pStatus=
NULL);
 
  387         bool Read(
unsigned int pFrameIndex, 
double* pBuffer, 
unsigned int pPointCount, 
FbxStatus* pStatus=
NULL);
 
  395         bool Write(
unsigned int pFrameIndex, 
double* pBuffer, 
FbxStatus* pStatus=
NULL);
 
  407         bool ConvertFromPC2ToMC(EMCFileCount pFileCount, 
double pSamplingFrameRate, EMCBinaryFormat pBinaryFormat, 
FbxStatus* pStatus=
NULL);
 
  415         bool ConvertFromMCToPC2(
double pSamplingFrameRate, 
unsigned int pChannelIndex, 
FbxStatus* pStatus=
NULL);
 
  421 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  429     bool OpenFile(EOpenFlag pFlag, EMCFileCount pFileCount, 
double pSamplingFrameRate, 
const char* pChannelName, 
const char* pInterpretation, 
unsigned int pSampleCount, 
unsigned int pPointCount, 
double pFrameStartOffset, 
FbxStatus* pStatus, EMCDataType pMCDataType = eDoubleVectorArray, EMCBinaryFormat pBinaryFormat = eMCX); 
 
  433     virtual void Destruct(
bool pRecursive);
 
  435     FbxCache_internal* mData;
 
  438     bool AllocateReadBuffer(
unsigned int pTypeSize, 
unsigned int pTypeLength, 
unsigned int pLength, 
bool pAllocateConvertBuffer);
 
  439     bool ReadMayaCache(
float** pBuffer, 
unsigned int& pBufferLength, 
const FbxTime& pTime, 
unsigned int pChannel);
 
  440     bool ReadMaxCache(
float** pBuffer, 
unsigned int& pBufferLength, 
const FbxTime& pTime);
 
  441     bool ReadAlembicCache(
float** pBuffer, 
unsigned int& pBufferLength, 
const FbxTime& pTime, 
unsigned int pChannel);
 
  448     unsigned int    mReadBufferLength;
 
  449     unsigned int    mReadBufferSize;
 
  450     unsigned int    mReadTypeSize;
 
  451     unsigned int    mReadTypeLength;
 
  452     unsigned int    mReadLength;
 
  453     void*           mConvertBuffer;
 
#define FBXSDK_OBJECT_DECLARE(Class, Parent)
Macro used to declare a new class derived from FbxObject. 
 
FBX SDK environment definition. 
 
EFileFormat
Supported cache file formats. 
 
Utility class to manipulate strings. 
 
MCC cache file format, 32bit (older format) 
 
3ds Max Point Cache 2 file format. 
 
This class facilitates the testing/reporting of errors. 
 
EFbxType FbxTypeOf(const FbxCache::EFileFormat &)
 
EFbxType
Type identifier constants. 
 
Class to encapsulate time units. 
 
The base class of most FBX objects. 
 
EMCDataType
Data types in the MC cache file. 
 
EMCBinaryFormat
Binary cache format. 
 
virtual void Construct(const FbxObject *pFrom)
Optional constructor override, automatically called by default constructor. 
 
Unknown cache file format. 
 
EMCSamplingType
Cache channel sampling types. 
 
virtual void Destruct(bool pRecursive)
Optional destructor override, automatically called by default destructor. 
 
No use but has to be defined for consistency reasons. 
 
One file is used for all the frames of animation. 
 
virtual void ConstructProperties(bool pForceSet)
Optional property constructor override, automatically called by default constructor. 
 
This object contains methods for accessing point animation in a cache file.