fbxsdk/fileio/fbx/fbxio.h Source File

fbxio.h
Go to the documentation of this file.
1 /****************************************************************************************
2 
3  Copyright (C) 2014 Autodesk, Inc.
4  All rights reserved.
5 
6  Use of this software is subject to the terms of the Autodesk license agreement
7  provided at the time of installation or download, or which otherwise accompanies
8  this software in either electronic or hard copy form.
9 
10 ****************************************************************************************/
11 
13 #ifndef _FBXSDK_FILEIO_FBX_IO_H_
14 #define _FBXSDK_FILEIO_FBX_IO_H_
15 
16 #include <fbxsdk/fbxsdk_def.h>
17 
21 
22 #include <fbxsdk/fbxsdk_nsbegin.h>
23 
24 class FbxIO;
25 class FbxReader;
26 class FbxWriter;
27 class FbxFile;
28 class FbxStream;
29 class FbxXRefManager;
30 
119 //File version numbers
120 #define FBX_FILE_VERSION_2000 2000 //FBX 2.0
121 #define FBX_FILE_VERSION_2001 2001 //FBX 2.01
122 #define FBX_FILE_VERSION_3000 3000 //FBX 3.0
123 #define FBX_FILE_VERSION_3001 3001 //FBX 3.01
124 #define FBX_FILE_VERSION_4000 4000 //FBX 4.0
125 #define FBX_FILE_VERSION_4001 4001 //FBX 4.01
126 #define FBX_FILE_VERSION_4050 4050 //FBX 4.5
127 #define FBX_FILE_VERSION_5000 5000 //FBX 5.0
128 #define FBX_FILE_VERSION_5800 5800 //FBX 5.8
129 #define FBX_FILE_VERSION_6000 6000 //FBX 6.0
130 #define FBX_FILE_VERSION_6100 6100 //FBX 6.1 (guarantee compatibility with Autodesk 2010 products)
131 #define FBX_FILE_VERSION_7000 7000 //Compatible with 7.1, and taken as such
132 #define FBX_FILE_VERSION_7099 7099 //Compatible with 7.1, and taken as such
133 #define FBX_FILE_VERSION_7100 7100 //FBX 7.1 (guarantee compatibility with Autodesk 2011 products)
134 #define FBX_FILE_VERSION_7200 7200 //FBX 7.2 (guarantee compatibility with Autodesk 2012 products)
135 #define FBX_FILE_VERSION_7300 7300 //FBX 7.3 (guarantee compatibility with Autodesk 2013 products)
136 #define FBX_FILE_VERSION_7400 7400 //FBX 7.4 (guarantee compatibility with Autodesk 2014 products)
137 
138 //Default file version number used when writing new FBX files
139 #define FBX_DEFAULT_FILE_VERSION FBX_FILE_VERSION_7400
140 
141 //File version compatibility strings
142 #define FBX_53_MB55_COMPATIBLE "FBX53_MB55"
143 #define FBX_60_COMPATIBLE "FBX60_MB60"
144 #define FBX_2005_08_COMPATIBLE "FBX200508_MB70"
145 #define FBX_2006_02_COMPATIBLE "FBX200602_MB75"
146 #define FBX_2006_08_COMPATIBLE "FBX200608"
147 #define FBX_2006_11_COMPATIBLE "FBX200611"
148 #define FBX_2009_00_COMPATIBLE "FBX200900"
149 #define FBX_2009_00_V7_COMPATIBLE "FBX200900v7"
150 #define FBX_2010_00_COMPATIBLE "FBX201000"
151 #define FBX_2011_00_COMPATIBLE "FBX201100"
152 #define FBX_2012_00_COMPATIBLE "FBX201200"
153 #define FBX_2013_00_COMPATIBLE "FBX201300"
154 #define FBX_2014_00_COMPATIBLE "FBX201400"
155 
169 FBXSDK_DLL int FbxFileVersionStrToInt(const char* pFileVersion);
170 
172 enum
173 {
177 };
178 
183 {
184 public:
186  bool mIsOK;
192  double mResolutionW;
194  double mResolutionH;
195 
203 
208  void Reset();
211 };
212 
218 {
219 public:
226 
228  virtual ~FbxIOFileHeaderInfo();
230 
235 
237  virtual void Reset();
238 
242  virtual bool ReadExtendedHeaderInformation(FbxIO*);
244 
247 
249 
251 
256 
259 
262 
267 
269  bool mIOPlugin;
270 
272  bool mPLE;
274 };
275 
319 {
320 public:
321 
325  {
328 
331  : mFbx(pFbx)
332  , mXRefManager(NULL)
333  {
334  if( mFbx )
335  {
336  mXRefManager = mFbx->ProjectGetXRefManager();
337  mFbx->ProjectSetXRefManager(&pXRefManager);
338  }
339  }
340 
343  {
344  if( mFbx )
345  {
346  mFbx->ProjectSetXRefManager(mXRefManager);
347  }
348  }
349  };
350 
355  static FbxIO* Create(FbxStatus& pStatus){ return FbxNew< FbxIO >(pStatus); }
356 
358  FbxIO(FbxStatus& pStatus);
359 
361  virtual ~FbxIO();
362 
369 
379  bool ProjectOpen(void* pAddress, FbxULong pMaxLength, FbxReader* pReader, bool pCheckCRC = false, bool pOpenMainSection = true, FbxIOFileHeaderInfo* pFileHeaderInfo = NULL);
380 
389  bool ProjectOpen(const char* pName, FbxReader* pReader, bool pCheckCRC = false, bool pOpenMainSection = true, FbxIOFileHeaderInfo* pFileHeaderInfo = NULL);
390 
400  bool ProjectOpen(FbxStream* pStream, void* pStreamData, FbxReader* pReader, bool pCheckCRC = false, bool pOpenMainSection = true, FbxIOFileHeaderInfo* pFileHeaderInfo = NULL);
401 
410  bool ProjectOpenDirect(const char* pName, FbxReader* pReader, bool pCheckCRC = false, bool pOpenMainSection = true, FbxIOFileHeaderInfo* pFileHeaderInfo = NULL);
411 
421  bool ProjectCreate(void* pAddress, FbxUInt pSize, FbxWriter* pWriter, bool pBinary, bool pEncrypted, FbxIOFileHeaderInfo* pFileHeaderInfo = NULL);
422 
431  bool ProjectCreate(const char* pName, FbxWriter* pWriter, bool pBinary, bool pEncrypted, FbxIOFileHeaderInfo* pFileHeaderInfo = NULL);
432 
442  bool ProjectCreate(FbxStream* pStream, void* pStreamData, FbxWriter* pWriter, bool pBinary, bool pEncrypted, FbxIOFileHeaderInfo* pFileHeaderInfo = NULL);
443 
452  bool ProjectCreateDirect(const char* pName, FbxWriter* pWriter, bool pBinary, bool pEncrypted, FbxIOFileHeaderInfo* pFileHeaderInfo = NULL);
453 
462  bool ProjectCreateEmpty(const char* pName, FbxWriter* pWriter, int pVersion, bool pBinary, bool pEncrypted);
463 
473  bool ProjectCreateEmpty(FbxStream* pStream, void* pStreamData, FbxWriter* pWriter, int pVersion, bool pBinary, bool pEncrypted);
474 
478  bool ProjectWrite_BeginFileHeader();
479 
483  bool ProjectWrite_BeginExtendedHeader();
484 
489  bool ProjectWrite_WriteExtendedHeader(const FbxIOFileHeaderInfo* pExtendedHeader);
490 
494  bool ProjectWrite_EndExtendedHeader();
495 
499  bool ProjectWrite_EndFileHeader();
500 
506  bool ProjectClose(void** pData=0, size_t* pSize=0);
507 
511  void ProjectSetXRefManager(const FbxXRefManager*);
512 
516  const FbxXRefManager* ProjectGetXRefManager() const;
517 
532  bool ProjectCreateEmbeddedFolder(const FbxXRefManager& pXRefManager, FbxString& pCreatedFolder, const char* pUserDefinedFolder = NULL);
533 
537  void SetEmbedded(bool pValue);
538 
542  void SetEmbeddingExtractionFolder(const char* pExtractionFolder);
543 
546  const char* GetEmbeddingExtractionFolder();
547 
551  bool IsEmbedded() const;
552 
556  bool IsBinary() const;
557 
561  bool IsEncrypted () const;
562 
566  bool CheckCRC();
567 
571  FbxUInt32 GetFileVersionNumber() const;
572 
576  void CacheSize(FbxUInt32 pCacheSize);
577 
581  FbxUInt32 CacheSize() const;
582 
584 
595 
597  bool Fbx7Support() const;
598 
602  void Fbx7Support(bool pSupport);
603 
605  bool CompressArrays() const;
606 
610  void CompressArrays(bool pCompress);
611 
613  int CompressMinimumSize() const;
614 
618  void CompressMinimumSize(int pSize);
619 
621  int CompressLevel() const;
622 
628  void CompressLevel(int pLevel);
630 
636 
640  bool ProjectOpenMainSection();
641 
645  int ProjectGetExtensionSectionCount() const;
646 
651  bool ProjectOpenExtensionSection(int pExtensionSectionIndex);
652 
657  bool ProjectCreateExtensionSection(bool pOverwriteLastExtensionSection = false);
658 
661  void ProjectCloseSection();
662 
666  int ProjectGetCurrentSection() const;
667 
671  int ProjectGetCurrentSectionMode() const;
672 
676  int ProjectGetCurrentSectionVersion() const;
677 
685  int ProjectGetSectionVersion(int pSection) const;
686 
693  static void ProjectConvertVersionNumber(int pVersion, int& pMajor, int& pMinor, int& pRevision);
694 
698  bool IsPasswordProtected() const;
699 
705  bool CheckPassword(const char* pPassword);
706 
713  bool WritePassword(const char* pPassword);
714 
716 
721 
725  const char* GetFilename() const;
726 
731  FbxString GetDataDirectory(bool pAutoCreate = true);
732 
741  FbxString GetMediaDirectory(bool pCreate = false, const char* pUserDefinedFolder = NULL);
742 
748  FbxString GetContainerTemplateDirectory(const char* pTemplateName, bool pCreate);
749 
754  char* GetRelativePath(const char* pPath);
755 
760  char* GetRelativeFilePath(const char* pFilePath);
761 
766  char* GetFullPath(const char* pRelativePath);
767 
772  char* GetFullFilePath(const char* pRelativeFilePath);
773 
778  char* GetTmpProjectName(const char* pName) const;
779 
786  bool SwapFromTmpProject(const char* pName, char* pError=NULL, int pErrorSize=0);
787 
789 
795 
798  void FieldReadResetPosition();
799 
803  int FieldGetCount() const;
804 
809  const char* FieldGetName(int pFieldIndex) const;
810 
815  int FieldGetInstanceCount(const char* pFieldName) const;
816 
822  bool FieldReadBegin(int pFieldIndex, int pInstance);
823 
828  bool FieldReadBegin(const char* pFieldName);
829 
835  bool FieldReadBegin(const char* pFieldName, int pInstance);
836 
838  void FieldReadEnd();
839 
841  bool FieldReadIsBlock();
842 
844  bool FieldReadBlockBegin();
845 
847  void FieldReadBlockEnd();
848 
850  int FieldReadGetCount() const;
851 
853  int FieldReadGetRemain() const;
854 
856  char FieldReadGetType() const;
857 
859  char FieldReadCH();
860 
865  char FieldReadCH(const char* pFieldName, char pDefault=0);
866 
868  const char* FieldReadC();
869 
874  const char* FieldReadC(const char* pFieldName, const char* pDefault="");
875 
877  const char* FieldReadS();
878 
883  const char* FieldReadS(const char* pFieldName, const char* pDefault="");
884 
886  bool FieldReadB();
887 
892  bool FieldReadB(const char* pFieldName, bool pDefault = false);
893 
895  int FieldReadI();
896 int FieldReadI(const char* pFieldName, int pDefault=0);
901 
903  FbxLongLong FieldReadLL();
904 
909  FbxLongLong FieldReadLL(const char* pFieldName, FbxLongLong pDefault=0);
910 
912  float FieldReadF();
913 
918  float FieldReadF(const char* pFieldName, float pDefault=0);
919 
921  double FieldReadD();
922 
927  double FieldReadD(const char* pFieldName, double pDefault=0);
928 
932  FbxTime FieldReadT(const char* pFieldName);
933 
935  FbxTime FieldReadT();
936 
940  FbxTimeSpan FieldReadTS(const char* pFieldName);
941 
943  FbxTimeSpan FieldReadTS();
944 
949  void FieldReadFn(float* pValue, FbxUInt pn);
950 
954  void FieldRead3F(float* pValue);
955 
959  void FieldRead4F(float* pValue);
960 
967  void FieldReadFn(const char* pFieldName, float* pValue, const float *pDefault, FbxUInt pn);
968 
974  void FieldRead3F(const char* pFieldName, float* pValue, const float* pDefault=NULL);
975 
981  void FieldRead4F(const char* pFieldName, float* pValue, const float* pDefault=NULL);
982 
987  void FieldReadDn(double* pValue, FbxUInt pn);
988 
992  void FieldRead3D(double* pValue);
993 
997  void FieldRead4D(double* pValue);
998 
1005  void FieldReadDn(const char* pFieldName, double* pValue, const double *pDefault, FbxUInt pn);
1006 
1012  void FieldRead3D(const char* pFieldName, double* pValue, const double* pDefault=NULL);
1013 
1019  void FieldRead4D(const char* pFieldName, double* pValue, const double* pDefault=NULL);
1020 
1024  void* FieldReadR(int* pByteSize);
1025 
1030  void* FieldReadR(const char* pFieldName,int* pByteSize);
1031 
1036  FbxChar FieldReadByte();
1038 
1043  FbxChar FieldReadByte(const char* pFieldName, FbxChar pDefault=0);
1044 
1046  FbxUChar FieldReadUByte();
1047 
1052  FbxUChar FieldReadUByte(const char* pFieldName, FbxUChar pDefault=0);
1053 
1055  FbxShort FieldReadShort();
1056 
1061  FbxShort FieldReadShort(const char* pFieldName, FbxShort pDefault=0);
1062 
1064  FbxUShort FieldReadUShort();
1065 
1070  FbxUShort FieldReadUShort(const char* pFieldName, FbxUShort pDefault=0);
1071 
1073  unsigned int FieldReadUI();
1074 
1079  unsigned int FieldReadUI(const char* pFieldName, unsigned int pDefault=0);
1080 
1082  FbxULongLong FieldReadULL();
1083 
1088  FbxULongLong FieldReadULL(const char* pFieldName, FbxULongLong pDefault=0);
1089 
1093  const FbxChar* FieldReadArraySBytes( int &pCount );
1097  const FbxShort* FieldReadArrayShort ( int &pCount );
1101  const FbxUShort* FieldReadArrayUShort( int &pCount );
1105  const unsigned int* FieldReadArrayUI ( int &pCount );
1109  const FbxULongLong* FieldReadArrayULL ( int &pCount );
1110 
1114  const FbxChar* FieldReadArray(int &pCount, const FbxChar*);
1121  const FbxShort* FieldReadArray(int &pCount, const FbxShort*);
1125  const FbxUShort* FieldReadArray(int &pCount, const FbxUShort*);
1129  const unsigned int* FieldReadArray(int &pCount, const unsigned int*);
1133  const FbxULongLong* FieldReadArray(int &pCount, const FbxULongLong*);
1135 
1144  virtual bool FieldReadEmbeddedFile (FbxString& pFileName, FbxString& pRelativeFileName, const char* pEmbeddedMediaDirectory = "", bool *pIsFileCreated=NULL);
1145 
1149  const double* FieldReadArrayD( int &pCount );
1153  const float* FieldReadArrayF( int &pCount );
1157  const int* FieldReadArrayI( int &pCount );
1161  const FbxLongLong*FieldReadArrayLL(int &pCount );
1165  const bool* FieldReadArrayB( int &pCount );
1169  const FbxUChar* FieldReadArrayBytes( int &pCount );
1170 
1174  const int* FieldReadArray(int& pCount, const int*);
1178  const float* FieldReadArray(int& pCount, const float*);
1182  const double* FieldReadArray(int& pCount, const double*);
1186  const FbxLongLong* FieldReadArray(int& pCount, const FbxLongLong*);
1190  const bool* FieldReadArray(int& pCount, const bool*);
1194  const FbxUChar* FieldReadArray(int& pCount, const FbxUChar*);
1195 
1197 
1203 
1207  void FieldWriteBegin(const char* pFieldName);
1208 
1210  void FieldWriteEnd();
1211 
1213  void FieldWriteBlockBegin();
1214 
1220  void FieldWriteObjectBegin(const char* pObjectType, const char* pName, const char* pSubType=NULL);
1221 
1223  void FieldWriteObjectEnd();
1224 
1229  void FieldWriteBlockBegin(const char* pFileName);
1230 
1232  void FieldWriteBlockEnd ();
1233 
1237  void FieldWriteCH(char pValue);
1238 
1243  void FieldWriteCH(const char* pFieldName, char pValue);
1244 
1248  void FieldWriteC(const char* pValue);
1249 
1254  void FieldWriteC(const char* pFieldName, const char* pValue);
1255 
1259  void FieldWriteS(const char* pValue);
1260 
1264  void FieldWriteS(const FbxString& pValue);
1265 
1270  void FieldWriteS(const char* pFieldName, const char* pValue);
1271 
1276  void FieldWriteS(const char* pFieldName, const FbxString& pValue);
1277 
1281  void FieldWriteB(bool pValue);
1282 
1287  void FieldWriteB(const char* pFieldName, bool pValue);
1288 
1292  void FieldWriteI(int pValue);
1293 
1298  void FieldWriteI(const char* pFieldName, int pValue);
1299 
1303  void FieldWriteLL(FbxLongLong pValue);
1304 
1309  void FieldWriteLL(const char* pFieldName, FbxLongLong pValue);
1310 
1315  void FieldWriteF(float pValue);
1316 
1322  void FieldWriteF(const char* pFieldName, float pValue);
1323 
1327  void FieldWriteD(double pValue);
1328 
1333  void FieldWriteD(const char* pFieldName, double pValue);
1334 
1338  void FieldWriteT(FbxTime pTime);
1339 
1344  void FieldWriteT(const char* pFieldName,FbxTime pValue);
1345 
1349  void FieldWriteTS(FbxTimeSpan pTimeSpan);
1350 
1355  void FieldWriteTS(const char* pFieldName,FbxTimeSpan pValue);
1356 
1361  void FieldWriteFn(const float* pValue, FbxUInt pn);
1362 
1368  void FieldWriteFn(const char* pFieldName, const float* pValue, FbxUInt pn);
1369 
1373  void FieldWrite3F(const float* pValue);
1374 
1379  void FieldWrite3F(const char* pFieldName, const float* pValue);
1380 
1384  void FieldWrite4F(const float* pValue);
1385 
1390  void FieldWrite4F(const char* pFieldName, const float* pValue);
1391 
1396  void FieldWriteDn(const double* pValue, FbxUInt pn);
1397 
1403  void FieldWriteDn(const char* pFieldName, const double* pValue, FbxUInt pn);
1404 
1408  void FieldWrite3D(const double* pValue);
1409 
1414  void FieldWrite3D(const char* pFieldName, const double* pValue);
1415 
1419  void FieldWrite4D(const double* pValue);
1420 
1425  void FieldWrite4D(const char* pFieldName, const double* pValue);
1426 
1427  // The maximum number of value entries is, in theory, 2**32. In practice it should be a lot less than that.
1428  // pSize is the number of values to write from each pointer location, and stride is how much we
1429  // advance to get to the next value; if the stride is zero, values are tighly packed together.
1430  // So in total we'll write n * pSize items.
1431 
1438  void FieldWriteArrayD( int n, const double* pValue, int pSize = 1, int pStride = 0 );
1445  void FieldWriteArrayF( int n, const float* pValue, int pSize = 1, int pStride = 0 );
1452  void FieldWriteArrayI( int n, const int* pValue, int pSize = 1, int pStride = 0 );
1459  void FieldWriteArrayLL(int n, const FbxLongLong* pValue, int pSize = 1, int pStride = 0 );
1466  void FieldWriteArrayB( int n, const bool* pValue, int pSize = 1, int pStride = 0 );
1473  void FieldWriteArrayBytes( int n, const FbxUChar* pValue, int pSize = 1, int pStride = 0 );
1474 
1479  void FieldWriteR(const void* pRawData, int pByteSize);
1480 
1486  void FieldWriteR(const char* pFieldName, const void* pRawData, int pByteSize);
1487 
1492 
1496  void FieldWriteByte(FbxChar pValue);
1497 
1502  void FieldWriteByte(const char* pFieldName, FbxChar pValue);
1503 
1507  void FieldWriteUByte(FbxUChar pValue);
1508 
1513  void FieldWriteUByte(const char* pFieldName, FbxUChar pValue);
1514 
1518  void FieldWriteShort(FbxShort pValue);
1519 
1524  void FieldWriteShort(const char* pFieldName, FbxShort pValue);
1525 
1529  void FieldWriteUShort(FbxUShort pValue);
1530 
1535  void FieldWriteUShort(const char* pFieldName, FbxUShort pValue);
1536 
1540  void FieldWriteUI(unsigned int pValue);
1541 
1546  void FieldWriteUI(const char* pFieldName, unsigned int pValue);
1547 
1551  void FieldWriteULL(FbxULongLong pValue);
1552 
1558  void FieldWriteULL(const char* pFieldName, FbxULongLong pValue);
1559 
1566  void FieldWriteArraySBytes( int n, const FbxChar* pValue, int pSize = 1, int pStride = 0 );
1573  void FieldWriteArrayShort( int n, const FbxShort* pValue, int pSize = 1, int pStride = 0 );
1580  void FieldWriteArrayUShort( int n, const FbxUShort* pValue, int pSize = 1, int pStride = 0 );
1587  void FieldWriteArrayUI( int n, const unsigned int* pValue, int pSize = 1, int pStride = 0 );
1594  void FieldWriteArrayULL(int n, const FbxULongLong* pValue, int pSize = 1, int pStride = 0 );
1596 
1600  int GetFieldRMaxChunkSize() const;
1601 
1605  void FieldWriteObjectReference(const char* pName);
1606 
1611  void FieldWriteObjectReference(const char* pFieldName, const char* pName);
1612 
1619  bool FieldWriteEmbeddedFile (FbxString pFileName, FbxString pRelativeFileName);
1620 
1624  void WriteComments(const char* pFieldName);
1625 
1627 
1628 #ifdef _DEBUG
1629  // Dump function for debugging purpose only
1630  void StdoutDump();
1631 #endif
1632 
1640  bool GetHaveLoadedEmbededFile() const;
1641 
1646  void GetMemoryFileInfo(void** pMemPtr, size_t& pSize) const;
1647 
1651  bool IsBeforeVersion6() const;
1652 
1656  void SetIsBeforeVersion6(bool pIsBeforeVersion6);
1657 
1658 /*****************************************************************************************************************************
1659 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
1660 *****************************************************************************************************************************/
1661 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1662  bool ProjectOpen (FbxFile * pFile, FbxReader* pReader, bool pCheckCRC = false, bool pOpenMainSection = true, FbxIOFileHeaderInfo* pFileHeaderInfo = NULL);
1663 
1664 private:
1665  // to resolve warning C4512: 'class' : assignment operator could not be generated
1666  FbxIO& operator=(const FbxIO& pOther);
1667 
1668  FbxStatus& mStatus;
1669 
1670  struct InternalImpl;
1671  InternalImpl* mImpl;
1672 
1674 
1675  void ProjectClear();
1676  void ProjectReset();
1677 
1678  bool ProjectReadHeader(bool pCheckASCIIHeader, bool pCheckCRC, bool pOpenMainSection, FbxIOFileHeaderInfo* pFileHeaderInfo);
1679  bool ProjectReadExtendedHeader(int& pExtendedHeaderEnd, FbxIOFileHeaderInfo* pFileHeaderInfo);
1680  bool BinaryReadHeader();
1681  bool BinaryReadSectionPosition();
1682  bool ASCIIReadHeader();
1683  bool ASCIIReadSectionPosition();
1684 
1685  bool ProjectWriteHeader(FbxIOFileHeaderInfo* pFileHeaderInfo);
1686  bool ProjectWriteExtendedHeader(FbxIOFileHeaderInfo* pFileHeaderInfo);
1687  void BinaryWriteHeader();
1688  void ASCIIWriteHeader();
1689 
1690  void ReadEncryptionKey(char* pEncryptionKey);
1691  void WriteEncryptionKey(char* pEncryptionKey);
1692 
1694 
1695  bool ProjectClearSection();
1696  bool ProjectOpenSection(int pSection);
1697  bool BinaryReadSectionHeader();
1698  int BinaryReadSectionFooter(char* pSourceCheck);
1699  bool BinaryReadExtensionCode(FbxUInt32 pFollowingSectionStart, FbxUInt32& pSectionStart, FbxUInt32& pSectionVersion);
1700  void BinaryReadSectionPassword();
1701 
1702  bool ProjectWriteSectionHeader();
1703  void BinaryWriteSectionFooter();
1704  bool BinaryWriteExtensionCode(FbxUInt32 pSectionStart, FbxUInt32 pSectionVersion);
1705 
1706  FbxString GetCreationTime() const;
1707  void SetCreationTime(FbxString pCreationTime);
1708  void CreateSourceCheck(char* lSourceCheck);
1709  bool TestSourceCheck(char* pSourceCheck, char* pSourceCompany);
1710  FbxString GetMangledCreationTime();
1711  void EncryptSourceCheck(char* pSourceCheck, char* pEncryptionData);
1712  void DecryptSourceCheck(char* pSourceCheck, const char* pEncryptionData);
1713 
1714  void EncryptPasswordV1(FbxString pOriginalPassword, FbxString &pEncryptedPassword);
1715  void DecryptPasswordV1(FbxString pEncryptedPassword, FbxString &pDecryptedPassword);
1716 
1718 
1719  void CheckValidityOfFieldName(const char* pFieldName);
1720  void GetUnusedEmbeddedName(const FbxString& pDirectory, const FbxString& pName, FbxString& pResult, bool pCreateSubdirectory);
1721 
1723  FbxString GetDirectory(bool pAutoCreate, const char* pExtension);
1724 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
1725 };
1726 
1727 #include <fbxsdk/fbxsdk_nsend.h>
1728 
1729 #endif /* _FBXSDK_FILEIO_FBX_IO_H_ */
FbxUInt64 FbxULongLong
Definition: fbxtypes.h:93
unsigned int FbxUInt
Definition: fbxtypes.h:40
FbxLocalTime mCreationTimeStamp
Indicates whether the mCreationTimeStamp member variable contains the actual creation time of the fil...
Definition: fbxio.h:261
FbxAutoResetXRefManager(FbxIO *pFbx, FbxXRefManager &pXRefManager)
Default constructor.
Definition: fbxio.h:330
FBX SDK environment definition.
indicate not in a valid section
Definition: fbxio.h:174
~FbxAutoResetXRefManager()
Destructor.
Definition: fbxio.h:342
indicate currently in the extention section 0
Definition: fbxio.h:176
FbxString mResolutionMode
resolution mode.
Definition: fbxio.h:190
Abstract class for implementing I/O operations through a stream of data.
Definition: fbxstream.h:26
#define NULL
Definition: fbxarch.h:207
bool mPLE
The flag indicates that the header was created by a personal learning edition (PLE) of FBX...
Definition: fbxio.h:272
Utility class to manipulate strings.
Definition: fbxstring.h:66
Base class of other readers used internally.
Definition: fbxreader.h:64
bool mCreationTimeStampPresent
Indicates whether a creation time stamp is preset.
Definition: fbxio.h:258
This class facilitates the testing/reporting of errors.
Definition: fbxstatus.h:26
unsigned short FbxUShort
Definition: fbxtypes.h:38
double mResolutionW
resolution width.
Definition: fbxio.h:192
unsigned char FbxUChar
Definition: fbxtypes.h:36
FBXSDK_DLL int FbxFileVersionStrToInt(const char *pFileVersion)
Convert the FBX file version string to an integral number for <= or >= tests purposes.
Class to encapsulate time units.
Definition: fbxtime.h:44
signed short FbxShort
Definition: fbxtypes.h:37
Render and resolution information.
Definition: fbxio.h:182
FbxString mCreator
Indicates who is the creator of the file Ex: "FBX SDK/FBX Plugins version 2011.2".
Definition: fbxio.h:266
Base class of other writers used internally.
Definition: fbxwriter.h:58
This class manages external references to files.
Definition: fbxxref.h:30
const FbxXRefManager * mXRefManager
Definition: fbxio.h:327
double mResolutionH
resolution height.
Definition: fbxio.h:194
static FbxIO * Create(FbxStatus &pStatus)
Creation function for this FbxIO class.
Definition: fbxio.h:355
signed char FbxChar
Definition: fbxtypes.h:35
FBX header information used at beginning of the FBX file to get or set important values like the file...
Definition: fbxio.h:217
FbxIODefaultRenderResolution mDefaultRenderResolution
FbxIODefaultRenderResolution to handle default resolution values.
Definition: fbxio.h:246
FbxIO represents an FBX file.
Definition: fbxio.h:318
#define FBXSDK_DLL
Definition: fbxarch.h:170
FbxString mCameraName
camera name.
Definition: fbxio.h:188
int mFileVersion
Read only properties (not used for file write)
Definition: fbxio.h:255
unsigned int FbxUInt32
Definition: fbxtypes.h:80
Class for interfacing with files, providing a similar interface for files independant of the OS or fi...
Definition: fbxfile.h:27
Class to encapsulate time intervals.
Definition: fbxtime.h:508
indicate currently in the main section
Definition: fbxio.h:175
bool mIsOK
If the resolution data is ready.
Definition: fbxio.h:186
bool mIOPlugin
Indicates whether the file is created by a genuine Autodesk plug-in or not.
Definition: fbxio.h:269
FbxInt64 FbxLongLong
Definition: fbxtypes.h:92
unsigned long FbxULong
Definition: fbxtypes.h:90