fbsystem.h File Reference

Basic system interaction. More...

#include <kaydaradef.h>
#include <fbsdk/fbcomponent.h>
#include <fbsdk/fbdata.h>
#include <fbsdk/fbio.h>
#include <fbsdk/fbshader.h>
#include <fbsdk/fbmodel.h>
#include <fbsdk/fbevaluateinfo.h>
#include <fbsdk/fbaudio.h>
#include <fbsdk/fbvideo.h>
#include <fbsdk/fbdeck.h>
#include <fbsdk/fbassetmng.h>
#include <fbsdk/fbmanipulator.h>

Go to the source code of this file.

Classes

class  FBEventVideoFrameRendering
 Event: Video Frame offline Rendering Event. More...
class  FBSystem
 Provides access to the underlying system, and the MotionBuilder scene. More...
class  FBTriggerManager
 Trigger engine management. More...
class  FBBatchOptions
 Option parameters for the batch process. More...
class  FBPlotOptions
 Option parameters for plotting. More...
class  FBAudioRenderOptions
 Audio Render Options structure. More...
class  FBApplication
 FBApplication is used mainly to manage files. More...
class  FBPlayerControl
 Player control. More...
class  FBEventEvalGlobalCallback
 Event: Global Evaluation pipeline critical timing callback event. More...
class  FBPropertyEventCallbackEvalPipeline
 PropertyEvent: Callback at evaluation pipeline (for kFBGlobalEvalCallbackBeforeDAG, kFBGlobalEvalCallbackAfterDAG and kFBGlobalEvalCallbackAfterDeform) More...
class  FBPropertyEventCallbackRenderPipeline
 PropertyEvent: Callback at evaluation pipeline (for kFBGlobalEvalCallbackBeforeRender, kFBGlobalEvalCallbackBeforeRender) More...
class  FBPropertyEventCallbackSynPoint
 PropertyEvent: Callback at synchronization point (for kFBGlobalEvalCallbackSyn) More...
class  FBEvaluateManager
class  FBKeyControl
 Key control. More...
class  FBPointCacheManager
 Point Cache Manager Interface to the point cache manager. More...
class  FBEventFileChange
 File change event class. More...
class  FBFileMonitoringManager
 File Change Monitoring Interface to the file change monitoring. More...
class  FBCriticalSection
 High priority critical section class. More...
class  FBFastLock
 FBFastLock. More...
class  FBReferenceTime
 Reference time class. More...
class  FBVisitDirectoryCallback
 Loop over directory content. More...

Defines

#define FBSDK_DLL   K_DLLIMPORT
 Be sure that FBSDK_DLL is defined only once...

Typedefs

typedef void(* kFBEvaluationGlobalFunctionCallback )(FBEvaluateInfo *pEvaluteInfo)
typedef void(* FBTraceStubFct )(unsigned int pLevel, const char *pStr)
 Trace Stub Function type define.

Enumerations

enum  FBBatchProcessType { kFBBatchProcessTypeLoad, kFBBatchProcessTypeSave, kFBBatchProcessTypeConvert }
 

Different process type for the batch.

More...
enum  FBBatchFileFormat {
  kFBBatchFileFormatTRC, kFBBatchFileFormatC3D, kFBBatchFileFormatAMC, kFBBatchFileFormatBVH,
  kFBBatchFileFormatHTR, kFBBatchFileFormatFBX
}
 

Different file formats for the batch.

More...
enum  FBBatchOnTakeExist { kFBBatchOnTakeExistOverwrite, kFBBatchOnTakeExistSkip }
 

Different actions to perform when a take already exist while in a batch process.

More...
enum  FBBatchOnContainsBatchTakes { kFBBatchOnContainsBatchTakesSaveBatchTakesOnly, kFBBatchOnContainsBatchTakesSaveAllTakes }
 

Different actions to perform when a scene already contains batch takes while in a batch process.

More...
enum  FBBatchStatus {
  kFBBatchStatusSuccess, kFBBatchStatusError, kFBBatchStatusCharacterNotSpecified, kFBBatchStatusCharacterNotCharacterized,
  kFBBatchStatusCharacterHasNoReference, kFBBatchStatusInputActorNotSpecified, kFBBatchStatusActorInputMarkersetNotSpecified, kFBBatchStatusActorInputMarkersetHasNoReferenceModel,
  kFBBatchStatusActorInputMarkersetNotCorrectlyAssociated, kFBBatchStatusInputCharacterNotCharacterized, kFBBatchStatusInputCharacterHasNoReference, kFBBatchStatusInputDirectoryNotValid,
  kFBBatchStatusAsfSkeletonFileNotSpecified, kFBBatchStatusCantOpenAsfSkeletonFile, kFBBatchStatusOutputDirectoryNotValid
}
 

Different return values of the Batch process.

More...
enum  FBRotationFilter { kFBRotationFilterNone, kFBRotationFilterGimbleKiller, kFBRotationFilterUnroll }
 

Rotation filters.

More...
enum  FBViewerMode {
  kFBViewerModeOneWindow, kFBViewerModeTwoWindow, kFBViewerModeThreeWindow, kFBViewerModeFourWindow,
  kFBViewerModeSchematic
}
 

Different viewer modes for the 3D viewer.

More...
enum  FBOneClickApplication { kFBOneClickNone, kFBOneClickMaya, kFBOneClick3dsMax }
 

Possible application for One-Click interop with MotionBuilder.

More...
enum  FBTransportMode {
  kFBTransportPlay, kFBTransportPlayPrepare, kFBTransportPlayReady, kFBTransportStop,
  kFBTransportStopPost, kFBTransportStopReady, kFBTransportShuttle, kFBTransportShuttlePrepare,
  kFBTransportShuttleReady, kFBTransportPlayReverse, kFBTransportPlayReversePrepare, kFBTransportPlayReverseReady,
  kFBTransportJog, kFBTransportJogPrepare, kFBTransportJogReady, kFBTransportGoto,
  kFBTransportGotoPrepare, kFBTransportGotoReady, kFBTransportStepForward, kFBTransportStepForwardPrepare,
  kFBTransportStepForwardReady, kFBTransportStepBackward, kFBTransportStepBackwardPrepare, kFBTransportStepBackwardReady
}
 

Transport modes.

More...
enum  FBTransportTimeFormat { kFBTimeFormatTimecode, kFBTimeFormatFrame }
 

Available transport control time display.

More...
enum  FBTransportPlaySpeed {
  kFBSpeed_1_10x, kFBSpeed_1_5x, kFBSpeed_1_4x, kFBSpeed_1_3x,
  kFBSpeed_1_2x, kFBSpeed_1x, kFBSpeed_ALL_FR, kFBSpeed_2x,
  kFBSpeed_3x, kFBSpeed_4x, kFBSpeed_5x, kFBSpeed_10x
}
 

Available transport control play speed.

More...
enum  FBTransportSnapMode { kFBTransportSnapModeNoSnap, kFBTransportSnapModeSnapOnFrames, kFBTransportSnapModePlayOnFrames, kFBTransportSnapModeSnapAndPlayOnFrames }
 

Available snap methods for the transport control.

More...
enum  FBParallelScheduleType { kFBParallelScheduleSerial, kFBParallelScheduleSimple, kFBParallelScheduleAdvanced }
 

DEPRICATED use ParallelEvaluation on FBEvaluateManager insteadAvailable DAG parallel schedule algorithm

More...
enum  FBGlobalEvalCallbackTiming {
  kFBGlobalEvalCallbackBeforeDAG, kFBGlobalEvalCallbackAfterDAG, kFBGlobalEvalCallbackAfterDeform, kFBGlobalEvalCallbackSyn,
  kFBGlobalEvalCallbackBeforeRender, kFBGlobalEvalCallbackAfterRender
}
 

Global Evaluation callback timing.

More...
enum  FBFileMonitoringType { kFBFileMonitoring_InvalidIndex, kFBFileMonitoring_MAINSCENE, kFBFileMonitoring_ANIMATIONCLIP, kFBFileMonitoring_FILEREFERENCE }
 

File Monitoring Type.

More...
enum  FBTraceLevel { kFBNO_TRACE = 0, kFBCRITICAL_TRACE = 1, kFBNORMAL_TRACE = 10, kFBALL_TRACE = 20 }
 

Trace Level.

More...

Functions

 FB_FORWARD (FBCharacter)
 FB_DEFINE_COMPONENT (FBSDK_DLL, Take)
 FB_DEFINE_COMPONENT (FBSDK_DLL, Renderer)
FBSDK_DLL HIObject FBGetFBObject (HIObject pObject, bool pAutoCreate=false)
 Get the SDK object from an Internal Object.
template<class T >
T * FBCast (HIObject pObject, bool pAutoCreate=false)
 Cast the SDK object using it's IObject interface into the proper class.
template<class T >
T * FBCast (FBObject *pObject, bool pAutoCreate=false)
 Cast the SDK object using it's IObject interface into the proper class.
 __FB_FORWARD (FBSystem)
 __FB_FORWARD (FBTriggerManager)
 FB_FORWARD (FBBatchOptions)
 FB_DEFINE_ENUM (FBSDK_DLL, BatchProcessType)
 FB_DEFINE_ENUM (FBSDK_DLL, BatchFileFormat)
 FB_DEFINE_ENUM (FBSDK_DLL, BatchOnTakeExist)
 FB_DEFINE_ENUM (FBSDK_DLL, BatchOnContainsBatchTakes)
 FB_FORWARD (FBPlotOptions)
 FB_DEFINE_ENUM (FBSDK_DLL, RotationFilter)
 FB_FORWARD (FBAudioRenderOptions)
 __FB_FORWARD (FBApplication)
 __FB_FORWARD (FBCharacter)
 __FB_FORWARD (FBActor)
 FB_DEFINE_COMPONENT (FBSDK_DLL, Character)
 FB_DEFINE_COMPONENT (FBSDK_DLL, Actor)
 __FB_FORWARD (FBPlayerControl)
 FB_DEFINE_ENUM (FBSDK_DLL, TransportMode)
 FB_DEFINE_ENUM (FBSDK_DLL, TransportTimeFormat)
 FB_DEFINE_ENUM (FBSDK_DLL, TransportPlaySpeed)
 FB_DEFINE_ENUM (FBSDK_DLL, TransportSnapMode)
 FB_DEFINE_ENUM (FBSDK_DLL, ParallelScheduleType)
 __FB_FORWARD (FBEvaluateManager)
 Evaluate Manager.
 __FB_FORWARD (FBKeyControl)
 __FB_FORWARD (FBPointCacheManager)
 __FB_FORWARD (FBFileMonitoringManager)
 FB_DEFINE_ENUM (FBSDK_DLL, FileMonitoringType)
 __FB_FORWARD (FBEventFileChange)
 FB_FORWARD (FBCriticalSection)
 FB_FORWARD (FBFastLock)
 __FB_FORWARD (FBReferenceTime)
FBSDK_DLL FBModelListFBCreateModelList ()
 Create a FBModelList object.
FBSDK_DLL void FBDestroyModelList (FBModelList *pModelList)
 Delete a FBModelList object.
FBSDK_DLL FBPlugListFBCreatePlugList ()
 Create a FBPlugList object.
FBSDK_DLL void FBDestroyPlugList (FBPlugList *pPlugList)
 Delete a FBPlugList object.
FBSDK_DLL FBComponentListFBCreateComponentList ()
 Create a FBObjectList object.
FBSDK_DLL void FBDestroyComponentList (FBComponentList *pObjectList)
 Delete a FBObjectList object.
FBSDK_DLL void FBSleep (kULong MilliSeconds)
 Sleep function Puts system to sleep for specified time.
FBSDK_DLL void FBSchedulingDependencyOutput (bool pEnable)
 Debug function for MT dependency debug.
FBSDK_DLL FBModelFBFindModelByLabelName (const char *pModelLabelName)
 Find a model in the scene by its label name.
FBSDK_DLL FBModelFBFindModelByUniqueColorId (const FBColor &pColor, int *pSubItemIndex=NULL)
 Find a model in the scene by its unique color id.
FBSDK_DLL FBModelFBLoadFbxPrimitivesModel (const char *pModelName)
 Load a model.
FBSDK_DLL void FBFindModelsOfType (FBModelList &pList, int pTypeInfo, FBModel *pParent=NULL)
 Find all models of a certain type in the scene.
FBSDK_DLL void FBGetSelectedModels (FBModelList &pList, FBModel *pParent=NULL, bool pSelected=true, bool pSortBySelectOrder=false)
 Find all models that are selected (if pSelected is true) Searches recursively from a root model for models that are selected, and adds them to a list of models.
FBSDK_DLL void FBFindObjectsByName (const char *pNamePattern, FBComponentList &pList, bool pIncludeNamespace=true, bool pModelsOnly=false)
 FBFindObjectsByName.
FBSDK_DLL FBComponentFBFindObjectByFullName (const char *pObjectFullName)
 FBFindObjectByFullName.
FBSDK_DLL int FBDeleteObjectsByName (const char *pNamePattern, const char *pNameSpace=NULL, const char *pGroupName=NULL)
 FBDeleteObjectsByName.
FBSDK_DLL void FBBeginChangeAllModels ()
 Call begin change to all models (need to be closed).
FBSDK_DLL void FBEndChangeAllModels ()
 Call end change to all models (should be first open).
FBSDK_DLL void FBMergeTransactionBegin ()
 Call to begin the transaction for merging multiple files.
FBSDK_DLL void FBMergeTransactionEnd ()
 Call to end the merge transaction.
FBSDK_DLL bool FBMergeTransactionIsOn ()
 Call to tell if system is during Merge transaction.
FBSDK_DLL void FBMergeTransactionFileRefEditBegin ()
 Call to begin the transaction for merging multiple files and applying File Reference edit at the same time.
FBSDK_DLL void FBMergeTransactionFileRefEditEnd ()
 Call to end merge transaction with File Reference edit.
FBSDK_DLL bool FBMergeTransactionFileRefEditIsOn ()
 Call to tell if system is during File Reference Edit Merge transaction.
FBSDK_DLL void FBTraceSetLevel (unsigned int pNewLevel)
 Set Global Trace Detailed Level which affects all the output targets.
FBSDK_DLL unsigned int FBTraceGetLevel ()
 Get Global Trace Detailed Level which affects all the output targets.
FBSDK_DLL void FBTrace (const char *pFormatString,...)
 This function prints useful debugging strings in the console with kFBNORMAL_TRACE output detailed level.
FBSDK_DLL void FBTraceWithLevel (unsigned int pLevel, const char *pFormatString,...)
 This function prints useful debugging strings in the console.
FBSDK_DLL bool FBRegisterTraceStubFct (FBTraceStubFct pFct)
 Register custom trace stub function.
FBSDK_DLL bool FBUnRegisterTraceStubFct (FBTraceStubFct pFct)
 Unregister custom trace stub function.
FBSDK_DLL void FBObjectLifeLogEnable (bool pEnable)
 Enable object creation / deletion logging.
FBSDK_DLL unsigned int FBObjectGetGlobalUniqueId ()
 Get the global static object unique ID counter.
FBSDK_DLL void FBObjectPrintLivings (unsigned int pStartUniqueId)
 Print those living objects created when logging is enabled.
FBSDK_DLL unsigned int FBObjectGetLivingCount ()
 Get current total living object count.
FBSDK_DLL void FBMakeFullPath (FBString &pFullPath, const char *pRootPath, const char *pFilePath)
 Get the given file's full path.
FBSDK_DLL bool FBPopNormalTool (const char *pToolName, bool pSetFocus=true)
 This function is used to bring up a specific tool in the GUI.

Detailed Description

Basic system interaction.

The FBSystem file contains the necessary data structure to interface with the underlying system.

Definition in file fbsystem.h.


Define Documentation

#define FBSDK_DLL   K_DLLIMPORT

Be sure that FBSDK_DLL is defined only once...

Definition at line 50 of file fbsystem.h.


Typedef Documentation

typedef void(* kFBEvaluationGlobalFunctionCallback)(FBEvaluateInfo *pEvaluteInfo)

Definition at line 1092 of file fbsystem.h.


Enumeration Type Documentation

Different process type for the batch.

Enumerator:
kFBBatchProcessTypeLoad 

Load the files and plot the character with every take.

kFBBatchProcessTypeSave 

Save the takes in different files.

kFBBatchProcessTypeConvert 

Does the load and save.

Definition at line 370 of file fbsystem.h.

Different file formats for the batch.

Enumerator:
kFBBatchFileFormatTRC 

File format for Motion Analysis TRC.

kFBBatchFileFormatC3D 

File format for Vicon C3D.

kFBBatchFileFormatAMC 

File format for Acclaim AMC.

kFBBatchFileFormatBVH 

File format for Biovision BVH.

kFBBatchFileFormatHTR 

File format for Motion Analysis HTR.

kFBBatchFileFormatFBX 

File format for FBX (animation only).

Definition at line 379 of file fbsystem.h.

Different actions to perform when a take already exist while in a batch process.

Enumerator:
kFBBatchOnTakeExistOverwrite 

Overwrite the take.

kFBBatchOnTakeExistSkip 

Skip the take.

Definition at line 391 of file fbsystem.h.

Different actions to perform when a scene already contains batch takes while in a batch process.

Enumerator:
kFBBatchOnContainsBatchTakesSaveBatchTakesOnly 

Save only the batch takes.

kFBBatchOnContainsBatchTakesSaveAllTakes 

Save all the takes.

Definition at line 399 of file fbsystem.h.

Different return values of the Batch process.

Enumerator:
kFBBatchStatusSuccess 
kFBBatchStatusError 
kFBBatchStatusCharacterNotSpecified 
kFBBatchStatusCharacterNotCharacterized 
kFBBatchStatusCharacterHasNoReference 
kFBBatchStatusInputActorNotSpecified 
kFBBatchStatusActorInputMarkersetNotSpecified 
kFBBatchStatusActorInputMarkersetHasNoReferenceModel 
kFBBatchStatusActorInputMarkersetNotCorrectlyAssociated 
kFBBatchStatusInputCharacterNotCharacterized 
kFBBatchStatusInputCharacterHasNoReference 
kFBBatchStatusInputDirectoryNotValid 
kFBBatchStatusAsfSkeletonFileNotSpecified 
kFBBatchStatusCantOpenAsfSkeletonFile 
kFBBatchStatusOutputDirectoryNotValid 

Definition at line 407 of file fbsystem.h.

Rotation filters.

Enumerator:
kFBRotationFilterNone 
kFBRotationFilterGimbleKiller 
kFBRotationFilterUnroll 

Definition at line 471 of file fbsystem.h.

Different viewer modes for the 3D viewer.

Enumerator:
kFBViewerModeOneWindow 

View one pane.

kFBViewerModeTwoWindow 

View two panes.

kFBViewerModeThreeWindow 

View three panes.

kFBViewerModeFourWindow 

View four panes.

kFBViewerModeSchematic 

Schematic view.

Definition at line 542 of file fbsystem.h.

Possible application for One-Click interop with MotionBuilder.

Enumerator:
kFBOneClickNone 

No application.

kFBOneClickMaya 

Maya.

kFBOneClick3dsMax 

3ds Max.

Definition at line 552 of file fbsystem.h.

Transport modes.

Enumerator:
kFBTransportPlay 
kFBTransportPlayPrepare 

!< Play mode

kFBTransportPlayReady 
kFBTransportStop 
kFBTransportStopPost 

!< Stop mode

kFBTransportStopReady 
kFBTransportShuttle 
kFBTransportShuttlePrepare 

!< Shuttle mode

kFBTransportShuttleReady 
kFBTransportPlayReverse 
kFBTransportPlayReversePrepare 

!< Play reverse.

kFBTransportPlayReverseReady 
kFBTransportJog 
kFBTransportJogPrepare 

!< Jog.

kFBTransportJogReady 
kFBTransportGoto 
kFBTransportGotoPrepare 

!< Goto.

kFBTransportGotoReady 
kFBTransportStepForward 
kFBTransportStepForwardPrepare 

!< Step forward

kFBTransportStepForwardReady 
kFBTransportStepBackward 
kFBTransportStepBackwardPrepare 

!< Step backward.

kFBTransportStepBackwardReady 

Definition at line 850 of file fbsystem.h.

Available transport control time display.

Enumerator:
kFBTimeFormatTimecode 

Timecode time display mode.

kFBTimeFormatFrame 

Frame time display mode.

Definition at line 863 of file fbsystem.h.

Available transport control play speed.

Enumerator:
kFBSpeed_1_10x 

1/10x.

kFBSpeed_1_5x 

1/5x

kFBSpeed_1_4x 

1/4x

kFBSpeed_1_3x 

1/3x

kFBSpeed_1_2x 

1/2x

kFBSpeed_1x 

1x

kFBSpeed_ALL_FR 

All frames.

kFBSpeed_2x 

2x

kFBSpeed_3x 

3x

kFBSpeed_4x 

4x

kFBSpeed_5x 

5x

kFBSpeed_10x 

10x

Definition at line 873 of file fbsystem.h.

Available snap methods for the transport control.

Enumerator:
kFBTransportSnapModeNoSnap 

No snapping is applied.

kFBTransportSnapModeSnapOnFrames 

Snaps to an exact frame when modifying the current time.

kFBTransportSnapModePlayOnFrames 

When playing, plays to exact frames.

kFBTransportSnapModeSnapAndPlayOnFrames 

Combines both Snap and Play on frames modes.

Definition at line 891 of file fbsystem.h.

DEPRICATED use ParallelEvaluation on FBEvaluateManager insteadAvailable DAG parallel schedule algorithm

Enumerator:
kFBParallelScheduleSerial 

No parallel schedule, use sequential evaluation order instead.

kFBParallelScheduleSimple 

Simple parallel schedule, mainly analyze the task dependency based on Motion Hierarchy (scene graph), but don't across active constraint.

kFBParallelScheduleAdvanced 

Advanced parallel schedule, task dependency analyzation will be able to across ative constraint, and plus motion hierarchy.

Definition at line 1070 of file fbsystem.h.

Global Evaluation callback timing.

Let the user to register callback function at different stage of background evaluation.

Enumerator:
kFBGlobalEvalCallbackBeforeDAG 

Invoked before any DAG (Transformation & Deformation) evaluation tasks started in evaluation pipeline / thread.

kFBGlobalEvalCallbackAfterDAG 

Invoked after all DAG (Transformation & Deformation) evaluation tasks finished in evaluation pipeline / thread.

kFBGlobalEvalCallbackAfterDeform 

Invoked after all deformation tasks finsished in evaluation pipeline / thread.

kFBGlobalEvalCallbackSyn 

Invoked when both evluation & rendering pipelines / threads are stopped.

Useful for some complicated scene change tasks to avoid race condition.

kFBGlobalEvalCallbackBeforeRender 

Invoked in rendering pipleline, before any rendering tasks start (immediately after clearing GL back buffer).

kFBGlobalEvalCallbackAfterRender 

Invoked in rendering pipleline, after any rendering tasks finsish (just before swapping GL back/front buffer).

Definition at line 1082 of file fbsystem.h.

File Monitoring Type.

Enumerator:
kFBFileMonitoring_InvalidIndex 

Invalid value.

kFBFileMonitoring_MAINSCENE 

Main Scene change monitoring.

kFBFileMonitoring_ANIMATIONCLIP 

Animation clip change monitoring.

kFBFileMonitoring_FILEREFERENCE 

File Reference change monitoring.

Definition at line 1275 of file fbsystem.h.


Function Documentation

FB_DEFINE_COMPONENT ( FBSDK_DLL  ,
Take   
)
FB_DEFINE_COMPONENT ( FBSDK_DLL  ,
Renderer   
)
FBSDK_DLL HIObject FBGetFBObject ( HIObject  pObject,
bool  pAutoCreate = false 
)

Get the SDK object from an Internal Object.

Parameters:
pObjectObject to get SDK object for.
pAutoCreateCreate object if it doesn't exist? (default = false)
Returns:
SDK object for pObject.
T* FBCast ( HIObject  pObject,
bool  pAutoCreate = false 
) [inline]

Cast the SDK object using it's IObject interface into the proper class.

Parameters:
pObjectObject to get SDK object for.
pAutoCreateCreate object if it doesn't exist? (default = false)
Returns:
SDK object for pObject.

Definition at line 113 of file fbsystem.h.

    {
        HIObject lObject = FBGetFBObject(pObject, pAutoCreate);
        // Should also validate type but not available for now
        return (T*)lObject;
    }
T* FBCast ( FBObject pObject,
bool  pAutoCreate = false 
) [inline]

Cast the SDK object using it's IObject interface into the proper class.

Parameters:
pObjectObject to get SDK object for.
pAutoCreateCreate object if it doesn't exist? (default = false)
Returns:
SDK object for pObject.

Definition at line 125 of file fbsystem.h.

    {
        HIObject lObject = pObject ? FBGetFBObject(pObject->GetHIObject(), pAutoCreate) : NULL;
        // Should also validate type but not available for now
        return (T*)lObject;
    }
FB_DEFINE_ENUM ( FBSDK_DLL  ,
BatchProcessType   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
BatchFileFormat   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
BatchOnTakeExist   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
BatchOnContainsBatchTakes   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
RotationFilter   
)
__FB_FORWARD ( FBActor  )
FB_DEFINE_COMPONENT ( FBSDK_DLL  ,
Character   
)
FB_DEFINE_COMPONENT ( FBSDK_DLL  ,
Actor   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
TransportMode   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
TransportTimeFormat   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
TransportPlaySpeed   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
TransportSnapMode   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
ParallelScheduleType   
)
__FB_FORWARD ( FBEvaluateManager  )

Evaluate Manager.

Interface to schedule the DAG (Directed Acyclic Graph) tasks to multi-core/CPU (or GPU) to accelerate evaluate process. Provide callback on some critical paths / times to allow customize the application.

FB_DEFINE_ENUM ( FBSDK_DLL  ,
FileMonitoringType   
)
FBSDK_DLL FBModelList* FBCreateModelList ( )

Create a FBModelList object.

This is to get around memory management issues when mixing debug and release runtime libraries on Windows. By using the FBCreateModelList/FBDestroyModelList duo of functions, you ensure that the memory used in the array is allocated, reallocated and freed in the same memory pool.

FBSDK_DLL void FBDestroyModelList ( FBModelList pModelList)

Delete a FBModelList object.

Parameters:
pModelListpointer to the object created with a call to FBCreateModelList().
FBSDK_DLL FBPlugList* FBCreatePlugList ( )

Create a FBPlugList object.

This is to get around memory management issues when mixing debug and release runtime libraries on Windows. By using the FBCreateObjectList/FBDestroyObjectList duo of functions, you ensure that the memory used in the array is allocated, reallocated and freed in the same memory pool.

FBSDK_DLL void FBDestroyPlugList ( FBPlugList pPlugList)

Delete a FBPlugList object.

Parameters:
pPlugListpointer to the object created with a call to FBCreatePlugList().
FBSDK_DLL FBComponentList* FBCreateComponentList ( )

Create a FBObjectList object.

This is to get around memory management issues when mixing debug and release runtime libraries on Windows. By using the FBCreateObjectList/FBDestroyObjectList duo of functions, you ensure that the memory used in the array is allocated, reallocated and freed in the same memory pool.

FBSDK_DLL void FBDestroyComponentList ( FBComponentList pObjectList)

Delete a FBObjectList object.

Parameters:
pObjectListpointer to the object created with a call to FBCreateObjectList().
FBSDK_DLL void FBSleep ( kULong  MilliSeconds)

Sleep function Puts system to sleep for specified time.

Parameters:
MilliSecondsTime to sleep for.
FBSDK_DLL void FBSchedulingDependencyOutput ( bool  pEnable)

Debug function for MT dependency debug.

When enabled log file will be created and updated each time MultiThreaded scheduling is happening (scene rebuild)

Parameters:
pEnableON/OFF switch. This is not stored in config (should be changed only for debug purpose, because slow down rebuild process )
FBSDK_DLL FBModel* FBFindModelByLabelName ( const char *  pModelLabelName)

Find a model in the scene by its label name.

Searches the scene for a model, based on the model's label name. Label name is "NameSpaceName:ObjectName". also known as "PrefixName::ObjectName" Full name is "GroupName::NameSpaceName:ObjectName".

Parameters:
pModelLabelNameLabelName of model to search for. Specify it with schema like "NameSpaceName:ObjectName",or "ObjectName" if no NameSpaceName.
Returns:
A handle onto the model with Label name matching, returns NULL if no model was found by the search.
FBSDK_DLL FBModel* FBFindModelByUniqueColorId ( const FBColor pColor,
int *  pSubItemIndex = NULL 
)

Find a model in the scene by its unique color id.

A model could have a single unique ColorID, but SDK plugin user could request additional ColorID per model to support multi sub items picking. see FBModel::SetAdditionalUniqueColorIDCount().

Parameters:
pColorColor channel values are in range of [0,1] with precision 1.0/255
pSubItemIndexPass out SubImtem index value if not null. In pyfbsdk no such parameter.
Returns:
A handle onto the model with unique color id matching, returns NULL if no model was found by the search. In pyfbsdk return tuple [model, subItemIndex]
FBSDK_DLL FBModel* FBLoadFbxPrimitivesModel ( const char *  pModelName)

Load a model.

Parameters:
pModelNameName of primitive model to load.
Returns:
A handle onto the model that was loaded, returns NULL if no model was found.
FBSDK_DLL void FBFindModelsOfType ( FBModelList pList,
int  pTypeInfo,
FBModel pParent = NULL 
)

Find all models of a certain type in the scene.

Searches recursively from a root model for models of a certain type, and adds them to a list of models.

Return values:
pListList to add found models to.
Parameters:
pTypeInfoModel type to look for.
pParentRoot model to look from (default=NULL(root)).
FBSDK_DLL void FBGetSelectedModels ( FBModelList pList,
FBModel pParent = NULL,
bool  pSelected = true,
bool  pSortBySelectOrder = false 
)

Find all models that are selected (if pSelected is true) Searches recursively from a root model for models that are selected, and adds them to a list of models.

Return values:
pListList to add found models to.
Parameters:
pParentRoot model to look from (default=NULL(root)).
pSelectedtrue to find selected models, false to find unselected models(default=true).
pSortBySelectOrdertrue to sort the result by selection order, first selected model in the first part of the list; false to sort the result by scene graph order
FBSDK_DLL void FBFindObjectsByName ( const char *  pNamePattern,
FBComponentList pList,
bool  pIncludeNamespace = true,
bool  pModelsOnly = false 
)

FBFindObjectsByName.

This function will query the system for objects fulfilling a particular name pattern

Parameters:
pNamePatternIndicate the name pattern to search. This pattern can contain any amount of *. (ex: *tr*mod*scene )
pListList that contains the objects
pIncludeNamespaceDoes the search use the complete name (with namespace)
pModelsOnlyIs the search on models or all types of objects
FBSDK_DLL FBComponent* FBFindObjectByFullName ( const char *  pObjectFullName)

FBFindObjectByFullName.

This function will query the system for an object with its FullName matching. Full name is "GroupName::NameSpaceName:ObjectName". Label name is "NameSpaceName:ObjectName". also known as "PrefixName::ObjectName"

Parameters:
pObjectFullNameFull Name of object to search for. Specify it with schema like "GroupName::NameSpaceName:ObjectName",or "GroupName::ObjectName" if no NameSpaceName.
Returns:
A handle onto the object with Full name matching pObjectFullName, returns NULL if no object was found by the search.
FBSDK_DLL int FBDeleteObjectsByName ( const char *  pNamePattern,
const char *  pNameSpace = NULL,
const char *  pGroupName = NULL 
)

FBDeleteObjectsByName.

This function will query the system for objects fulfilling a particular name pattern and delete them. specify a namespace preferred, delete all objects with the group name without specified a namespace specified may lead to inconsistent in scene. Wrap multiple calls to FBDeleteObjectsByName() inside pair of FBMergeTransactionBegin() / FBMergeTransactionEnd() could improve application's performance.

Parameters:
pNamePatternif not NULL, indicate the name pattern to search. This pattern can contain any amount of *. (ex: *tr*mod*scene ). if is NULL or Empty string, * will be used for match all.
pNameSpaceif not NULL, the objects must be inside the given namespace.
pGroupNameif not NULL, indicate the object group name (type).
Returns:
the count of objects found and deleted.
FBSDK_DLL void FBBeginChangeAllModels ( )

Call begin change to all models (need to be closed).

Useful for selection of many models that can trigger many related callbacks)

FBSDK_DLL void FBEndChangeAllModels ( )

Call end change to all models (should be first open).

FBSDK_DLL void FBMakeFullPath ( FBString pFullPath,
const char *  pRootPath,
const char *  pFilePath 
)

Get the given file's full path.

Return values:
pFullPathIf the given file path is not root path, return the new path with the given file path behind the given root path, if the given path is root path, directly return the given path.
Parameters:
pRootPathThe given root path.
pFilePathThe given file path.
FBSDK_DLL bool FBPopNormalTool ( const char *  pToolName,
bool  pSetFocus = true 
)

This function is used to bring up a specific tool in the GUI.

Parameters:
pToolNameThe name of the tool as shown in the Open Reality menu.
pSetFocusIndicate if the tool will have the focus.
Returns:
If the tool was brought up successfully.