fbsdk/fbsystem.h File Reference
 
 
 
fbsdk/fbsystem.h File Reference
#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>

File Description

Basic system interaction.

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

Definition in file fbsystem.h.

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

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 ( K_DLLIMPORT  ,
Take   
)
FB_DEFINE_COMPONENT ( K_DLLIMPORT  ,
Renderer   
)
K_DLLIMPORT HIObject FBGetFBObject ( HIObject  pObject,
bool  pAutoCreate = false 
)

Get the SDK object from an Internal Object.

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

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

Parameters:
pObject Object to get SDK object for.
pAutoCreate Create 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;
    }
template<class T >
T* FBCast ( FBObject pObject,
bool  pAutoCreate = false 
) [inline]

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

Parameters:
pObject Object to get SDK object for.
pAutoCreate Create 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 ( K_DLLIMPORT  ,
BatchProcessType   
)
FB_DEFINE_ENUM ( K_DLLIMPORT  ,
BatchFileFormat   
)
FB_DEFINE_ENUM ( K_DLLIMPORT  ,
BatchOnTakeExist   
)
FB_DEFINE_ENUM ( K_DLLIMPORT  ,
BatchOnContainsBatchTakes   
)
FB_DEFINE_ENUM ( K_DLLIMPORT  ,
RotationFilter   
)
__FB_FORWARD ( FBActor  )
FB_DEFINE_COMPONENT ( K_DLLIMPORT  ,
Character   
)
FB_DEFINE_COMPONENT ( K_DLLIMPORT  ,
Actor   
)
FB_DEFINE_ENUM ( K_DLLIMPORT  ,
TransportMode   
)
FB_DEFINE_ENUM ( K_DLLIMPORT  ,
TransportTimeFormat   
)
FB_DEFINE_ENUM ( K_DLLIMPORT  ,
TransportPlaySpeed   
)
FB_DEFINE_ENUM ( K_DLLIMPORT  ,
TransportSnapMode   
)
FB_DEFINE_ENUM ( K_DLLIMPORT  ,
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 ( K_DLLIMPORT  ,
FileMonitoringType   
)
K_DLLIMPORT 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.

K_DLLIMPORT void FBDestroyModelList ( FBModelList pModelList )

Delete a FBModelList object.

Parameters:
pModelList pointer to the object created with a call to FBCreateModelList().
K_DLLIMPORT 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.

K_DLLIMPORT void FBDestroyPlugList ( FBPlugList pPlugList )

Delete a FBPlugList object.

Parameters:
pPlugList pointer to the object created with a call to FBCreatePlugList().
K_DLLIMPORT 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.

K_DLLIMPORT void FBDestroyComponentList ( FBComponentList pObjectList )

Delete a FBObjectList object.

Parameters:
pObjectList pointer to the object created with a call to FBCreateObjectList().
K_DLLIMPORT void FBSleep ( kULong  MilliSeconds )

Sleep function Puts system to sleep for specified time.

Parameters:
MilliSeconds Time to sleep for.
K_DLLIMPORT 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:
pEnable ON/OFF switch. This is not stored in config (should be changed only for debug purpose, because slow down rebuild process )
K_DLLIMPORT 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:
pModelLabelName LabelName 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.
K_DLLIMPORT 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:
pColor Color channel values are in range of [0,1] with precision 1.0/255
pSubItemIndex Pass 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]
K_DLLIMPORT FBModel* FBLoadFbxPrimitivesModel ( const char *  pModelName )

Load a model.

Parameters:
pModelName Name of primitive model to load.
Returns:
A handle onto the model that was loaded, returns NULL if no model was found.
K_DLLIMPORT 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:
pList List to add found models to.
Parameters:
pTypeInfo Model type to look for.
pParent Root model to look from (default=NULL(root)).
K_DLLIMPORT 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:
pList List to add found models to.
Parameters:
pParent Root model to look from (default=NULL(root)).
pSelected true to find selected models, false to find unselected models(default=true).
pSortBySelectOrder true 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
K_DLLIMPORT 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:
pNamePattern Indicate the name pattern to search. This pattern can contain any amount of *. (ex: *tr*mod*scene )
pList List that contains the objects
pIncludeNamespace Does the search use the complete name (with namespace)
pModelsOnly Is the search on models or all types of objects
K_DLLIMPORT 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:
pObjectFullName Full 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.
K_DLLIMPORT 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:
pNamePattern if 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.
pNameSpace if not NULL, the objects must be inside the given namespace.
pGroupName if not NULL, indicate the object group name (type).
Returns:
the count of objects found and deleted.
K_DLLIMPORT void FBBeginChangeAllModels ( )

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

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

K_DLLIMPORT void FBEndChangeAllModels ( )

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

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

Get the given file's full path.

Return values:
pFullPath If 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:
pRootPath The given root path.
pFilePath The given file path.
K_DLLIMPORT bool FBPopNormalTool ( const char *  pToolName,
bool  pSetFocus = true 
)

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

Parameters:
pToolName The name of the tool as shown in the Open Reality menu.
pSetFocus Indicate if the tool will have the focus.
Returns:
If the tool was brought up successfully.

Go to the source code of this file.