Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends

FbxManager Class Reference

This reference page is linked to from the following overview topics: FBX SDK 2013, Your First FBX SDK Program, I/O Settings, Importing a Scene, Exporting a Scene, Customizing File Formats with FBX SDK I/O Plug-ins, FBX SDK Object Model, Managing Memory with the FBX SDK Manager, FBX Objects, Customizing the FBX SDK, Merging Two Scenes.


Search for all occurrences

Detailed Description

SDK object manager.

The SDK manager is in charge of:

It is possible to override memory allocation functions throughout the FBX SDK by providing system memory allocation functions using the handler set functions below. It must be done before the first FbxManager creation.

FbxSetMallocHandler(); FbxSetReallocHandler(); FbxSetFreeHandler(); FbxSetCallocHandler(); FbxSetMSizeHandler();

Upon destruction, all objects allocated by the SDK manager and not explicitly destroyed are destroyed as well. A derived class can be defined to allocate and deallocate specialized scene elements.

Remarks:
You could create more than one SDK manager. However, it's better to NOT share the same object among different managers.
Examples:

Animation/main.cxx, Camera/main.cxx, Common/Common.cxx, Common/Common.h, ConvertScene/main.cxx, ExportDocument/main.cxx, ExportScene01/main.cxx, ExportScene02/main.cxx, ExportScene03/main.cxx, ExportScene03/MyKFbxMesh.cxx, ExportScene03/MyKFbxMesh.h, ExportScene04/main.cxx, ExportScene05/main.cxx, ExportShader/main.cxx, ImportScene/main.cxx, Instances/main.cxx, Layers/main.cxx, MyOwnWriterReader/MyOwnReader.cxx, MyOwnWriterReader/MyOwnReader.h, MyOwnWriterReader/MyOwnWriter.cxx, MyOwnWriterReader/MyOwnWriter.h, MyOwnWriterReader/MyOwnWriterReader.cxx, MyOwnWriterReader/MyOwnWriterReader.h, Normals/main.cxx, Pivot/main.cxx, ProceduralTexture/main.cxx, StereoCamera/main.cxx, SwitchBinding/main.cxx, Transformations/main.cxx, UserProperties/main.cxx, UVSample/main.cxx, and ViewScene/SceneContext.h.

Definition at line 60 of file fbxmanager.h.

#include <fbxmanager.h>

List of all members.

Public Member Functions

int  GetDocumentCount ()
  Get the count of document available in this manager.
FbxDocument GetDocument (int pIndex)
  Get the document at pIndex in the manager's list.
bool  CanDestroyFbxSrcObject (FbxObject *pObject, FbxObject *pSrcObject, bool pRecursive, bool pDependents) const
void  CreateMissingBindPoses (FbxScene *pScene)
int  GetBindPoseCount (FbxScene *pScene) const
int  GetFbxClassCount () const
FbxClassId  GetNextFbxClass (FbxClassId pClassId) const

Static Public Member Functions

static FbxString  PrefixName (char const *pPrefix, char const *pName)
  Add a prefix to a name.
static FbxManager GetDefaultManager ()

Protected Member Functions

  FbxManager ()
virtual  ~FbxManager ()
void  Clear ()
void  ClassInit ()
void  ClassRelease ()
void  DataTypeInit ()
void  DataTypeRelease ()

Friends

class  FbxPose

FBX SDK Manager Creation/Destruction

static FbxManager Create ()
  SDK manager allocation method.
virtual void  Destroy ()
  Destructor.

Versions Queries

static const char *  GetVersion (bool pFull=true)
  Get FBX SDK version string.
static void  GetFileFormatVersion (int &pMajor, int &pMinor, int &pRevision)
  Get the current default FBX file format version number for this version of the FBX SDK.

Plug and Object Definition and Management

template<typename T1 , typename T2 >
FbxClassId  RegisterFbxClass (char const *pName, const T1 *, const T2 *, const char *pFbxFileTypeName=0, const char *pFbxFileSubTypeName=0)
  Class registration.
template<typename T >
FbxClassId  RegisterRuntimeFbxClass (char const *pName, const T *, const char *pFbxFileTypeName=0, const char *pFbxFileSubTypeName=0)
  Runtime class registration.
void  UnregisterRuntimeFbxClass (char const *pName)
  Runtime class unregistration.
template<typename T1 , typename T2 >
FbxClassId  OverrideFbxClass (const T1 *pFBX_TYPE_Class, const T2 *pFBX_TYPE_OverridenClass)
  Override class.
FbxObject CreateNewObjectFromClassId (FbxClassId pClassId, char const *pName, FbxObject *pContainer=NULL, const FbxObject *pCloneFrom=NULL)
  Create a new object of the specified ClassId.
FbxClassId  FindClass (const char *pClassName) const
  Find class by the specified name.
FbxClassId  FindFbxFileClass (const char *pFbxFileTypeName, const char *pFbxFileSubTypeName) const
  Find file class.
template<typename T >
void  UnregisterFbxClass (const T *pFBX_TYPE_Class)
  Class unregistration.

Data Type Management

FbxDataType  CreateDataType (const char *pName, const EFbxType pType)
  Register a new data type to the manager.
int  GetDataTypeCount () const
  List the data types.
FbxDataType GetDataType (const int pIndex) const
  Find a data types at pIndex.
FbxDataType GetDataTypeFromName (const char *pDataType) const
  Find a data type from the type name.

User Notification Object

FbxUserNotification GetUserNotification () const
  Access to the unique UserNotification object.
void  SetUserNotification (FbxUserNotification *pUN)
  Set the user notification.

IOSettings Object

virtual FbxIOSettings GetIOSettings () const
  Access to a IOSettings object.
virtual void  SetIOSettings (FbxIOSettings *pIOSettings)
  Set the IOSettings pointer.

Message Emitter (for Message Logging)

FbxMessageEmitter &  GetMessageEmitter ()
  Access to the unique FbxMessageEmitter object.
bool  SetMessageEmitter (FbxMessageEmitter *pMessageEmitter)
  Sets to the unique FbxMessageEmitter object.

Localization Hierarchy

void  AddLocalization (FbxLocalizationManager *pLocManager)
  Add a localization object to the known localization providers.
void  RemoveLocalization (FbxLocalizationManager *pLocManager)
  Remove a localization object from the known localization providers.
bool  SetLocale (const char *pLocale)
  Select the current locale for localization.
const char *  Localize (const char *pID, const char *pDefault=NULL) const
  Localization helper function.

Sub-Manager Management

FbxPreviewManager &  GetPreviewManager ()
  Retrieve the manager responsible for managing object previews.

XRef Manager

FbxXRefManager GetXRefManager ()
  Retrieve the manager responsible for managing object XRef resolution.

Library Management

FbxLibrary GetRootLibrary () const
  Retrieve the main object Libraries.
FbxLibrary GetSystemLibraries () const
FbxLibrary GetUserLibraries () const

Plug-in Registry Object

FbxIOPluginRegistry GetIOPluginRegistry () const
  Access to the unique FbxIOPluginRegistry object.

Fbx Generic Plugins Management

bool  LoadPluginsDirectory (const char *pFilename, const char *pExtensions=NULL)
  Load plug-ins directory.
bool  LoadPlugin (const char *pFilename)
  Load plug-in.
bool  UnloadPlugins ()
  Unload all plug-ins.
bool  EmitPluginsEvent (const FbxEventBase &pEvent)
  Emit plugins event.
FbxArray< const FbxPlugin * >  GetPlugins () const
  Get plugins.
int  GetPluginCount () const
  get plugins count
FbxPlugin FindPlugin (const char *pName, const char *pVersion) const
  Find plug in.

IO Settings

void  FillIOSettingsForReadersRegistered (FbxIOSettings &pIOS)
  Fill IO Settings for registered readers.
void  FillIOSettingsForWritersRegistered (FbxIOSettings &pIOS)
  Fill IO Settings for registered writers.
void  FillCommonIOSettings (FbxIOSettings &pIOS, bool pImport)
  Fill common IO Settings.

Global Object Management

void  RegisterObject (const FbxPlug *pPlug)
  Register object with the manager.
void  UnregisterObject (const FbxPlug *pPlug)
  Unregister object with the manager.
void  RegisterObjects (const FbxArray< FbxObject * > &pArray)
  Register a list of objects with the manager.
void  UnregisterObjects (const FbxArray< FbxObject * > &pArray)
  Unregister a list of objects with the manager.
void  IncreaseDestroyingSceneFlag ()
  Increment the scene destroying counter.
void  DecreaseDestroyingSceneFlag ()
  Shrink the object list and decrements the scene destroying counter.

Reference Management

int  GetReferenceCount () const
  Get number of references.
FbxSceneReference GetReference (int pIndex) const
  Get reference at given index.
int  AddReference (FbxSceneReference *pReference)
  Add a reference.
bool  RemoveReference (FbxSceneReference *pReference)
  Remove the specified reference from reference list.
bool  ClearReference (FbxSceneReference *pReference)
  Clear the specified reference from the SDK manager.

Constructor & Destructor Documentation

FbxManager ( ) [protected]
virtual ~FbxManager ( ) [protected, virtual]

Member Function Documentation

static FbxManager* Create ( ) [static]

SDK manager allocation method.

Returns:
A pointer to the SDK manager or NULL if this is an evaluation copy of the FBX SDK and it is expired.
Examples:
Common/Common.cxx, and ExportDocument/main.cxx.
virtual void Destroy ( ) [virtual]

Destructor.

Deallocates all object previously created by the SDK manager.

Examples:
Common/Common.cxx, ConvertScene/main.cxx, and ExportDocument/main.cxx.
static const char* GetVersion ( bool  pFull = true ) [static]

Get FBX SDK version string.

Parameters:
pFull If true, the complete version string including revision number and release date will be returned, otherwise only the version numbering is returned.
Examples:
Common/Common.cxx.
static void GetFileFormatVersion ( int &  pMajor,
int &  pMinor,
int &  pRevision 
) [static]

Get the current default FBX file format version number for this version of the FBX SDK.

Parameters:
pMajor Version major number.
pMinor Version minor number.
pRevision Version revision number.
Examples:
Common/Common.cxx, and ExportDocument/main.cxx.
FbxClassId RegisterFbxClass ( char const *  pName,
const T1 *  ,
const T2 *  ,
const char *  pFbxFileTypeName = 0,
const char *  pFbxFileSubTypeName = 0 
) [inline]

Class registration.

Parameters:
pName The class name. For example, "FbxMesh" for FbxMesh class.
T1 FBX type of the specified class.
T2 FBX type of parent class.
pFbxFileTypeName The type name of the class in FBX file.
pFbxFileSubTypeName The sub type name of the class in FBX file.
Returns:
The class Id of the newly register class. Such as:
Examples:
ExportScene03/main.cxx.

Definition at line 112 of file fbxmanager.h.

        {
            T1::ClassId = Internal_RegisterFbxClass(pName, T2::ClassId, (FbxPlugCreateProc)T1::ManagerCreate, pFbxFileTypeName, pFbxFileSubTypeName);
            return T1::ClassId;
        }
FbxClassId RegisterRuntimeFbxClass ( char const *  pName,
const T *  ,
const char *  pFbxFileTypeName = 0,
const char *  pFbxFileSubTypeName = 0 
) [inline]

Runtime class registration.

Parameters:
pName The class name. For example, "FbxUIWidgetBoolean".
T FBX type of parent class.
pFbxFileTypeName The type name of the class in FBX file.
pFbxFileSubTypeName The sub type name of the class in FBX file.
Returns:
The class Id of the newly register class. Such as:
 RegisterRuntimeFbxClass( "FbxUIWidgetBoolean", FBX_TYPE(FbxUIWidgetDefinition), NULL, "FbxUIWidgetBoolean"); 

Definition at line 127 of file fbxmanager.h.

        {
            return Internal_RegisterFbxClass(pName, T::ClassId, (FbxPlugCreateProc)T::ManagerCreate, pFbxFileTypeName, pFbxFileSubTypeName);
        }
void UnregisterRuntimeFbxClass ( char const *  pName ) [inline]

Runtime class unregistration.

Parameters:
pName The class name.

Definition at line 135 of file fbxmanager.h.

        {
            FbxClassId lClassId = FindClass(pName);
            if( !(lClassId == FbxClassId()) )
            {
                Internal_UnregisterFbxClass(lClassId);
            }
        }
FbxClassId OverrideFbxClass ( const T1 *  pFBX_TYPE_Class,
const T2 *  pFBX_TYPE_OverridenClass 
) [inline]

Override class.

Parameters:
pFBX_TYPE_Class FBX type of class.
pFBX_TYPE_OverridenClass FBX type of overridden class.
Returns:
The class Id

Definition at line 149 of file fbxmanager.h.

        {
            T1::ClassId  = Internal_OverrideFbxClass(T2::ClassId,(FbxPlugCreateProc)T1::ManagerCreate );
            return T1::ClassId;
        }
FbxObject* CreateNewObjectFromClassId ( FbxClassId  pClassId,
char const *  pName,
FbxObject pContainer = NULL,
const FbxObject pCloneFrom = NULL 
)

Create a new object of the specified ClassId.

Parameters:
pClassId The ClassId of the object to be created.
pName The name given to the newly created object.
pContainer An optional parameter to specify which object will "contain" the new object. By contain, we mean the new object will become a source to the container, connection-wise.
pCloneFrom A valid object pointer to use as the reference for cloning the object upon construction.
Returns:
If not null, a new instance of the specified class.
Remarks:
This function will return NULL if the ClassId used is invalid. New ClassId can be registered using the function RegisterFbxClass().
FbxClassId FindClass ( const char *  pClassName ) const

Find class by the specified name.

Parameters:
pClassName Class Name to find.
FbxClassId FindFbxFileClass ( const char *  pFbxFileTypeName,
const char *  pFbxFileSubTypeName 
) const

Find file class.

Parameters:
pFbxFileTypeName Specify the type name in FBX file to find.
pFbxFileSubTypeName Specify by The sub type name in FBX file to find.
void UnregisterFbxClass ( const T *  pFBX_TYPE_Class ) [inline]

Class unregistration.

Parameters:
pFBX_TYPE_Class FBX type of unregistered class.

Definition at line 181 of file fbxmanager.h.

        {
            Internal_UnregisterFbxClass(T::ClassId);
            T::ClassId = FbxClassId();
        }
FbxDataType CreateDataType ( const char *  pName,
const EFbxType  pType 
)

Register a new data type to the manager.

Parameters:
pName The type name.
pType The data type.
Returns:
The newly created FbxDataType
int GetDataTypeCount ( ) const

List the data types.

Returns:
the number of registered datatypes
FbxDataType& GetDataType ( const int  pIndex ) const

Find a data types at pIndex.

Parameters:
pIndex The data type index.
Returns:
the found datatype. return null if not found
FbxDataType& GetDataTypeFromName ( const char *  pDataType ) const

Find a data type from the type name.

Parameters:
pDataType The type name.
Returns:
the found datatype. return null if not found
FbxUserNotification* GetUserNotification ( ) const

Access to the unique UserNotification object.

Returns:
The pointer to the user notification or NULL if the object has not been allocated.
void SetUserNotification ( FbxUserNotification pUN )

Set the user notification.

Parameters:
pUN
virtual FbxIOSettings* GetIOSettings ( ) const [virtual]

Access to a IOSettings object.

Returns:
The pointer to IOSettings or NULL if the object has not been allocated.
Examples:
Common/Common.cxx, ConvertScene/main.cxx, ExportDocument/main.cxx, and ExportScene05/main.cxx.
virtual void SetIOSettings ( FbxIOSettings pIOSettings ) [virtual]

Set the IOSettings pointer.

Parameters:
pIOSettings
Examples:
Common/Common.cxx, and ExportDocument/main.cxx.
FbxMessageEmitter& GetMessageEmitter ( )

Access to the unique FbxMessageEmitter object.

Returns:
The pointer to the message emitter.
bool SetMessageEmitter ( FbxMessageEmitter *  pMessageEmitter )

Sets to the unique FbxMessageEmitter object.

Parameters:
pMessageEmitter the emitter to use, passing NULL will reset to the default emitter. The object will be deleted when the SDK manager is destroyed, thus ownership is transfered.
void AddLocalization ( FbxLocalizationManager *  pLocManager )

Add a localization object to the known localization providers.

Parameters:
pLocManager the localization object to register.
void RemoveLocalization ( FbxLocalizationManager *  pLocManager )

Remove a localization object from the known localization providers.

Parameters:
pLocManager the localization object to remove.
bool SetLocale ( const char *  pLocale )

Select the current locale for localization.

Parameters:
pLocale the locale name, for example "fr" or "en-US".
const char* Localize ( const char *  pID,
const char *  pDefault = NULL 
) const

Localization helper function.

Calls each registered localization manager until one can localizes the text.

Parameters:
pID the identifier for the text to localize.
pDefault the default text. Uses pID if NULL.
Returns:
the potentially localized text. May return the parameter passed in.
FbxPreviewManager& GetPreviewManager ( )

Retrieve the manager responsible for managing object previews.

Returns:
The Preview manager for this SDK manager.
FbxXRefManager& GetXRefManager ( )

Retrieve the manager responsible for managing object XRef resolution.

Returns:
The XRef manager for this SDK manager.
FbxLibrary* GetRootLibrary ( ) const

Retrieve the main object Libraries.

Returns:
The Root library
FbxLibrary* GetSystemLibraries ( ) const
FbxLibrary* GetUserLibraries ( ) const
FbxIOPluginRegistry* GetIOPluginRegistry ( ) const
bool LoadPluginsDirectory ( const char *  pFilename,
const char *  pExtensions = NULL 
)

Load plug-ins directory.

Parameters:
pFilename The directory path.
pExtensions The plug in extension.
Returns:
True
Examples:
Common/Common.cxx.
bool LoadPlugin ( const char *  pFilename )

Load plug-in.

Parameters:
pFilename The file name
Returns:
True
bool UnloadPlugins ( )

Unload all plug-ins.

bool EmitPluginsEvent ( const FbxEventBase pEvent )

Emit plugins event.

Parameters:
pEvent The event to be emitted.
FbxArray<const FbxPlugin*> GetPlugins ( ) const
int GetPluginCount ( ) const

get plugins count

Returns:
The number of plugins.
FbxPlugin* FindPlugin ( const char *  pName,
const char *  pVersion 
) const

Find plug in.

Parameters:
pName The plug in name.
pVersion The plug in version.
Returns:
The plugin, null if not found.
void FillIOSettingsForReadersRegistered ( FbxIOSettings pIOS )

Fill IO Settings for registered readers.

Parameters:
pIOS The properties hierarchies to fill.
void FillIOSettingsForWritersRegistered ( FbxIOSettings pIOS )

Fill IO Settings for registered writers.

Parameters:
pIOS The properties hierarchies to fill.
void FillCommonIOSettings ( FbxIOSettings pIOS,
bool  pImport 
)

Fill common IO Settings.

Parameters:
pIOS The properties hierarchies to fill.
pImport If true, import properties are set, otherwise export properties are set.
void RegisterObject ( const FbxPlug pPlug )

Register object with the manager.

Parameters:
pPlug The object to be registered.
void UnregisterObject ( const FbxPlug pPlug )

Unregister object with the manager.

Parameters:
pPlug The object to be unregistered.
void RegisterObjects ( const FbxArray< FbxObject * > &  pArray )

Register a list of objects with the manager.

Parameters:
pArray The list of object to be registered.
void UnregisterObjects ( const FbxArray< FbxObject * > &  pArray )

Unregister a list of objects with the manager.

Parameters:
pArray The list of object to be unregistered.
void IncreaseDestroyingSceneFlag ( )

Increment the scene destroying counter.

Remarks:
Call this function before the destroying list is changed.
void DecreaseDestroyingSceneFlag ( )

Shrink the object list and decrements the scene destroying counter.

Remarks:
Call this function after the destroying is changed. Use IncreasDestroyingSceneFlag() and DecreaseDestroyingSceneFlag() in pairs.
int GetReferenceCount ( ) const

Get number of references.

Returns:
Number of references.
FbxSceneReference* GetReference ( int  pIndex ) const

Get reference at given index.

Parameters:
pIndex Position in the list of references.
Returns:
Pointer to the reference or NULL if index is out of bounds.
int AddReference ( FbxSceneReference pReference )

Add a reference.

Parameters:
pReference The reference to be added.
Returns:
If the reference is correctly added to the scene, return true otherwise, if the reference is already there, returns false.
bool RemoveReference ( FbxSceneReference pReference )

Remove the specified reference from reference list.

Parameters:
pReference The reference to be removed.
Returns:
If the reference was successfully removed, return true otherwise, if the reference could not be found returns false.
bool ClearReference ( FbxSceneReference pReference )

Clear the specified reference from the SDK manager.

Parameters:
pReference The reference to be removed.
Returns:
If the reference was successfully cleared from the SDK manager, return true otherwise, if the reference could not be found returns false.
static FbxString PrefixName ( char const *  pPrefix,
char const *  pName 
) [static]

Add a prefix to a name.

Parameters:
pPrefix The prefix to be added to the pName. This string must contain the "::" characters in order to be considered as a prefix.
pName The name to be prefix.
Returns:
The prefixed string
Remarks:
If a prefix already exists, it is removed before adding pPrefix.
int GetDocumentCount ( )

Get the count of document available in this manager.

Returns:
The count of document owned by this manager.
FbxDocument* GetDocument ( int  pIndex )

Get the document at pIndex in the manager's list.

Parameters:
pIndex The index of the document to retrieve.
Returns:
The document at the specified index. Will return NULL if index is invalid.
static FbxManager* GetDefaultManager ( ) [static]
bool CanDestroyFbxSrcObject ( FbxObject pObject,
FbxObject pSrcObject,
bool  pRecursive,
bool  pDependents 
) const
void CreateMissingBindPoses ( FbxScene pScene )
int GetBindPoseCount ( FbxScene pScene ) const
int GetFbxClassCount ( ) const
FbxClassId GetNextFbxClass ( FbxClassId  pClassId ) const
void Clear ( ) [protected]
void ClassInit ( ) [protected]
void ClassRelease ( ) [protected]
void DataTypeInit ( ) [protected]
void DataTypeRelease ( ) [protected]

Friends And Related Function Documentation

friend class FbxPose [friend]

Definition at line 558 of file fbxmanager.h.


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

FbxManager FbxManager FbxManager FbxManager FbxManager FbxManager FbxManager FbxManager FbxManager FbxManager
FbxManager FbxManager FbxManager FbxManager FbxManager FbxManager FbxManager FbxManager FbxManager FbxManager