#include<kfbxcache.h>
The FBX SDK supports two point cache file formats :
Accessing cache data using these formats differ significantly. To address this difference, two sets of methods have been created. Use theGetCacheFileFormat()function to determine which set of methods to use.
Definition at line63of filekfbxcache.h.
Format Independant Functions. | |
enum | EFileFormat |
Supported cache file formats.More... | |
void | SetCacheFileFormat(EFileFormatpFileFormat) |
Set the cache file format. | |
EFileFormat | GetCacheFileFormat() |
Get the cache file format. | |
void | SetCacheFileName(const char *pRelativeFileName, const char *pAbsoluteFileName) |
Set the cache file name. | |
void | GetCacheFileName(KString&pRelativeFileName,KString&pAbsoluteFileName) |
Get the cache file name. | |
bool | OpenFileForRead() |
Open the cache file for reading. | |
bool | IsOpen() |
Get the open state of the cache file. | |
bool | CloseFile() |
Close the cache file. | |
double | GetSamplingFrameRate() |
Get the sampling frame rate of the cache file. | |
KTime | GetCacheTimePerFrame() |
Get the sampling frame rate of the cache file, as aKTimeobject. | |
eMC Format Specific Functions. | |
enum | EMCFileCount |
Number of files used to store the animation.More... | |
enum | EMCDataType |
cache datatypes formats.More... | |
enum | EMCSamplingType |
cache channel sampling types.More... | |
bool | OpenFileForWrite(EMCFileCountpFileCount, double pSamplingFrameRate, const char *pChannelName,EMCDataTypepMCDataType=kDoubleVectorArray) |
Open a cache file for writing. | |
int | GetChannelCount() |
Get the number of channels in the cache file. | |
bool | GetChannelName(int pChannelIndex,KString&pChannelName) |
Get the channel name for a specific channel index. | |
bool | GetChannelDataType(int pChannelIndex,EMCDataType&pChannelType) |
Get the DataType of the specified channel. | |
int | GetChannelIndex(const char *pChannelName) |
Get the index of the specified channel. | |
bool | Read(int pChannelIndex,KTime&pTime, double *pBuffer, unsigned int pPointCount) |
Read a sample at a given time. | |
bool | Read(int pChannelIndex,KTime&pTime, float *pBuffer, unsigned int pPointCount) |
Read a sample at a given time. | |
bool | Write(int pChannelIndex,KTime&pTime, double *pBuffer, unsigned int pPointCount) |
Write a sample at a given time. | |
bool | Write(int pChannelIndex,KTime&pTime, float *pBuffer, unsigned int pPointCount) |
Write a sample at a given time. | |
bool | GetAnimationRange(int pChannelIndex,KTime&pTimeStart,KTime&pTimeEnd) |
Get the Animation Range of the specified channel. | |
bool | GetCacheType(EMCFileCount&pFileCount) |
Get the cache type. | |
bool | GetChannelInterpretation(int pChannelIndex,KString&pInterpretation) |
Get the cache channel interpretation. | |
bool | GetChannelSamplingType(int pChannelIndex,EMCSamplingType&pSamplingType) |
Get the cache channel sampling type. | |
bool | GetChannelSamplingRate(int pChannelIndex,KTime&pSamplingRate) |
Get the cache channel sampling rate, in frames per second. | |
bool | GetChannelSampleCount(int pChannelIndex, unsigned int&pSampleCount) |
Get the number of data points for a channel. | |
bool | GetChannelPointCount(int pChannelIndex,KTimepTime, unsigned int&pPointCount) |
Get the number of points animated in the cache file, for a channel, for a given time. | |
int | GetCacheDataFileCount() |
Returns the number of cache data files. | |
bool | GetCacheDataFileName(int pIndex,KString&pRelativeFileName,KString&pAbsoluteFileName) |
Get the nth cache file name. | |
bool | EnableMultiChannelFetching(bool pMultiChannelFetching) |
Enable multi-channel fetching. | |
Error Management | |
enum | EError |
Error identifiers.More... | |
KError& | GetError() |
Retrieve error object. | |
EError | GetLastErrorID() const |
Get last error code. | |
const char * | GetLastErrorString() const |
Get last error string. | |
Public Member Functions | |
KFbxCache& | operator=(constKFbxCache&pOther) |
Assignment operator. | |
ePC2 Format Specific Functions. | |
bool | OpenFileForWrite(double pFrameStartOffset, double pSamplingFrameRate, unsigned int pSampleCount, unsigned int pPointCount) |
Open a cache file for writing. | |
unsigned int | GetSampleCount() |
Get the number of frames of animation found in the point cache file. | |
unsigned int | GetPointCount() |
Get the number of points animated in the cache file. | |
double | GetFrameStartOffset() |
Get the start time of the animation. | |
bool | Read(unsigned int pFrameIndex, double *pBuffer, unsigned int pPointCount) |
Get the sampling frame rate of the cache file. | |
bool | Write(unsigned int pFrameIndex, double *pBuffer) |
Write a sample at a given frame index. | |
File conversion Functions. | |
bool | ConvertFromPC2ToMC(EMCFileCountpFileCount, double pSamplingFrameRate) |
Create aneMCcache file from an ePC2 cache file. | |
bool | ConvertFromMCToPC2(double pSamplingFrameRate, unsigned int pChannelIndex) |
Create anePC2cache file from an eMC cache file. |
enumEFileFormat |
Supported cache file formats.
Definition at line78of filekfbxcache.h.
enumEMCFileCount |
Number of files used to store the animation.
Definition at line144of filekfbxcache.h.
enumEMCDataType |
cache datatypes formats.
Definition at line158of filekfbxcache.h.
enumEMCSamplingType |
cache channel sampling types.
Definition at line277of filekfbxcache.h.
enumEError |
Error identifiers.
Definition at line464of filekfbxcache.h.
void SetCacheFileFormat | ( | EFileFormat | pFileFormat | ) |
Set the cache file format.
pFileFormat | Valid values areePC2oreMC. |
EFileFormatGetCacheFileFormat | ( | ) |
Get the cache file format.
void SetCacheFileName | ( | const char * | pRelativeFileName, | |
const char * | pAbsoluteFileName | |||
) |
Set the cache file name.
pRelativeFileName | The point cache file, relative to the FBX file name. | |
pAbsoluteFileName | The point cache file absolute path. |
Get the cache file name.
pRelativeFileName | Return the point cache file name, relative to the FBX File name. | |
pAbsoluteFileName | Return the point cache file absolute path. |
bool OpenFileForRead | ( | ) |
Open the cache file for reading.
true
if the file is successfully opened,false
otherwise. See the error management functions for error details.bool IsOpen | ( | ) |
Get the open state of the cache file.
true
if the cache file is currently open,false
otherwise.bool CloseFile | ( | ) |
Close the cache file.
true
if the cache file is closed successfully,false
otherwise.double GetSamplingFrameRate | ( | ) |
Get the sampling frame rate of the cache file.
KTimeGetCacheTimePerFrame | ( | ) |
Get the sampling frame rate of the cache file, as aKTimeobject.
bool OpenFileForWrite | ( | EMCFileCount | pFileCount, | |
double | pSamplingFrameRate, | |||
const char * | pChannelName, | |||
EMCDataType | pMCDataType=kDoubleVectorArray | |||
) |
Open a cache file for writing.
pFileCount | Create one file for each frame of animation, or one file for all the frames. | |
pSamplingFrameRate | Number of frames per second. | |
pChannelName | The name of the channel of animation to create. | |
pMCDataType | The MC DataType of the cache. |
int GetChannelCount | ( | ) |
Get the number of channels in the cache file.
bool GetChannelName | ( | int | pChannelIndex, | |
KString& | pChannelName | |||
) |
Get the channel name for a specific channel index.
pChannelIndex | The index of the animation channel, between 0 andGetChannelCount(). | |
pChannelName | Returns the name of the requested channel. |
true
if successful,false
otherwise. See the error management functions for error details.bool GetChannelDataType | ( | int | pChannelIndex, | |
EMCDataType& | pChannelType | |||
) |
Get the DataType of the specified channel.
pChannelIndex | The index of the channel. | |
pChannelType | The channel's datatype |
true
if successful,false
otherwise. See the error management functions for error details.int GetChannelIndex | ( | const char * | pChannelName | ) |
Get the index of the specified channel.
pChannelName | The name of the channel. |
bool Read | ( | int | pChannelIndex, | |
KTime& | pTime, | |||
double * | pBuffer, | |||
unsigned int | pPointCount | |||
) |
Read a sample at a given time.
pChannelIndex | The index of the animation channel, between 0 andGetChannelCount(). | |
pTime | Time at which the point animation must be evaluated. | |
pBuffer | The place where the point value will be copied. This buffer must be of size 3*pPointCount. | |
pPointCount | The number of points to read from the point cache file. |
true
if successful,false
otherwise. See the error management functions for error details.bool Read | ( | int | pChannelIndex, | |
KTime& | pTime, | |||
float * | pBuffer, | |||
unsigned int | pPointCount | |||
) |
Read a sample at a given time.
pChannelIndex | The index of the animation channel, between 0 andGetChannelCount(). | |
pTime | Time at which the point animation must be evaluated. | |
pBuffer | The place where the point value will be copied. This buffer must be of size 3*pPointCount. | |
pPointCount | The number of points to read from the point cache file. |
true
if successful,false
otherwise. See the error management functions for error details.bool Write | ( | int | pChannelIndex, | |
KTime& | pTime, | |||
double * | pBuffer, | |||
unsigned int | pPointCount | |||
) |
Write a sample at a given time.
pChannelIndex | The index of the animation channel, between 0 andGetChannelCount(). | |
pTime | Time at which the point animation must be inserted. | |
pBuffer | Point to the values to be copied. This buffer must be of size 3*pPointCount. | |
pPointCount | The number of points to write in the point cache file. |
true
if successful,false
otherwise. See the error management functions for error details.bool Write | ( | int | pChannelIndex, | |
KTime& | pTime, | |||
float * | pBuffer, | |||
unsigned int | pPointCount | |||
) |
Write a sample at a given time.
pChannelIndex | The index of the animation channel, between 0 andGetChannelCount(). | |
pTime | Time at which the point animation must be inserted. | |
pBuffer | Point to the values to be copied. This buffer must be of size 3*pPointCount. | |
pPointCount | The number of points to write in the point cache file. |
true
if successful,false
otherwise. See the error management functions for error details.Get the Animation Range of the specified channel.
pChannelIndex | The index of the channel. | |
pTimeStart | The Channel's Animation Start Time | |
pTimeEnd | The Channel's Animation End Time |
true
if successful,false
otherwise. See the error management functions for error details.bool GetCacheType | ( | EMCFileCount& | pFileCount | ) |
Get the cache type.
pFileCount | The cache type. |
true
if successful,false
otherwise. See the error management functions for error details.bool GetChannelInterpretation | ( | int | pChannelIndex, | |
KString& | pInterpretation | |||
) |
Get the cache channel interpretation.
pChannelIndex | The index of the animation channel, between 0 andGetChannelCount(). | |
pInterpretation | The channel interpretation; user-defined. |
true
if successful,false
otherwise. See the error management functions for error details.bool GetChannelSamplingType | ( | int | pChannelIndex, | |
EMCSamplingType& | pSamplingType | |||
) |
Get the cache channel sampling type.
pChannelIndex | The index of the animation channel, between 0 andGetChannelCount(). | |
pSamplingType | The sampling type of the channel. |
true
if successful,false
otherwise. See the error management functions for error details.bool GetChannelSamplingRate | ( | int | pChannelIndex, | |
KTime& | pSamplingRate | |||
) |
Get the cache channel sampling rate, in frames per second.
pChannelIndex | The index of the animation channel, between 0 andGetChannelCount(). | |
pSamplingRate | The sampling rate of the channel. The channel must have a regular sampling type. |
true
if successful,false
otherwise. See the error management functions for error details.bool GetChannelSampleCount | ( | int | pChannelIndex, | |
unsigned int& | pSampleCount | |||
) |
Get the number of data points for a channel.
pChannelIndex | The index of the animation channel, between 0 andGetChannelCount(). | |
pSampleCount | Number of available samples. |
true
if successful,false
otherwise. See the error management functions for error details.bool GetChannelPointCount | ( | int | pChannelIndex, | |
KTime | pTime, | |||
unsigned int& | pPointCount | |||
) |
Get the number of points animated in the cache file, for a channel, for a given time.
pChannelIndex | The index of the animation channel, between 0 andGetChannelCount(). | |
pTime | Reference time; must be within the boundaries of the animation. | |
pPointCount | Number of available points. |
true
if successful,false
otherwise. See the error management functions for error details.int GetCacheDataFileCount | ( | ) |
Returns the number of cache data files.
Get the nth cache file name.
pIndex | Index of the cache file to return; index is zero-based, and must be<GetCacheDataFileCount(). | |
pRelativeFileName | Return the point cache file name, relative to the FBX File name. | |
pAbsoluteFileName | Return the point cache file absolute path. |
true
if successful,false
otherwise. See the error management functions for error details.bool EnableMultiChannelFetching | ( | bool | pMultiChannelFetching | ) |
Enable multi-channel fetching.
pMultiChannelFetching | Enable/disable multi-channel fetching. When multi-channel is enabled, any load of data on a channel at a specific time will prefetch data from all channels, for that specific time. This can reduce disk access, and increase performance (but requires more memory). |
true
if successful,false
otherwise. See the error management functions for error details.bool OpenFileForWrite | ( | double | pFrameStartOffset, | |
double | pSamplingFrameRate, | |||
unsigned int | pSampleCount, | |||
unsigned int | pPointCount | |||
) |
Open a cache file for writing.
pFrameStartOffset | Start time of the animation, in frames. | |
pSamplingFrameRate | Number of frames per second. | |
pSampleCount | The number of samples to write to the file. | |
pPointCount | The number of points to write in the point cache file. |
true
if successful,false
otherwise. See the error management functions for error details.unsigned int GetSampleCount | ( | ) |
Get the number of frames of animation found in the point cache file.
unsigned int GetPointCount | ( | ) |
Get the number of points animated in the cache file.
double GetFrameStartOffset | ( | ) |
Get the start time of the animation.
bool Read | ( | unsigned int | pFrameIndex, | |
double * | pBuffer, | |||
unsigned int | pPointCount | |||
) |
Get the sampling frame rate of the cache file.
pFrameIndex | The index of the animation frame, between 0 andGetSampleCount(). | |
pBuffer | The place where the point value will be copied. This buffer must be of size 3*pPointCount. | |
pPointCount | The number of points to read from the point cache file. |
true
if successful,false
otherwise. See the error management functions for error details.bool Write | ( | unsigned int | pFrameIndex, | |
double * | pBuffer | |||
) |
Write a sample at a given frame index.
pFrameIndex | The index of the animation frame. | |
pBuffer | Point to the values to be copied. This buffer must be of size 3*pPointCount, as passed to the functionOpenFileForWrite(). |
true
if successful,false
otherwise. See the error management functions for error details.bool ConvertFromPC2ToMC | ( | EMCFileCount | pFileCount, | |
double | pSamplingFrameRate | |||
) |
Create aneMCcache file from an ePC2 cache file.
pFileCount | Create one file for each frame of animation, or one file for all the frames. | |
pSamplingFrameRate | Number of frames per second used to resample the point animation. |
true
if successful,false
otherwise. See the error management functions for error details.bool ConvertFromMCToPC2 | ( | double | pSamplingFrameRate, | |
unsigned int | pChannelIndex | |||
) |
Create anePC2cache file from an eMC cache file.
pSamplingFrameRate | Number of frames per second to resample the point animation. | |
pChannelIndex | Index of the channel of animation to read from. |
true
if successful,false
otherwise. See the error management functions for error details.KError&GetError | ( | ) |
Retrieve error object.
EErrorGetLastErrorID | ( | ) | const |
Get last error code.
const char* GetLastErrorString | ( | ) | const |
Get last error string.