Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013 #ifndef _FBXSDK_FILEIO_EXPORTER_H_
00014 #define _FBXSDK_FILEIO_EXPORTER_H_
00015
00016 #include <fbxsdk/fbxsdk_def.h>
00017
00018 #include <fbxsdk/core/fbxevent.h>
00019 #include <fbxsdk/core/base/fbxstring.h>
00020 #include <fbxsdk/fileio/fbxiobase.h>
00021 #include <fbxsdk/fileio/fbxiosettings.h>
00022 #include <fbxsdk/fileio/fbxprogress.h>
00023 #include <fbxsdk/utils/fbxrenamingstrategy.h>
00024
00025 #include <fbxsdk/fbxsdk_nsbegin.h>
00026
00027 class FbxIO;
00028 class FbxIOFileHeaderInfo;
00029 class FbxThread;
00030 class FbxWriter;
00031
00032 struct FbxExportThreadArg;
00033
00089 class FBXSDK_DLL FbxExporter : public FbxIOBase
00090 {
00091 FBXSDK_OBJECT_DECLARE(FbxExporter, FbxIOBase);
00092
00093 public:
00107 virtual bool Initialize(const char* pFileName, int pFileFormat = -1, FbxIOSettings* pIOSettings = NULL);
00108
00119 virtual bool Initialize(FbxStream* pStream, void* pStreamData=NULL, int pFileFormat = -1, FbxIOSettings * pIOSettings = NULL);
00120
00124 bool GetExportOptions();
00125
00129 FbxIOSettings* GetIOSettings();
00130
00134 void SetIOSettings(FbxIOSettings* pIOSettings);
00135
00136
00145 bool Export(FbxDocument* pDocument, bool pNonBlocking=false);
00146
00147 #ifndef FBXSDK_ENV_WINRT
00148
00156 bool IsExporting(bool& pExportResult);
00157 #endif
00158
00163 float GetProgress(FbxString* pStatus=NULL);
00164
00169 void SetProgressCallback(FbxProgressCallback pCallback, void* pArgs=NULL);
00171
00179 int GetFileFormat();
00180
00183 bool IsFBX();
00184
00190 const char* GetCurrentWritableVersions();
00191
00197 bool SetFileExportVersion(FbxString pVersion, FbxSceneRenamer::ERenamingMode pRenamingMode);
00198
00202 inline void SetResamplingRate(double pResamplingRate){ mResamplingRate = pResamplingRate; }
00203
00210 void SetDefaultRenderResolution(FbxString pCamName, FbxString pResolutionMode, double pW, double pH);
00211
00215 FbxIOFileHeaderInfo* GetFileHeaderInfo();
00217
00218
00219
00220
00221 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00222 bool GetExportOptions(FbxIO* pFbxObject);
00223 bool Export(FbxDocument* pDocument, FbxIO* pFbxObject);
00224
00225 protected:
00226 virtual void Construct(const FbxExporter* pFrom);
00227 virtual void Destruct(bool pRecursive);
00228
00229 void Reset();
00230 bool FileCreate();
00231 void FileClose();
00232
00233 private:
00234 bool ExportProcess(FbxDocument* pDocument);
00235
00236 int mFileFormat;
00237 FbxWriter* mWriter;
00238 #ifndef FBXSDK_ENV_WINRT
00239 FbxThread* mExportThread;
00240 FbxExportThreadArg* mExportThreadArg;
00241 bool mExportThreadResult;
00242 bool mIsThreadExporting;
00243 #endif
00244 FbxProgress mProgress;
00245 FbxStream* mStream;
00246 void* mStreamData;
00247 FbxString mStrFileVersion;
00248 double mResamplingRate;
00249 FbxSceneRenamer::ERenamingMode mRenamingMode;
00250 FbxIOFileHeaderInfo* mHeaderInfo;
00251 FbxIOSettings* mIOSettings;
00252 bool mClientIOSettings;
00253
00254 friend void ExportThread(void*);
00255 #endif
00256 };
00257
00259 class FBXSDK_DLL FbxEventPreExport : public FbxEvent<FbxEventPreExport>
00260 {
00261 FBXSDK_EVENT_DECLARE(FbxEventPreExport);
00262
00263 public:
00264 FbxEventPreExport(FbxDocument* pDocument) : mDocument(pDocument) {};
00265
00267 FbxDocument* mDocument;
00268 };
00269
00271 class FBXSDK_DLL FbxEventPostExport : public FbxEvent<FbxEventPostExport>
00272 {
00273 FBXSDK_EVENT_DECLARE(FbxEventPostExport);
00274
00275 public:
00276 FbxEventPostExport(FbxDocument* pDocument) : mDocument(pDocument) {};
00277
00279 FbxDocument* mDocument;
00280 };
00281
00282 #include <fbxsdk/fbxsdk_nsend.h>
00283
00284 #endif