fbxwriterfbx7.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2012 Autodesk, Inc.
00004    All rights reserved.
00005  
00006    Use of this software is subject to the terms of the Autodesk license agreement
00007    provided at the time of installation or download, or which otherwise accompanies
00008    this software in either electronic or hard copy form.
00009  
00010 ****************************************************************************************/
00011 
00013 #ifndef _FBXSDK_FILEIO_FBX_WRITER_FBX7_H_
00014 #define _FBXSDK_FILEIO_FBX_WRITER_FBX7_H_
00015 
00016 #include <fbxsdk.h>
00017 
00018 #include <fbxsdk/fbxsdk_nsbegin.h>
00019 
00020 struct FbxWriterFbx7_Impl;
00021 
00022 //Writable version(s) for this file type.
00023 #define FBX2013_00_COMPATIBLE "FBX201300"
00024 #define FBX2012_00_COMPATIBLE "FBX201200"
00025 #define FBX2011_00_COMPATIBLE "FBX201100"
00026 
00027 class FbxWriterFbx7 : public FbxWriter
00028 {
00029 public:
00030     typedef enum
00031     {
00032         eASCII,
00033         eBINARY,
00034         eENCRYPTED
00035     } EExportMode;
00036 
00037     FbxWriterFbx7(FbxManager& pManager, FbxExporter& pExporter, int pID);
00038     FbxWriterFbx7(FbxManager& pManager, FbxExporter& pExporter, EExportMode pMode, int pID);
00039     virtual ~FbxWriterFbx7();
00040 
00041     virtual bool FileCreate(char* pFileName);
00042     virtual bool FileCreate(FbxStream* pStream, void* pStreamData);
00043     virtual bool FileClose();
00044     virtual bool IsFileOpen();
00045 
00046     virtual void GetWriteOptions();
00047     virtual bool Write(FbxDocument* pDocument);
00048     virtual bool PreprocessScene(FbxScene &pScene);
00049     virtual bool PostprocessScene(FbxScene &pScene);
00050     virtual bool Write(FbxDocument* pDocument, FbxIO* pFbx);
00051     virtual void PluginWriteParameters(FbxObject& pParams);
00052     virtual void SetProgressHandler(FbxProgress *pProgress);
00053 
00054     void SetExportMode(EExportMode pMode);
00055 
00056     virtual bool SupportsStreams() const        { return true; }
00057 
00058 private:
00059     // Declared, not defined.
00060     FbxWriterFbx7(const FbxWriterFbx7&);
00061     FbxWriterFbx7& operator=(const FbxWriterFbx7&);
00062 
00063     struct ModifiedPropertyInfo{ FbxObject* mObj; FbxString mPropName; };
00064     FbxArray<ModifiedPropertyInfo*> mModifiedProperties;
00065     void StoreUnsupportedProperty(FbxObject* pObject, FbxProperty& pProperty);
00066 
00067 private:
00068     FbxWriterFbx7_Impl* mImpl;
00069 };
00070 
00071 #include <fbxsdk/fbxsdk_nsend.h>
00072 
00073 #endif /* _FBXSDK_FILEIO_FBX_WRITER_FBX7_H_ */