00001
00004 #ifndef FBXFILESDK_KFBXPLUGINS_KFBXUTILITIES_H
00005 #define FBXFILESDK_KFBXPLUGINS_KFBXUTILITIES_H
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #include <fbxfilesdk/fbxfilesdk_def.h>
00042
00043 #include <fbxfilesdk/kfbxplugins/kfbxscene.h>
00044
00045 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00046
00047 class KFbxTexture;
00048
00053
00058 KFBX_DLL KArrayTemplate<KFbxNode*> RemoveBadPolygonsFromMeshes(KFbxScene *pScene);
00060
00061
00066
00072 KFBX_DLL bool IsAnimated(KFbxObject* pObj);
00073
00081 KFBX_DLL bool IsChannelAnimated(KFbxObject* pObj, char* pPropertyName, char* pChannelName = NULL);
00083
00088
00094 KFBX_DLL char* FBXGet_Internet_Source_File(const char *url);
00095
00099 KFBX_DLL void FBXFree_Internet_Buffer(char* pBuf);
00100
00106 KFBX_DLL KString KFbxFullPath(const char* pRelativePath);
00107
00113 KFBX_DLL KString KFbxExtractDirectory(const char* pFilePath);
00114
00121 KFBX_DLL KString KFbxExtractFileName(const char* pFilePath, bool pWithExtension=true);
00122
00127 KFBX_DLL KString KFbxExtractFileExtension(const char* pFilePath);
00128
00136 KFBX_DLL KString KFbxChangeFileExtension(const char* pFilePath, const char* pNewExtension);
00137
00142 KFBX_DLL KString KFbxCleanPath(const char* pFilePath);
00143
00149 KFBX_DLL KString KFbxGetRelativeFilePath(const char* pRootPath, const char* pNewFilePath);
00150
00155 KFBX_DLL bool KFbxIsRelativePath(const char* pFilePath);
00156
00162 KFBX_DLL bool KFbxFileExist(const char* pFilePath);
00163
00168 KFBX_DLL bool KFbxEnsureDirectoryExistance(const char* pFilePath);
00169
00173 KFBX_DLL KString KFbxGetApplicationDirectory();
00174
00179 KFBX_DLL KString KFbxMakeFullPath(const char* pRootPath, const char* pFilePath);
00180
00184 KFBX_DLL KString KFbxGetCurrentDirectory();
00185
00191 KFBX_DLL size_t KGetProcessVirtualMemoryAvailSize ();
00193
00194
00195
00196 class KFile;
00197
00204 enum eFileMode {KFBX_READ, KFBX_WRITE, KFBX_READWRITE, KFBX_APPEND};
00205
00211 enum eSeekPos {KFBX_BEGIN, KFBX_CURRENT, KFBX_END};
00212
00218 class KFBX_DLL KFbxFile
00219 {
00220 public:
00222 KFbxFile();
00223
00225 virtual ~KFbxFile();
00226
00233 bool Open(const char* pFileName, eFileMode pMode, bool pText);
00234
00240 bool Open(const char* pFileName, const char* pMode);
00241
00245 bool IsOpened();
00246
00250 bool Close();
00251
00257 size_t Read(void* pBuffer, size_t pSize);
00258
00266 char* ReadString(char* pBuffer, int pMaxSize, bool pStopAtFirstWhiteSpace=false);
00267
00273 kInt32 ReadInt32(kInt32* pBuffer, bool pSwab=false);
00274
00280 kUInt32 ReadUInt32(kUInt32* pBuffer, bool pSwab=false);
00281
00287 kInt16 ReadInt16(kInt16* pBuffer, bool pSwab=false);
00288
00294 kUInt16 ReadUInt16(kUInt16* pBuffer, bool pSwab=false);
00295
00300 char ReadChar(char* pBuffer);
00301
00306 kUChar ReadUChar(kUChar* pBuffer);
00307
00313 size_t Write(const void* pBuffer, size_t pSize);
00314
00319 void Seek(eSeekPos pSeekPosition, long pOffset);
00320
00324 long GetPosition();
00325
00329 void SetPosition(long pPosition);
00330
00334 bool EndOfFile();
00335
00339 char* GetFullFileName();
00340
00344 eFileMode GetFileMode();
00345
00349 int GetError();
00350
00353 void ClearError();
00354
00359 void Format(const char* pFormat, ...);
00360
00365 int Truncate(size_t pSize);
00366
00371 static int Remove(const char* pFileName);
00372
00378 static int Rename(const char* pFileName, const char* pNewName);
00379
00380 private:
00381 KFile* mPrivateData;
00382 };
00383
00384 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00385
00386 #endif // FBXFILESDK_KFBXPLUGINS_KFBXUTILITIES_H
00387