KFbxDataStream Class Reference

#include <kfbxdatastream.h>

List of all members.


Detailed Description

This class handles streams of binary information.

Definition at line 59 of file kfbxdatastream.h.

Read

The following functions let you read from a binary data stream.

bool ReadBegin ()
 Start reading the stream.
bool ReadEnd ()
 End reading the stream.
void FieldReadResetPosition ()
 Reset the field read position.
int FieldGetCount ()
 Return the number of fields.
char * FieldGetName (int pFieldIndex)
 Get the name of a field using an index indexed pFieldIndex.
int FieldGetInstanceCount (char *pFieldName)
 Get number of instance field pFieldName has.
bool FieldReadBegin (int pFieldIndex, int pInstance)
 Start to read field instance refered by field indexed pFieldIndex, instance indexed pInstance.
bool FieldReadBegin (char *pFieldName)
 Start to read field pFieldName.
bool FieldReadBegin (char *pFieldName, int pInstance)
 Start to read field instance refered field pFieldName, instance indexed pInstance.
void FieldReadEnd ()
 Stop to read the current field.
bool FieldReadIsBlock ()
 Return if current field is a block.
bool FieldReadBlockBegin ()
 Start to read a field block.
void FieldReadBlockEnd ()
 Stop to read a field block.
int FieldReadGetCount ()
 Return the number of read field.
int FieldReadGetRemain ()
 Return the number of field remaining to be read.
char FieldReadGetType ()
 Return current field value type.
char FieldReadCH ()
 Return current field value as a char.
char FieldReadCH (char *pFieldName, char pDefault=0)
 Return field pFieldName's value as a char.
char * FieldReadC ()
 Return current field value as a char pointer.
char * FieldReadC (char *pFieldName, char *pDefault="")
 Return field pFieldName's value as a char pointer.
char * FieldReadS ()
 Return current field value as a string (a char pointer).
char * FieldReadS (char *pFieldName, char *pDefault="")
 Return field pFieldName's value as a char pointer.
bool FieldReadB ()
 Return current field value as an bool.
bool FieldReadB (char *pFieldName, bool pDefault=false)
 Return field pFieldName's value as an integer.
int FieldReadI ()
 Return current field value as an integer.
int FieldReadI (char *pFieldName, int pDefault=0)
 Return field pFieldName's value as an integer.
kLongLong FieldReadLL ()
 Return current field value as an integer.
kLongLong FieldReadLL (char *pFieldName, kLongLong pDefault=0)
 Return field pFieldName's value as an integer.
float FieldReadF ()
 Return current field value as a float.
float FieldReadF (char *pFieldName, float pDefault=0)
 Return field pFieldName's value as a float.
double FieldReadD ()
 Return current field value as a double.
double FieldReadD (char *pFieldName, double pDefault=0)
 Return field pFieldName's value as a double.
KTime FieldReadT (char *pFieldName)
 Return field pFieldName's value as a time value.
KTime FieldReadT ()
 Return field pFieldName's value as a time value.
KTimeSpan FieldReadTS (char *pFieldName)
 Return field pFieldName's value as a timespan value.
KTimeSpan FieldReadTS ()
 Return field pFieldName's value as a timespan value.
void FieldReadFn (float *pValue, kUInt pn)
 Return current field value as a n floats array.
void FieldRead3F (float *pValue)
 Return current field value as a 3 floats array.
void FieldRead4F (float *pValue)
 Return current field value as a 4 floats array.
void FieldReadFn (char *pFieldName, float *pValue, float *pDefault, kUInt pn)
 Return field pFieldName's value as n floats array.
void FieldRead3F (char *pFieldName, float *pValue, float *pDefault=NULL)
 Return field pFieldName's value as 4 floats array.
void FieldRead4F (char *pFieldName, float *pValue, float *pDefault=NULL)
 Return field pFieldName's value as 3 floats array.
void FieldReadDn (double *pValue, kUInt pn)
 Return current field value as a n doubles array.
void FieldRead3D (double *pValue)
 Return current field value as a 3 doubles array.
void FieldRead4D (double *pValue)
 Return current field value as a 4 doubles array.
void FieldReadDn (char *pFieldName, double *pValue, double *pDefault, kUInt pn)
 Return field pFieldName's value as n doubles array.
void FieldRead3D (char *pFieldName, double *pValue, double *pDefault=NULL)
 Return field pFieldName's value as 4 doubles array.
void FieldRead4D (char *pFieldName, double *pValue, double *pDefault=NULL)
 Return field pFieldName's value as 3 doubles array.
void * FieldReadR (int *pByteSize)
 Return current field value as raw data.
void * FieldReadR (char *pFieldName, int *pByteSize)
 Return field pFieldName's value as raw data.

Write

The following functions let you write to a binary data stream.

bool WriteBegin ()
 Start write a new stream.
bool WriteEnd ()
 Completed stream writing.
void FieldWriteBegin (char *pFieldName)
 Start to write a field called pFieldName.
void FieldWriteEnd ()
 Stop to write the current field.
void FieldWriteBlockBegin ()
 Start to write a field block.
void FieldWriteObjectBegin (char *pObjectType, char *pName, char *pSubType=NULL)
 Start to write an object reference field.
void FieldWriteObjectEnd ()
 Stop to write an object reference field.
void FieldWriteBlockBegin (char *pFileName)
 Start to write a field block in file pFileName.
void FieldWriteBlockEnd ()
 Stop to write a block of field.
void FieldWriteCH (char pValue)
 Write field value as a char.
void FieldWriteCH (char *pFieldName, char pValue)
 Write field pFieldName field with a char as a value.
void FieldWriteC (char *pValue)
 Write field value as char pointer pValue.
void FieldWriteC (char *pFieldName, char *pValue)
 Write field pFieldName with a char pointer as a value.
void FieldWriteS (KString pValue)
 Write field value as KString pValue.
void FieldWriteS (char *pFieldName, KString pValue)
 Write field pFieldName field with a KString as a value.
void FieldWriteB (bool pValue)
 Write field value as bool.
void FieldWriteB (char *pFieldName, bool pValue)
 Write field pFieldName field with a bool value.
void FieldWriteI (int pValue)
 Write field value as integer.
void FieldWriteI (char *pFieldName, int pValue)
 Write field pFieldName field with an int as a value.
void FieldWriteLL (kLongLong pValue)
 Write field value as 64 bit integer.
void FieldWriteLL (char *pFieldName, kLongLong pValue)
 Write field pFieldName field with an 64 bit int as a value.
void FieldWriteF (float pValue)
 Write field value as float.
void FieldWriteF (char *pFieldName, float pValue)
 Write field pFieldName field with a float as a value.
void FieldWriteD (double pValue)
 Write field value as double.
void FieldWriteD (char *pFieldName, double pValue)
 Write field pFieldName field with a double as a value.
void FieldWriteT (KTime pTime)
 Write field value as time value.
void FieldWriteT (char *pFieldName, KTime pValue)
 Write field pFieldName field with a time as a value.
void FieldWriteTS (KTimeSpan pTimeSpan)
 Write field value as timespan value.
void FieldWriteTS (char *pFieldName, KTimeSpan pValue)
 Write field pFieldName field with a timespan as a value.
void FieldWriteFn (float *pValue, kUInt pn)
 Write field value as an array of n floats (nF vector).
void FieldWriteFn (char *pFieldName, float *pValue, kUInt pn)
 Write field pFieldName field with a array of n floats as a value.
void FieldWrite3F (float *pValue)
 Write field value as an array of 3 floats (3F vector).
void FieldWrite3F (char *pFieldName, float *pValue)
 Write field pFieldName field with a array of 3 floats as a value.
void FieldWrite4F (float *pValue)
 Write field value as an array of 4 floats (4F vector).
void FieldWrite4F (char *pFieldName, float *pValue)
 Write field pFieldName field with a array of 4 floats as a value.
void FieldWriteDn (double *pValue, kUInt pn)
 Write field value as an array of n doubles (nD vector).
void FieldWriteDn (char *pFieldName, double *pValue, kUInt pn)
 Write field pFieldName field with a array of n doubles as a value.
void FieldWrite3D (double *pValue)
 Write field value as an array of 3 doubles (3D vector).
void FieldWrite3D (char *pFieldName, double *pValue)
 Write field pFieldName field with a array of 3 doubles as a value.
void FieldWrite4D (double *pValue)
 Write field value as an array of 4 doubles (4D vector).
void FieldWrite4D (char *pFieldName, double *pValue)
 Write field pFieldName field with a array of 4 doubles as a value.
void FieldWriteR (void *pRawData, int pByteSize)
 Write field value as a raw data.
void FieldWriteR (char *pFieldName, void *pRawData, int pByteSize)
 Write field pFieldName field with raw data as a value.
void FieldWriteObjectReference (char *pName)
 Write object reference pName in the current field.
void FieldWriteObjectReference (char *pFieldName, char *pName)
 Write object reference pName in field pFieldName.
void WriteComments (char *pFieldName)
 Write comments, only effective in ASCII mode.

Public Member Functions

 KFbxDataStream ()
 Constructor.
 KFbxDataStream (KFbxDataStream const &pDataStream)
 Copy Constructor.
 ~KFbxDataStream ()
 Destructor.
KFbxDataStreamoperator= (const KFbxDataStream &pDataStream)
 Assignment operator.


Constructor & Destructor Documentation

KFbxDataStream (  ) 

Constructor.

KFbxDataStream ( KFbxDataStream const &  pDataStream  ) 

Copy Constructor.

~KFbxDataStream (  ) 

Destructor.


Member Function Documentation

bool ReadBegin (  ) 

Start reading the stream.

bool ReadEnd (  ) 

End reading the stream.

void FieldReadResetPosition (  ) 

Reset the field read position.

int FieldGetCount (  ) 

Return the number of fields.

char* FieldGetName ( int  pFieldIndex  ) 

Get the name of a field using an index indexed pFieldIndex.

Parameters:
pFieldIndex 

int FieldGetInstanceCount ( char *  pFieldName  ) 

Get number of instance field pFieldName has.

Parameters:
pFieldName 

bool FieldReadBegin ( int  pFieldIndex,
int  pInstance 
)

Start to read field instance refered by field indexed pFieldIndex, instance indexed pInstance.

Parameters:
pFieldName 
pInstance 

bool FieldReadBegin ( char *  pFieldName  ) 

Start to read field pFieldName.

Parameters:
pFieldName 

bool FieldReadBegin ( char *  pFieldName,
int  pInstance 
)

Start to read field instance refered field pFieldName, instance indexed pInstance.

Parameters:
pFieldName 
pInstance 

void FieldReadEnd (  ) 

Stop to read the current field.

bool FieldReadIsBlock (  ) 

Return if current field is a block.

bool FieldReadBlockBegin (  ) 

Start to read a field block.

void FieldReadBlockEnd (  ) 

Stop to read a field block.

int FieldReadGetCount (  ) 

Return the number of read field.

int FieldReadGetRemain (  ) 

Return the number of field remaining to be read.

char FieldReadGetType (  ) 

Return current field value type.

char FieldReadCH (  ) 

Return current field value as a char.

char FieldReadCH ( char *  pFieldName,
char  pDefault = 0 
)

Return field pFieldName's value as a char.

Parameters:
pFieldName 
pDefault 

char* FieldReadC (  ) 

Return current field value as a char pointer.

char* FieldReadC ( char *  pFieldName,
char *  pDefault = "" 
)

Return field pFieldName's value as a char pointer.

Parameters:
pFieldName 
pDefault 

char* FieldReadS (  )  [inline]

Return current field value as a string (a char pointer).

Definition at line 172 of file kfbxdatastream.h.

char* FieldReadS ( char *  pFieldName,
char *  pDefault = "" 
) [inline]

Return field pFieldName's value as a char pointer.

Parameters:
pFieldName 
pDefault 

Definition at line 178 of file kfbxdatastream.h.

bool FieldReadB (  )  [inline]

Return current field value as an bool.

Definition at line 182 of file kfbxdatastream.h.

bool FieldReadB ( char *  pFieldName,
bool  pDefault = false 
) [inline]

Return field pFieldName's value as an integer.

Parameters:
pFieldName 
pDefault 

Definition at line 188 of file kfbxdatastream.h.

int FieldReadI (  ) 

Return current field value as an integer.

int FieldReadI ( char *  pFieldName,
int  pDefault = 0 
)

Return field pFieldName's value as an integer.

Parameters:
pFieldName 
pDefault 

kLongLong FieldReadLL (  ) 

Return current field value as an integer.

kLongLong FieldReadLL ( char *  pFieldName,
kLongLong  pDefault = 0 
)

Return field pFieldName's value as an integer.

Parameters:
pFieldName 
pDefault 

float FieldReadF (  ) 

Return current field value as a float.

float FieldReadF ( char *  pFieldName,
float  pDefault = 0 
)

Return field pFieldName's value as a float.

Parameters:
pFieldName 
pDefault 

double FieldReadD (  ) 

Return current field value as a double.

double FieldReadD ( char *  pFieldName,
double  pDefault = 0 
)

Return field pFieldName's value as a double.

Parameters:
pFieldName 
pDefault 

KTime FieldReadT ( char *  pFieldName  ) 

Return field pFieldName's value as a time value.

Parameters:
pFieldName 

KTime FieldReadT (  ) 

Return field pFieldName's value as a time value.

KTimeSpan FieldReadTS ( char *  pFieldName  ) 

Return field pFieldName's value as a timespan value.

Parameters:
pFieldName 

KTimeSpan FieldReadTS (  ) 

Return field pFieldName's value as a timespan value.

void FieldReadFn ( float *  pValue,
kUInt  pn 
) [inline]

Return current field value as a n floats array.

Parameters:
pDefault 
pn 

Definition at line 252 of file kfbxdatastream.h.

void FieldRead3F ( float *  pValue  )  [inline]

Return current field value as a 3 floats array.

Parameters:
pDefault 

Definition at line 257 of file kfbxdatastream.h.

void FieldRead4F ( float *  pValue  )  [inline]

Return current field value as a 4 floats array.

Parameters:
pDefault 

Definition at line 262 of file kfbxdatastream.h.

void FieldReadFn ( char *  pFieldName,
float *  pValue,
float *  pDefault,
kUInt  pn 
)

Return field pFieldName's value as n floats array.

Parameters:
pFieldName 
pValue 
pDefault 
pn 

void FieldRead3F ( char *  pFieldName,
float *  pValue,
float *  pDefault = NULL 
) [inline]

Return field pFieldName's value as 4 floats array.

Parameters:
pFieldName 
pValue 
pDefault 

Definition at line 277 of file kfbxdatastream.h.

void FieldRead4F ( char *  pFieldName,
float *  pValue,
float *  pDefault = NULL 
) [inline]

Return field pFieldName's value as 3 floats array.

Parameters:
pFieldName 
pValue 
pDefault 

Definition at line 284 of file kfbxdatastream.h.

void FieldReadDn ( double *  pValue,
kUInt  pn 
) [inline]

Return current field value as a n doubles array.

Parameters:
pValue 
pn 

Definition at line 290 of file kfbxdatastream.h.

void FieldRead3D ( double *  pValue  )  [inline]

Return current field value as a 3 doubles array.

Parameters:
pValue 

Definition at line 295 of file kfbxdatastream.h.

void FieldRead4D ( double *  pValue  )  [inline]

Return current field value as a 4 doubles array.

Parameters:
pValue 

Definition at line 300 of file kfbxdatastream.h.

void FieldReadDn ( char *  pFieldName,
double *  pValue,
double *  pDefault,
kUInt  pn 
)

Return field pFieldName's value as n doubles array.

Parameters:
pFieldName 
pValue 
pDefault 

void FieldRead3D ( char *  pFieldName,
double *  pValue,
double *  pDefault = NULL 
) [inline]

Return field pFieldName's value as 4 doubles array.

Parameters:
pFieldName 
pValue 
pDefault 

Definition at line 314 of file kfbxdatastream.h.

void FieldRead4D ( char *  pFieldName,
double *  pValue,
double *  pDefault = NULL 
) [inline]

Return field pFieldName's value as 3 doubles array.

Parameters:
pFieldName 
pValue 
pDefault 

Definition at line 321 of file kfbxdatastream.h.

void* FieldReadR ( int *  pByteSize  ) 

Return current field value as raw data.

Only works when file is binary.

Parameters:
pByteSize 

void* FieldReadR ( char *  pFieldName,
int *  pByteSize 
)

Return field pFieldName's value as raw data.

Only works when file is binary.

Parameters:
pFieldName 
pByteSize 

bool WriteBegin (  ) 

Start write a new stream.

bool WriteEnd (  ) 

Completed stream writing.

void FieldWriteBegin ( char *  pFieldName  ) 

Start to write a field called pFieldName.

Parameters:
pFieldName 

void FieldWriteEnd (  ) 

Stop to write the current field.

void FieldWriteBlockBegin (  ) 

Start to write a field block.

void FieldWriteObjectBegin ( char *  pObjectType,
char *  pName,
char *  pSubType = NULL 
)

Start to write an object reference field.

Parameters:
pObjectType 
pName 
pSubType 

void FieldWriteObjectEnd (  ) 

Stop to write an object reference field.

void FieldWriteBlockBegin ( char *  pFileName  ) 

Start to write a field block in file pFileName.

This function is disabled but kept accessible for the FB SDK.

Parameters:
pFileName 

void FieldWriteBlockEnd (  ) 

Stop to write a block of field.

void FieldWriteCH ( char  pValue  ) 

Write field value as a char.

Parameters:
pValue 

void FieldWriteCH ( char *  pFieldName,
char  pValue 
) [inline]

Write field pFieldName field with a char as a value.

Parameters:
pFieldName 
pValue 

Definition at line 394 of file kfbxdatastream.h.

void FieldWriteC ( char *  pValue  ) 

Write field value as char pointer pValue.

Parameters:
pValue 

void FieldWriteC ( char *  pFieldName,
char *  pValue 
) [inline]

Write field pFieldName with a char pointer as a value.

Parameters:
pFieldName 
pValue 

Definition at line 405 of file kfbxdatastream.h.

void FieldWriteS ( KString  pValue  )  [inline]

Write field value as KString pValue.

Parameters:
pValue 

Definition at line 410 of file kfbxdatastream.h.

References KString::Buffer().

void FieldWriteS ( char *  pFieldName,
KString  pValue 
) [inline]

Write field pFieldName field with a KString as a value.

Parameters:
pFieldName 
pValue 

Definition at line 416 of file kfbxdatastream.h.

References KString::Buffer().

void FieldWriteB ( bool  pValue  )  [inline]

Write field value as bool.

Parameters:
pValue 

Definition at line 421 of file kfbxdatastream.h.

void FieldWriteB ( char *  pFieldName,
bool  pValue 
) [inline]

Write field pFieldName field with a bool value.

Parameters:
pFieldName 
pValue 

Definition at line 427 of file kfbxdatastream.h.

void FieldWriteI ( int  pValue  ) 

Write field value as integer.

Parameters:
pValue 

void FieldWriteI ( char *  pFieldName,
int  pValue 
) [inline]

Write field pFieldName field with an int as a value.

Parameters:
pFieldName 
pValue 

Definition at line 438 of file kfbxdatastream.h.

void FieldWriteLL ( kLongLong  pValue  ) 

Write field value as 64 bit integer.

Parameters:
pValue 

void FieldWriteLL ( char *  pFieldName,
kLongLong  pValue 
) [inline]

Write field pFieldName field with an 64 bit int as a value.

Parameters:
pFieldName 
pValue 

Definition at line 449 of file kfbxdatastream.h.

void FieldWriteF ( float  pValue  ) 

Write field value as float.

Parameters:
pValue 
Remarks:
Only compatible with 1) MotionBuilder 4.0 and later 2) FBX SDK 3.6.1 and later.

void FieldWriteF ( char *  pFieldName,
float  pValue 
) [inline]

Write field pFieldName field with a float as a value.

Parameters:
pFieldName 
pValue 
Remarks:
Only compatible with 1) MotionBuilder 4.0 and later 2) FBX SDK 3.6.1 and later.

Definition at line 462 of file kfbxdatastream.h.

void FieldWriteD ( double  pValue  ) 

Write field value as double.

Parameters:
pValue 

void FieldWriteD ( char *  pFieldName,
double  pValue 
) [inline]

Write field pFieldName field with a double as a value.

Parameters:
pFieldName 
pValue 

Definition at line 473 of file kfbxdatastream.h.

void FieldWriteT ( KTime  pTime  ) 

Write field value as time value.

Parameters:
pTime 

void FieldWriteT ( char *  pFieldName,
KTime  pValue 
) [inline]

Write field pFieldName field with a time as a value.

Parameters:
pFieldName 
pValue 

Definition at line 484 of file kfbxdatastream.h.

void FieldWriteTS ( KTimeSpan  pTimeSpan  ) 

Write field value as timespan value.

Parameters:
pTimeSpan 

void FieldWriteTS ( char *  pFieldName,
KTimeSpan  pValue 
) [inline]

Write field pFieldName field with a timespan as a value.

Parameters:
pFieldName 
pValue 

Definition at line 495 of file kfbxdatastream.h.

void FieldWriteFn ( float *  pValue,
kUInt  pn 
) [inline]

Write field value as an array of n floats (nF vector).

Parameters:
pValue 
pn 

Definition at line 501 of file kfbxdatastream.h.

void FieldWriteFn ( char *  pFieldName,
float *  pValue,
kUInt  pn 
) [inline]

Write field pFieldName field with a array of n floats as a value.

Parameters:
pFieldName 
pValue 
pn 

Definition at line 508 of file kfbxdatastream.h.

void FieldWrite3F ( float *  pValue  )  [inline]

Write field value as an array of 3 floats (3F vector).

Parameters:
pValue 

Definition at line 513 of file kfbxdatastream.h.

void FieldWrite3F ( char *  pFieldName,
float *  pValue 
) [inline]

Write field pFieldName field with a array of 3 floats as a value.

Parameters:
pFieldName 
pValue 

Definition at line 519 of file kfbxdatastream.h.

void FieldWrite4F ( float *  pValue  )  [inline]

Write field value as an array of 4 floats (4F vector).

Parameters:
pValue 

Definition at line 524 of file kfbxdatastream.h.

void FieldWrite4F ( char *  pFieldName,
float *  pValue 
) [inline]

Write field pFieldName field with a array of 4 floats as a value.

Parameters:
pFieldName 
pValue 

Definition at line 530 of file kfbxdatastream.h.

void FieldWriteDn ( double *  pValue,
kUInt  pn 
) [inline]

Write field value as an array of n doubles (nD vector).

Parameters:
pValue 
pn 

Definition at line 536 of file kfbxdatastream.h.

void FieldWriteDn ( char *  pFieldName,
double *  pValue,
kUInt  pn 
) [inline]

Write field pFieldName field with a array of n doubles as a value.

Parameters:
pFieldName 
pValue 
pn 

Definition at line 543 of file kfbxdatastream.h.

void FieldWrite3D ( double *  pValue  )  [inline]

Write field value as an array of 3 doubles (3D vector).

Parameters:
pValue 

Definition at line 548 of file kfbxdatastream.h.

void FieldWrite3D ( char *  pFieldName,
double *  pValue 
) [inline]

Write field pFieldName field with a array of 3 doubles as a value.

Parameters:
pFieldName 
pValue 

Definition at line 554 of file kfbxdatastream.h.

void FieldWrite4D ( double *  pValue  )  [inline]

Write field value as an array of 4 doubles (4D vector).

Parameters:
pValue 

Definition at line 559 of file kfbxdatastream.h.

void FieldWrite4D ( char *  pFieldName,
double *  pValue 
) [inline]

Write field pFieldName field with a array of 4 doubles as a value.

Parameters:
pFieldName 
pValue 

Definition at line 565 of file kfbxdatastream.h.

void FieldWriteR ( void *  pRawData,
int  pByteSize 
)

Write field value as a raw data.

Parameters:
pRawData 
pByteSize 
Remarks:
Only works when file is binary.

void FieldWriteR ( char *  pFieldName,
void *  pRawData,
int  pByteSize 
) [inline]

Write field pFieldName field with raw data as a value.

Parameters:
pFieldName 
pRawData 
pByteSize 
Remarks:
Only works when file is binary.

Definition at line 580 of file kfbxdatastream.h.

void FieldWriteObjectReference ( char *  pName  )  [inline]

Write object reference pName in the current field.

Parameters:
pName 

Definition at line 585 of file kfbxdatastream.h.

void FieldWriteObjectReference ( char *  pFieldName,
char *  pName 
) [inline]

Write object reference pName in field pFieldName.

Parameters:
pFieldName 
pName 

Definition at line 591 of file kfbxdatastream.h.

void WriteComments ( char *  pFieldName  ) 

Write comments, only effective in ASCII mode.

Parameters:
pFieldName 

KFbxDataStream& operator= ( const KFbxDataStream pDataStream  ) 

Assignment operator.