Public Member Functions | Protected Member Functions | Protected Attributes | Friends

FbxExporter Class Reference

This reference page is linked to from the following overview topics: Importing and Exporting a Scene, I/O Settings, Exporting a Scene, Customizing File Formats with FBX SDK I/O Plug-ins, FBX SDK Object Model, List of Python Fbx classes.


Search for all occurrences

Detailed Description

Class to export SDK objects into an FBX file.

Normally this class is used as is. But for very special needs a user can override Initialize() for special purpose.

An exporter will select the appropriate writer to a particular file. Ex: When an exporter must export an FBX 7 file, the exporter will ask for all registered writers if an FBX 7 file writer is available, then if a writer is found, the exporter will create the specialized FBX 7 writer and write the file. This way, an exporter can "write" many different type of files like FBX 5/6/7, 3DS, Obj, Dxf, Collada, etc.

See also:
FbxWriter

Typical workflow for using the FbxExporter class:

  1. create a SDKManager
  2. create an IOSettings object
  3. create an empty scene
  4. create an exporter
  5. initialize it with a file name
  6. set numerous options to control how the exporter will behave.
    ex: set IOSettings values to export Materials or Textures.
  7. call FbxExporter::Export() with the entity to export.
 // ex:
 // create a SdkManager
 FbxManager* lSdkManager = FbxManager::Create();

 // create an IOSettings object
 FbxIOSettings* ios = FbxIOSettings::Create(lSdkManager, IOSROOT);

 // set some IOSettings options 
 ios->SetBoolProp(EXP_FBX_MATERIAL, true);
 ios->SetBoolProp(EXP_FBX_TEXTURE,  true);

 // create an empty scene
 FbxScene* lScene = FbxScene::Create(lSdkManager, "");

 // create an exporter.
 FbxExporter* lExporter = FbxExporter::Create(lSdkManager, "");

 // initialize the exporter by providing a filename and the IOSettings to use
 lExporter->Initialize("C:\\myfile.fbx", -1, ios);

 // export the scene.
 lExporter->Export(lScene); 
  
 // destroy the exporter
 lExporter->Destroy();
Remarks:
According to the file suffix, a specialized writer will be created internally.
Ex: for .fbx files a FBX Writer, for .3ds files, a 3ds writer, etc.
Supported files formats: FBX 5/6/7 Binary & ASCII, Collada, DXF, OBJ, 3DS
Examples:

Common/Common.cxx, ConvertScene/main.cxx, ExportDocument/main.cxx, ExportScene05/main.cxx, MyOwnWriterReader/MyOwnWriterReader.cxx, and MyOwnWriterReader/MyOwnWriterReader.h.

Definition at line 89 of file fbxexporter.h.

#include <fbxexporter.h>

Inheritance diagram for FbxExporter:
Inheritance graph
[legend]

List of all members.

Public Member Functions

bool  GetExportOptions (FbxIO *pFbxObject)
  Get file export option settings.
bool  Export (FbxDocument *pDocument, FbxIO *pFbxObject)

Protected Member Functions

  FbxExporter (FbxManager &pManager, char const *pName)
virtual void  Destruct (bool pRecursive, bool pDependents)
void  Reset ()
bool  FileCreate ()
void  FileClose ()

Protected Attributes

FbxExporter_Impl *  mImp
FbxStream mStream
void *  mStreamData
FbxString  mStrFileVersion
double  mResamplingRate
FbxSceneRenamer::ERenamingMode  mRenamingMode
FbxIOFileHeaderInfo mHeaderInfo
FbxIOSettings mIOSettings
bool  mClientIOSettings

Friends

void  ExportThread (void *)

Export Functions

virtual bool  Initialize (const char *pFileName, int pFileFormat=-1, FbxIOSettings *pIOSettings=NULL)
  Initialize object.
bool  GetExportOptions ()
  Setup file export options settings.
virtual bool  Initialize (FbxStream *pStream, void *pStreamData=NULL, int pFileFormat=-1, FbxIOSettings *pIOSettings=NULL)
  Initialize object.
FbxIOSettings GetIOSettings ()
  Access to a IOSettings object.
void  SetIOSettings (FbxIOSettings *pIOSettings)
  Set the IOSettings pointer.
bool  Export (FbxDocument *pDocument, bool pNonBlocking=false)
  Export the document to the currently created file.
bool  IsExporting (bool &pExportResult)
  Check if the exporter is currently exporting.
float  GetProgress (FbxString &pStatus)
  Get the progress status in non-blocking mode.
void  SetProgressCallback (FbxProgressCallback pHandler)
  Register a callback function for progress reporting in single thread mode.

File Format

int  GetFileFormat ()
  Get the format of the exported file.
bool  IsFBX ()
  Return true if the file format is a recognized FBX format.
char const *const  GetCurrentWritableVersions ()
  Get writable version for the current file format.
bool  SetFileExportVersion (FbxString pVersion, FbxSceneRenamer::ERenamingMode pRenamingMode)
  Set file version for a given file format.
void  SetResamplingRate (double pResamplingRate)
  Set the resampling rate (only used when exporting to FBX 5.3 and lower)
void  SetDefaultRenderResolution (FbxString pCamName, FbxString pResolutionMode, double pW, double pH)
  Set the default rendering resolution.
FbxIOFileHeaderInfo GetFileHeaderInfo ()
  Get the complete file header information.

Constructor & Destructor Documentation

FbxExporter ( FbxManager pManager,
char const *  pName 
) [protected]

Member Function Documentation

virtual bool Initialize ( const char *  pFileName,
int  pFileFormat = -1,
FbxIOSettings pIOSettings = NULL 
) [virtual]

Initialize object.

Parameters:
pFileName Name of file to access.
pFileFormat file format identifier User does not need to specify it by default. if not specified, plugin will detect the file format according to file suffix automatically.
pIOSettings client IOSettings, if not specified, a default IOSettings will be created
Returns:
true on success, false otherwise.
Remarks:
To identify the error that occurred, call FbxIOBase::GetLastErrorID().
Examples:
Common/Common.cxx, ConvertScene/main.cxx, ExportDocument/main.cxx, and ExportScene05/main.cxx.
bool GetExportOptions ( )

Setup file export options settings.

Returns:
true on success, false otherwise.
virtual bool Initialize ( FbxStream pStream,
void *  pStreamData = NULL,
int  pFileFormat = -1,
FbxIOSettings pIOSettings = NULL 
) [virtual]

Initialize object.

Parameters:
pStream stream to access.
pStreamData user-defined stream data.
pFileFormat file format identifier User does not need to specify it by default. if not specified, plugin will request the file format from the stream.
pIOSettings client IOSettings, if not specified, a default IOSettings will be created
Returns:
true on success, false otherwise.
Remarks:
To identify the error that occurred, call FbxIOBase::GetLastErrorID().
FbxIOSettings* GetIOSettings ( )

Access to a IOSettings object.

Returns:
The pointer to IOSettings or NULL if the object has not been allocated.
void SetIOSettings ( FbxIOSettings pIOSettings )

Set the IOSettings pointer.

Parameters:
pIOSettings Pointer on a FbxIOSettings object.
bool Export ( FbxDocument pDocument,
bool  pNonBlocking = false 
)

Export the document to the currently created file.

Parameters:
pDocument Document to export.
pNonBlocking If true, the export process will be executed in a new thread, allowing it to be non-blocking. To determine if the export finished, refer to the function IsExporting().
Returns:
true on success, false otherwise.
Remarks:
To identify the error, call FbxIOBase::GetLastErrorID().
Examples:
Common/Common.cxx, ConvertScene/main.cxx, ExportDocument/main.cxx, and ExportScene05/main.cxx.
bool IsExporting ( bool &  pExportResult )

Check if the exporter is currently exporting.

Parameters:
pExportResult This parameter, after the export finished, will contain the result of the export success or failure.
Returns:
Return true if the exporter is currently exporting.
Remarks:
This function will always return false if Export() was called with pNonBlocking set to false. This function should be used only in the context of pNonBlocking set to true. It is very important to periodically check if the export finished using this function, since it will also free up the thread's allocations when its done.
float GetProgress ( FbxString pStatus )

Get the progress status in non-blocking mode.

Parameters:
pStatus FbxString reference to retrieve current status
Returns:
Percentage of the finished workload
void SetProgressCallback ( FbxProgressCallback  pHandler )

Register a callback function for progress reporting in single thread mode.

Parameters:
pHandler Pointer of the callback function.
int GetFileFormat ( )

Get the format of the exported file.

Returns:
File format identifier.
bool IsFBX ( )

Return true if the file format is a recognized FBX format.

char const* const GetCurrentWritableVersions ( )

Get writable version for the current file format.

Returns:
char** string array of writable versions
Remarks:
the strings returned match the writers registered for the current format ex: "FBX" for format 0, "DXF" for format 1, etc
bool SetFileExportVersion ( FbxString  pVersion,
FbxSceneRenamer::ERenamingMode  pRenamingMode 
)

Set file version for a given file format.

Parameters:
pVersion String description of the file format.
pRenamingMode Renaming mode.
Returns:
true if mode is set correctly
void SetResamplingRate ( double  pResamplingRate ) [inline]

Set the resampling rate (only used when exporting to FBX 5.3 and lower)

Parameters:
pResamplingRate resampling rate

Definition at line 196 of file fbxexporter.h.

{ mResamplingRate = pResamplingRate; }
void SetDefaultRenderResolution ( FbxString  pCamName,
FbxString  pResolutionMode,
double  pW,
double  pH 
)

Set the default rendering resolution.

Parameters:
pCamName name of the camera.
pResolutionMode resolution mode.
pW width.
pH height.
FbxIOFileHeaderInfo* GetFileHeaderInfo ( )

Get the complete file header information.

Returns:
valid pointer to the complete header information
bool GetExportOptions ( FbxIO pFbxObject )

Get file export option settings.

Parameters:
pFbxObject Target FBX file.
Returns:
true on success, false otherwise.
bool Export ( FbxDocument pDocument,
FbxIO pFbxObject 
)
virtual void Destruct ( bool  pRecursive,
bool  pDependents 
) [protected, virtual]
void Reset ( ) [protected]
bool FileCreate ( ) [protected]
void FileClose ( ) [protected]

Friends And Related Function Documentation

void ExportThread ( void *  ) [friend]

Member Data Documentation

FbxExporter_Impl* mImp [protected]

Definition at line 238 of file fbxexporter.h.

FbxStream* mStream [protected]

Definition at line 239 of file fbxexporter.h.

void* mStreamData [protected]

Definition at line 240 of file fbxexporter.h.

Definition at line 241 of file fbxexporter.h.

double mResamplingRate [protected]

Definition at line 242 of file fbxexporter.h.

Definition at line 243 of file fbxexporter.h.

Definition at line 244 of file fbxexporter.h.

FbxIOSettings* mIOSettings [protected]

Definition at line 245 of file fbxexporter.h.

bool mClientIOSettings [protected]

Definition at line 246 of file fbxexporter.h.


The documentation for this class was generated from the following file:

FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter
FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter FbxExporter