#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 the GetCacheFileFormat() function to determine which set of methods to use.
Definition at line 62 of file kfbxcache.h.
Format Independent Functions. |
|
enum | EFileFormat
{ eUNKNOWN, ePC2, eMC } |
Supported cache file formats. More... |
|
void | SetCacheFileFormat (EFileFormat pFileFormat) |
Set the cache file format. |
|
EFileFormat | GetCacheFileFormat () const |
Get the cache file format. |
|
void | SetCacheFileName (const char *pRelativeFileName, const char *pAbsoluteFileName) |
Set the cache file name. |
|
void | GetCacheFileName (KString &pRelativeFileName, KString &pAbsoluteFileName) const |
Get the cache file name. |
|
bool | OpenFileForRead () |
Open the cache file for reading. |
|
bool | IsOpen () const |
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 a KTime object. |
|
eMC Format Specific Functions. |
|
enum | EMCFileCount
{ eMC_ONE_FILE, eMC_ONE_FILE_PER_FRAME } |
Number of files used to store the animation.
More... |
|
enum | EMCDataType
{ kUnknownData, kDouble, kDoubleArray, kDoubleVectorArray, kInt32Array, kFloatArray, kFloatVectorArray } |
cache datatypes formats. More... |
|
enum | EMCSamplingType
{ eSAMPLING_REGULAR, eSAMPLING_IRREGULAR } |
cache channel sampling types. More... |
|
bool | OpenFileForWrite (EMCFileCount pFileCount, double pSamplingFrameRate, const char *pChannelName, EMCDataType pMCDataType=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 | Read (int pChannelIndex, KTime &pTime, int *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 | Write (int pChannelIndex, KTime &pTime, int *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, KTime pTime, unsigned int &pPointCount) |
Get the number of points animated in the
cache file, for a channel, for a given time. |
|
int | GetCacheDataFileCount () const |
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 { eUNSUPPORTED_ARCHITECTURE, eINVALID_ABSOLUTE_PATH, eINVALID_SAMPLING_RATE, eINVALID_CACHE_FORMAT, eUNSUPPORTED_FILE_VERSION, eCONVERSION_FROM_PC2_FAILED, eCONVERSION_FROM_MC_FAILED, eCACHE_FILE_NOT_FOUND, eCACHE_FILE_NOT_OPENED, eCACHE_FILE_NOT_CREATED, eINVALID_OPEN_FLAG, eERROR_WRITING_SAMPLE, eERROR_READING_SAMPLE, eERROR_DATATYPE, eERROR_INVALIDCHANNELINDEX, eERROR_IRREGULARCHANNELSAMPLING, eERROR_CHANNELINTERPRETATION, eERROR_CHANNELSAMPLING, eERROR_INVALID_FILEINDEX, eERROR_CACHEDATAFILENAME, eERROR_CHANNELSTARTTIME, eERROR_CHANNELPOINTCOUNT, eERROR_INVALIDTIME, eERROR_COUNT } |
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 |
|
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) |
Read a sample at a given frame index.
|
|
bool | Write (unsigned int pFrameIndex, double *pBuffer) |
Write a sample at a given frame index.
|
|
File conversion Functions.
|
|
bool | ConvertFromPC2ToMC (EMCFileCount pFileCount, double pSamplingFrameRate) |
Create an eMC cache file from an
ePC2 cache file. |
|
bool | ConvertFromMCToPC2 (double pSamplingFrameRate, unsigned int pChannelIndex) |
Create an ePC2 cache file from an
eMC cache file. |
enum EFileFormat |
Supported cache file formats.
Definition at line 77 of file kfbxcache.h.
enum EMCFileCount |
Number of files used to store the animation.
Definition at line 143 of file kfbxcache.h.
enum EMCDataType |
cache datatypes formats.
kUnknownData | |
kDouble | |
kDoubleArray | |
kDoubleVectorArray | |
kInt32Array | |
kFloatArray | |
kFloatVectorArray |
Definition at line 158 of file kfbxcache.h.
enum EMCSamplingType |
cache channel sampling types.
Definition at line 300 of file kfbxcache.h.
enum EError |
Error identifiers.
Definition at line 482 of file kfbxcache.h.
void SetCacheFileFormat | ( | EFileFormat | pFileFormat | ) |
Set the cache file format.
pFileFormat | Valid values are ePC2 or eMC. |
EFileFormat GetCacheFileFormat | ( | ) | const |
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 | ( | ) | const |
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.
KTime GetCacheTimePerFrame | ( | ) |
Get the sampling frame rate of the cache file, as a KTime object.
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.
Get the channel name for a specific channel index.
pChannelIndex | The index of the animation channel, between 0 and GetChannelCount(). | |
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. |
Read a sample at a given time.
pChannelIndex | The index of the animation channel, between 0 and GetChannelCount(). | |
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.Read a sample at a given time.
pChannelIndex | The index of the animation channel, between 0 and GetChannelCount(). | |
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.Read a sample at a given time.
pChannelIndex | The index of the animation channel, between 0 and GetChannelCount(). | |
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 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.Write a sample at a given time.
pChannelIndex | The index of the animation channel, between 0 and GetChannelCount(). | |
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.Write a sample at a given time.
pChannelIndex | The index of the animation channel, between 0 and GetChannelCount(). | |
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.Write a sample at a given time.
pChannelIndex | The index of the animation channel, between 0 and GetChannelCount(). | |
pTime | Time at which the point animation must be inserted. | |
pBuffer | Point to the values to be copied. This buffer must be of size 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.Get the cache channel interpretation.
pChannelIndex | The index of the animation channel, between 0 and GetChannelCount(). | |
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 and GetChannelCount(). | |
pSamplingType | The sampling type of the channel. |
true
if successful, false
otherwise.
See the error management functions for error details.Get the cache channel sampling rate, in frames per second.
pChannelIndex | The index of the animation channel, between 0 and GetChannelCount(). | |
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.Get the number of data points for a channel.
pChannelIndex | The index of the animation channel, between 0 and GetChannelCount(). | |
pSampleCount | Number of available samples. |
true
if successful, false
otherwise.
See the error management functions for error details.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 and GetChannelCount(). | |
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 | ( | ) | const |
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.
Read a sample at a given frame index.
pFrameIndex | The index of the animation frame, between 0 and GetSampleCount(). | |
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.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 function OpenFileForWrite(). |
true
if successful, false
otherwise.
See the error management functions for error details.bool ConvertFromPC2ToMC | ( | EMCFileCount | pFileCount, | |
double | pSamplingFrameRate | |||
) |
Create an eMC cache 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.Create an ePC2 cache 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.
EError GetLastErrorID | ( | ) | const |
Get last error code.
const char* GetLastErrorString | ( | ) | const |
Get last error string.