Public Member Functions | Protected Member Functions | Friends

FbxImporter Class Reference

This reference page is linked to from the following overview topics: Your First FBX SDK Program, Importing and Exporting a Scene, I/O Settings, Importing a Scene, FBX SDK Object Model, FBX Objects, List of Python Fbx classes.


Search for all occurrences

Detailed Description

Class to import an FBX file into SDK objects.

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

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

See also:
FbxReader

Typical workflow for using the FbxImporter class:

  1. create a SDKManager
  2. create an IOSettings object
  3. create an empty scene
  4. create an importer
  5. initialize the importer with a file name and IOSettings
  6. set numerous states, take information, defining how the importer will behave
  7. call FbxImporter::Import() with an empty scene
     ex:
     // create a SdkManager
     FbxManager *lSdkManager = FbxManager::Create();
    
     // create an IOSettings object
     FbxIOSettings * ios = FbxIOSettings::Create(lSdkManager, IOSROOT );
    
     // set some IOSettings options 
     ios->SetBoolProp(IMP_FBX_MATERIAL, true);
     ios->SetBoolProp(IMP_FBX_TEXTURE,  true);
    
     // create an empty scene
     FbxScene* lScene = FbxScene::Create(lSdkManager,"");
    
     // Create an importer.
     FbxImporter* lImporter = FbxImporter::Create(lSdkManager, "");
    
     // Initialize the importer by providing a filename and the IOSettings to use
     lImporter->Initialize("C:\\myfile.fbx", -1, ios);
    
     // Import the scene.
     lImporter->Import(lScene); 
    
     // Destroy the importer.
     lImporter->Destroy(); 
    
Remarks:
According to the file suffix, a specialized reader will be created internally. Ex: for .fbx files a FBX Reader, for .3ds files, a 3ds reader, etc. Supported files formats: FBX 5/6/7 Binary & ASCII, Collada, DXF, OBJ, 3DS

Definition at line 90 of file fbximporter.h.

#include <fbximporter.h>

Inheritance diagram for FbxImporter:
Inheritance graph
[legend]

List of all members.

Public Member Functions

FbxFileGetFile ()
FbxStreamGetStream ()
void * GetStreamData ()
void ParseForGlobalSettings (bool pState)
void ParseForStatistics (bool pState)
bool GetAxisInfo (FbxAxisSystem *pAxisSystem, FbxSystemUnit *pSystemUnits)
bool GetStatistics (FbxStatistics *pStatistics)
bool GetFrameRate (FbxTime::EMode &pTimeMode)

Protected Member Functions

virtual void Construct (const FbxImporter *pFrom)
virtual void Destruct (bool pRecursive)
 Optional destructor override, automatically called by default destructor.
void Reset ()
bool FileOpen (FbxFile *pFile=NULL)
bool FileOpen (FbxStream *pStream, void *pStreamData)
void FileClose ()
void GetImportOptionsInfo ()
bool IsNativeExtension ()
bool Initialize (FbxFile *pFile, const int pFileFormat=-1, FbxIOSettings *pIOSettings=NULL)
bool Import (FbxDocument *pDocument, FbxIO *pFbxObject)

Friends

class FbxReaderFbx5
class FbxReaderFbx6
struct FbxReaderFbx7_Impl
void ImportThread (void *)

Import Functions

enum  EStreamOptionsGeneration { eParseFile, eDoNotParseFile }
 

Stream options identifiers.

More...
virtual bool Initialize (const char *pFileName, const int pFileFormat=-1, FbxIOSettings *pIOSettings=NULL)
 Initialize object.
virtual bool Initialize (FbxStream *pStream, void *pStreamData=NULL, const int pFileFormat=-1, FbxIOSettings *pIOSettings=NULL)
 Initialize object.
void GetFileVersion (int &pMajor, int &pMinor, int &pRevision)
 Get the FBX version number of the FBX file.
bool GetDefaultRenderResolution (FbxString &pCamName, FbxString &pResolutionMode, double &pW, double &pH)
 Get the default rendering resolution if present in the file header.
FbxIOFileHeaderInfoGetFileHeaderInfo ()
 Get the complete file header information.
bool GetImportOptions (EStreamOptionsGeneration pStreamOptionsGeneration=eParseFile)
 Read the currently opened file header to retrieve information related to takes.
bool GetImportOptions (FbxIO *pFbxObject)
 Read the currently opened file header to retrieve information related to takes.
bool Import (FbxDocument *pDocument, bool pNonBlocking=false)
 Import the currently opened file into a scene.
bool IsImporting (bool &pImportResult)
 Check if the importer is currently importing.
float GetProgress (FbxString *pStatus=NULL)
 Get the progress status in non-blocking mode.
void SetProgressCallback (FbxProgressCallback pCallback, void *pArgs=NULL)
 Register a callback function for progress reporting in single thread mode.
void SetEmbeddingExtractionFolder (const char *pExtractFolder)
 Explicitly set the embedding extraction folder.
const char * GetEmbeddingExtractionFolder ()
 Retrieve the current folder destination where the embedded files will be extracted.
FbxIOSettingsGetIOSettings ()
 Access to a IOSettings object.
void SetIOSettings (FbxIOSettings *pIOSettings)
 Set the IOSettings pointer.
void SetPassword (char *pPassword)
 Set the password.

Animation Stack Description Access

See also:
FbxAnimStack

int GetAnimStackCount ()
 Get the number of available animation stacks in the file.
FbxTakeInfoGetTakeInfo (int pIndex)
 Get the take information about an available take.
FbxString GetActiveAnimStackName ()
 Return the active animation stack name.

Scene Description Access

FbxDocumentInfoGetSceneInfo ()
 Get the scene info.

File Format

int GetFileFormat ()
 Returns the index of the reader (FbxReader) associated with the file format.
bool IsFBX ()

Member Enumeration Documentation

Stream options identifiers.

  • eParseFile Parse the file
  • eDoNotParseFile Do not parse the file.
Enumerator:
eParseFile 
eDoNotParseFile 

Definition at line 153 of file fbximporter.h.

    {
        eParseFile,     // Parse the file
        eDoNotParseFile // Do not parse the file (fast)
    };

Member Function Documentation

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

Initialize object.

Parameters:
pFileNameName of file to access.
pFileFormatfile 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.
pIOSettingsclient IOSettings, if not specified, a default IOSettings will be created
Returns:
true on success, false otherwise.
Remarks:
To identify the error that occurred, inspect the status object accessed using the GetStatus() function.
You do not need to give the pFileFormat if the suffix of pFileName is recognized
virtual bool Initialize ( FbxStream pStream,
void *  pStreamData = NULL,
const int  pFileFormat = -1,
FbxIOSettings pIOSettings = NULL 
) [virtual]

Initialize object.

Parameters:
pStreamstream to access.
pStreamDatauser-defined stream data.
pFileFormatfile format identifier User does not need to specify it by default. if not specified, plugin will request the file format from the stream automatically.
pIOSettingsclient IOSettings, if not specified, a default IOSettings will be created
Returns:
true on success, false otherwise.
Remarks:
To identify the error that occurred, inspect the status object accessed using the GetStatus() function.
You do not need to give the pFileFormat if the suffix of pFileName is recognized
void GetFileVersion ( int &  pMajor,
int &  pMinor,
int &  pRevision 
)

Get the FBX version number of the FBX file.

FBX version numbers start at 5.0.0.

Parameters:
pMajorVersion major number.
pMinorVersion minor number.
pRevisionVersion revision number.
Remarks:
This function must be called after FbxImporter::Initialize().
bool GetDefaultRenderResolution ( FbxString pCamName,
FbxString pResolutionMode,
double &  pW,
double &  pH 
)

Get the default rendering resolution if present in the file header.

Parameters:
pCamNameReturned name of the camera.
pResolutionModeReturned resolution mode.
pWReturned width.
pHReturned height.
Returns:
true if the default rendering settings are defined in the file, otherwise returns false with empty parameters.
FbxIOFileHeaderInfo* GetFileHeaderInfo ( )

Get the complete file header information.

Returns:
valid pointer to the complete header information
bool GetImportOptions ( EStreamOptionsGeneration  pStreamOptionsGeneration = eParseFile)

Read the currently opened file header to retrieve information related to takes.

Parameters:
pStreamOptionsGenerationStream options identifier.
Returns:
true on success, false otherwise.
Remarks:
Caller gets ownership of the returned structure.
bool GetImportOptions ( FbxIO pFbxObject)

Read the currently opened file header to retrieve information related to takes.

Parameters:
pFbxObjectTarget FBX file.
Returns:
true on success, false otherwise.
Remarks:
Caller gets ownership of the returned structure.
bool Import ( FbxDocument pDocument,
bool  pNonBlocking = false 
)

Import the currently opened file into a scene.

Parameters:
pDocumentDocument to fill with file content.
pNonBlockingIf true, the import process will be executed in a new thread, allowing it to be non-blocking. To determine if the import finished, refer to the function IsImporting().
Returns:
true on success, false otherwise.
Remarks:
To identify the error that occurred, inspect the status object accessed using the GetStatus() function. If the imported file is password protected and the password is not set or wrong, the FbxStatus object access with GetStatus() will be set with FbxStatus::ePasswordError.
bool IsImporting ( bool &  pImportResult)

Check if the importer is currently importing.

Parameters:
pImportResultThis parameter, after the import finished, will contain the result of the import success or failure.
Returns:
Return true if the importer is currently importing.
Remarks:
This function will always return false if Import() 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 import finished using this function, since it will also free up the thread's allocations when its done.
float GetProgress ( FbxString pStatus = NULL)

Get the progress status in non-blocking mode.

Parameters:
pStatusOptional current status string.
Returns:
Percentage of the finished workload
void SetProgressCallback ( FbxProgressCallback  pCallback,
void *  pArgs = NULL 
)

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

Parameters:
pCallbackPointer of the callback function.
pArgspointer to the arguments passed to the callback function.
void SetEmbeddingExtractionFolder ( const char *  pExtractFolder)

Explicitly set the embedding extraction folder.

If this is never called, the FBX SDK will determine the best folder to extract embedded files.

Parameters:
pExtractionFolderThe file path name where the embedded files should be extracted.
const char* GetEmbeddingExtractionFolder ( )

Retrieve the current folder destination where the embedded files will be extracted.

This might not be initialized until file I/O is performed.

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:
pIOSettingsPoint to a FbxIOSettings object.
void SetPassword ( char *  pPassword)

Set the password.

All subsequently imported files are opened with the given password.

Parameters:
pPasswordPassword string.
int GetAnimStackCount ( )

Get the number of available animation stacks in the file.

Returns:
Number of animation stacks.
Remarks:
This function must be called after FbxImporter::Initialize().
FbxTakeInfo* GetTakeInfo ( int  pIndex)

Get the take information about an available take.

Use the returned reference to a FbxTakeInfo object to set whether the indexed take is imported.

Parameters:
pIndexIndex of the requested take.
Returns:
Take information or NULL if function failed.
Remarks:
This function must be called after FbxImporter::Initialize().
FbxString GetActiveAnimStackName ( )

Return the active animation stack name.

Returns:
Active animation stack name if there is one, otherwise returns an empty string.
Remarks:
This function must be called after FbxImporter::Initialize().
FbxDocumentInfo* GetSceneInfo ( )

Get the scene info.

Returns:
Pointer to the scene info or NULL if no scene information is available in the file.
int GetFileFormat ( )

Returns the index of the reader (FbxReader) associated with the file format.

This index is considered the identifier of the file format. The array of registered readers can't be retrieved.

Returns:
Index of the registered FbxReader associated with the file format. If no reader found return -1.
Remarks:
According to the number of readers registered this value can change for the same reader between SDK Manager instantiations.
bool IsFBX ( )
Returns:
true if the file format is a recognized FBX format.
FbxFile* GetFile ( )
FbxStream* GetStream ( )
void* GetStreamData ( )
void ParseForGlobalSettings ( bool  pState)
void ParseForStatistics ( bool  pState)
bool GetAxisInfo ( FbxAxisSystem pAxisSystem,
FbxSystemUnit pSystemUnits 
)
bool GetStatistics ( FbxStatistics pStatistics)
bool GetFrameRate ( FbxTime::EMode pTimeMode)
virtual void Construct ( const FbxImporter pFrom) [protected, virtual]
virtual void Destruct ( bool  pRecursive) [protected, virtual]

Optional destructor override, automatically called by default destructor.

Parameters:
pRecursiveIf true, children objects should be destroyed as well.
Remarks:
In case it is decided to override this function, do not forget to call ParentClass::Destruct(pResursive) at the end.

Reimplemented from FbxObject.

void Reset ( ) [protected]
bool FileOpen ( FbxFile pFile = NULL) [protected]
bool FileOpen ( FbxStream pStream,
void *  pStreamData 
) [protected]
void FileClose ( ) [protected]
void GetImportOptionsInfo ( ) [protected]
bool IsNativeExtension ( ) [protected]
bool Initialize ( FbxFile pFile,
const int  pFileFormat = -1,
FbxIOSettings pIOSettings = NULL 
) [protected]
bool Import ( FbxDocument pDocument,
FbxIO pFbxObject 
) [protected]

Friends And Related Function Documentation

friend class FbxReaderFbx5 [friend]

Definition at line 359 of file fbximporter.h.

friend class FbxReaderFbx6 [friend]

Definition at line 360 of file fbximporter.h.

friend struct FbxReaderFbx7_Impl [friend]

Definition at line 361 of file fbximporter.h.

void ImportThread ( void *  ) [friend]

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

FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter
FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter FbxImporter