Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013 #ifndef _FBXSDK_FILEIO_IMPORTER_H_
00014 #define _FBXSDK_FILEIO_IMPORTER_H_
00015
00016 #include <fbxsdk/fbxsdk_def.h>
00017
00018 #include <fbxsdk/core/base/fbxstring.h>
00019 #include <fbxsdk/core/base/fbxarray.h>
00020 #include <fbxsdk/core/fbxevent.h>
00021
00022 #include <fbxsdk/fileio/fbxiobase.h>
00023 #include <fbxsdk/fileio/fbxiosettings.h>
00024 #include <fbxsdk/fileio/fbxprogress.h>
00025
00026 #include <fbxsdk/fbxsdk_nsbegin.h>
00027
00028 class FbxDocument;
00029 class FbxImporter_Impl;
00030 class FbxTakeInfo;
00031 class FbxDocumentInfo;
00032 class FbxAxisSystem;
00033 class FbxSystemUnit;
00034 class FbxStatistics;
00035 class FbxFile;
00036 class FbxIOFileHeaderInfo;
00037 class FbxIO;
00038
00040 class FBXSDK_DLL FbxEventPreImport : public FbxEvent<FbxEventPreImport>
00041 {
00042 FBXSDK_EVENT_DECLARE(FbxEventPreImport);
00043 public:
00044 inline FbxEventPreImport( FbxDocument* pDocument ) : mDocument(pDocument) {};
00045
00047 FbxDocument* mDocument;
00048 };
00049
00051 class FBXSDK_DLL FbxEventPostImport : public FbxEvent<FbxEventPostImport>
00052 {
00053 FBXSDK_EVENT_DECLARE(FbxEventPostImport);
00054 public:
00055 inline FbxEventPostImport( FbxDocument* pDocument ) : mDocument(pDocument) {};
00056
00058 FbxDocument* mDocument;
00059 };
00060
00114 class FBXSDK_DLL FbxImporter : public FbxIOBase
00115 {
00116 FBXSDK_OBJECT_DECLARE(FbxImporter,FbxIOBase);
00117 public:
00122
00132 virtual bool Initialize(const char* pFileName, const int pFileFormat=-1, FbxIOSettings * pIOSettings=NULL);
00133
00134 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00135
00144 virtual bool Initialize(FbxFile* pFile, const int pFileFormat=-1, FbxIOSettings* pIOSettings=NULL);
00145
00149 virtual FbxFile * GetFile();
00150 #endif
00151
00162 virtual bool Initialize(FbxStream* pStream, void* pStreamData=NULL, const int pFileFormat=-1, FbxIOSettings* pIOSettings=NULL);
00163
00171 void GetFileVersion(int& pMajor, int& pMinor, int& pRevision);
00172
00181 bool GetDefaultRenderResolution(FbxString& pCamName, FbxString& pResolutionMode, double& pW, double& pH);
00182
00186 FbxIOFileHeaderInfo* GetFileHeaderInfo();
00187
00192 enum EStreamOptionsGeneration
00193 {
00194 eParseFile,
00195 eDoNotParseFile
00196 };
00197
00203 bool GetImportOptions(EStreamOptionsGeneration pStreamOptionsGeneration = eParseFile);
00204
00211 bool GetImportOptions(FbxIO* pFbxObject);
00212
00223 bool Import(FbxDocument* pDocument, bool pNonBlocking=false);
00224
00233 bool IsImporting(bool& pImportResult);
00234
00239 float GetProgress(FbxString &pStatus);
00240
00244 void SetProgressCallback(FbxProgressCallback pHandler);
00245
00249 void SetEmbeddingExtractionFolder(const char* pExtractFolder);
00250
00253 const char* GetEmbeddingExtractionFolder();
00254
00258 FbxIOSettings* GetIOSettings();
00259
00263 void SetIOSettings(FbxIOSettings* pIOSettings);
00264
00269 void SetPassword(char* pPassword);
00270
00276
00281 int GetAnimStackCount();
00282
00289 FbxTakeInfo* GetTakeInfo(int pIndex);
00290
00295 FbxString GetActiveAnimStackName();
00296
00298
00303
00308 FbxDocumentInfo* GetSceneInfo();
00309
00311
00315
00324 int GetFileFormat ();
00325
00328 bool IsFBX();
00330
00332
00333
00334
00335
00336
00337
00339
00345 void ParseForGlobalSettings(bool pState);
00346
00352 void ParseForStatistics(bool pState);
00353
00360 bool GetAxisInfo(FbxAxisSystem* pAxisSystem, FbxSystemUnit* pSystemUnits);
00361
00368 bool GetStatistics(FbxStatistics* pStatistics);
00369
00376 bool GetFrameRate(FbxTime::EMode &pTimeMode);
00377
00378
00379 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00380
00381 bool Import(FbxDocument* pDocument, FbxIO* pFbxObject);
00382
00383 private:
00384 friend void ImportThread(void*);
00385 bool ImportProcess(FbxDocument* pDocument);
00386
00387 protected:
00388 void GetImportOptionsInfo();
00389
00390 FbxImporter(FbxManager& pManager,char const* pName);
00391 virtual void Destruct(bool pRecursive, bool pDependents);
00392
00393 void Reset();
00394
00395 bool FileOpen(FbxFile* pFile = NULL);
00396 bool FileOpen(FbxStream* pStream, void* pStreamData);
00397 void FileClose();
00398
00399 bool IsNativeExtension ();
00400
00401 FbxImporter_Impl* mImp;
00402 FbxFile* mFile;
00403 FbxStream* mStream;
00404 void* mStreamData;
00405 bool mImportOptionsDone;
00406 FbxArray<FbxTakeInfo*> mTakeInfo;
00407 FbxDocumentInfo* mSceneInfo;
00408 FbxString mActiveAnimStackName;
00409 int mMajorVersion;
00410 int mMinorVersion;
00411 int mRevisionVersion;
00412 FbxIOFileHeaderInfo *mHeaderInfo;
00413 FbxIOSettings* mIOSettings;
00414 bool mClientIOSettings;
00415 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00416 };
00417
00418 #include <fbxsdk/fbxsdk_nsend.h>
00419
00420 #endif