This reference page is linked to from the following overview topics: MotionBuilder 2014, MotionBuilder 2013, Object Model, FBComponent - The Base Entity Class, FBPlug - Object Connection Management, Animation Layers, Overview of the Architecture.
Connections Basic Open Reality SDK Element.
Most elements that are available in the SDK inherit from this base class since FBComponent and FBProperty inherit from FBPlug. Basically, all objects can be connected together because they are all "plugs". To simplify the graph, you can think of a "source" connection as a child, and a "destination" connection as a parent. Also, it is correct to assume that a source affect/work on its destination. For example, a shader applied on an object would be seen as the source while the object is the destination. So FBPlug is a set of functions that enables you to control those connections with flexibility and ease.
#include <fbplug.h>
Public Member Functions | |
virtual | ~FBPlug () |
Destructor. | |
virtual HIObject | GetHIObject () const |
Return an internal pointer. | |
virtual bool | SetHIObject (HIObject pObject, bool pSDKComponent) |
Assign component to an internal pointer. | |
bool | IsSDKComponent () |
Return whether or not item is an SDK component. | |
bool | ConnectSrc (FBPlug *pSrc, FBConnectionType pConnectionType=kFBConnectionTypeNone) |
Add a source connection. | |
bool | ConnectDst (FBPlug *pDst, FBConnectionType pConnectionType=kFBConnectionTypeNone) |
Add a destination connection. | |
bool | ConnectSrcAt (int pDst_SrcIndex, FBPlug *pSrc, FBConnectionType pConnectionType=kFBConnectionTypeNone) |
Add a source connection. | |
bool | ConnectDstAt (int pSrc_DstIndex, FBPlug *pDst, FBConnectionType pConnectionType=kFBConnectionTypeNone) |
Add a destination connection. | |
bool | DisconnectDst (FBPlug *pDst) |
Remove a destination connection. | |
bool | DisconnectSrc (FBPlug *pSrc) |
Remove a source connection. | |
void | DisconnectAllSrc () |
Remove all source connections. | |
void | DisconnectAllDst () |
Remove all destination connections. | |
bool | DisconnectDstAt (int pIndex) |
Remove a destination connection at a specified index. | |
bool | DisconnectSrcAt (int pIndex) |
Remove a source connection at a specified index. | |
bool | ReplaceDstAt (int pIndex, FBPlug *pDst) |
Replace a destination connection at a specified index. | |
bool | ReplaceSrcAt (int pIndex, FBPlug *pSrc) |
Replace a source connection at a specified index. | |
bool | SwapSrc (int pIndexA, int pIndexB) |
Swap source connection at index A with source connection at index B. | |
bool | MoveSrcAt (int pIndex, int pAtIndex) |
Move source connection at pIndex to pAtIndex. | |
bool | MoveSrcAt (FBPlug *pSrc, FBPlug *pAtSrc) |
Move source connection pSrc to the position of pAtSrc. | |
int | GetSrcCount () |
Get source connection count. | |
FBPlug * | GetSrc (int pIndex) |
Get a source connection's plug at specified index. | |
FBConnectionType | GetSrcType (int pIndex) |
Get a source connection's type at specified index. | |
int | GetDstCount () |
Get destination connection count. | |
FBPlug * | GetDst (int pIndex) |
Get a destination connection's plug at specified index. | |
FBConnectionType | GetDstType (int pIndex) |
Get a destination connection's type at specified index. | |
bool | BeginChange () |
Begins a change on multiple plugs. | |
void | EndChange () |
Ends a change on multiple plugs. | |
void | SetSelfModified (FBPlugModificationFlag pFlag, bool pBool) |
Set the plug's self modification flag. | |
bool | GetSelfModified (FBPlugModificationFlag pFlag) |
Tell if the plug's self has changed. | |
void | SetContentModified (FBPlugModificationFlag pFlag, bool pBool) |
Set the plug's owned property/object's modification flag. | |
bool | GetContentModified (FBPlugModificationFlag pFlag) |
Tell if the plug's content has changed. | |
int | GetPlugConnectionModifiedList (FBPlugList &pPlugList, FBPlugModificationFlag pConnectionModificatonFlag, bool pAddRemove) |
Get plug's modified src/dst property/object connection added/removed List. | |
bool | RevertModification (FBPlugModificationFlag pFlag=kFBAllModifiedMask) |
Revert the plug's modification to original status. | |
void | SetStatusFlag (FBPlugStatusFlag pStatus, bool pValue) |
Set the plug's status flag. | |
bool | GetStatusFlag (FBPlugStatusFlag pStatus) const |
Tell if the plug's status has changed. | |
FBPlug * | GetOwner () |
Get the owner of this plug. | |
FBPlug * | GetOwned (int pIndex) |
Get the owned plug at specified index. | |
int | GetOwnedCount () |
Get the owned plug count. | |
virtual const char * | ClassName () |
internal System vars. | |
virtual bool | Is (int pTypeId) |
Is( int pTypeId ) | |
virtual int | GetTypeId () |
GetTypeId( int pTypeId ) | |
virtual bool | PlugDataNotify (FBConnectionAction pAction, FBPlug *pThis, void *pData=NULL, void *pDataOld=NULL, int pDataSize=0) |
PlugDataNotify when overloaded is equivalent of FBSystem.OnConnectionDataNotify but in the context of the derived object only. | |
virtual bool | PlugStateNotify (FBConnectionAction pAction, FBPlug *pThis, void *pData=NULL, void *pDataOld=NULL, int pDataSize=0) |
PlugStateNotify when overloaded is equivalent of FBSystem.OnConnectionStateNotify but in the context of the derived object only. | |
virtual bool | PlugNotify (FBConnectionAction pAction, FBPlug *pThis, int pIndex, FBPlug *pPlug=NULL, FBConnectionType pConnectionType=kFBConnectionTypeNone, FBPlug *pNewPlug=NULL) |
PlugNotify when overloaded is equivalent of FBSystem.OnConnectionNotify but in the context of the derived object only. | |
IObject_Declare (K_IMPLEMENTATION) | |
ICallback_Declare (K_IMPLEMENTATION) | |
Static Public Member Functions | |
static void | PrintClassDefinitions () |
Print out internal Class (ID) Definition table. | |
Public Attributes | |
bool | mAllocated |
Contain the Allocation State of the Component. | |
Static Public Attributes | |
static const char * | ClassGroupName |
ClassGroupName of the object. | |
static int | TypeInfo |
TypeInfo. | |
Protected Member Functions | |
FBPlug (HIObject pObject) | |
! Constructor Internal use only. | |
virtual void | FBDelete () |
Actual destructor for a FBPlug. | |
Static Protected Member Functions | |
static int | GetInternalClassId () |
Internal class Id. | |
Protected Attributes | |
HIObject | mObject |
Handle on the Plug. | |
bool | mSDKComponent |
bool Plug is an SDK component. | |
Static Protected Attributes | |
static int | mGlobalTypeInfo |
Represente the Type Index. | |
Friends | |
FBSDK_DLL friend int | __FBRegisterTypeInfo (int pInternalClassId) |
__FBRegisterTypeInfo For internal use only, Register the TypeInfo mapped to internal class id. |
FBPlug | ( | HIObject | pObject | ) | [protected] |
! Constructor Internal use only.
User code shouldn't instantiate FBPlug directly.
virtual ~FBPlug | ( | ) | [virtual] |
Destructor.
virtual HIObject GetHIObject | ( | ) | const [virtual] |
Return an internal pointer.
virtual bool SetHIObject | ( | HIObject | pObject, |
bool | pSDKComponent | ||
) | [virtual] |
bool IsSDKComponent | ( | ) |
Return whether or not item is an SDK component.
bool ConnectSrc | ( | FBPlug * | pSrc, |
FBConnectionType | pConnectionType = kFBConnectionTypeNone |
||
) |
Add a source connection.
pSrc | Source plug. |
pConnectionType | Type of connection, taken from FBConnectionType. Default value should work in all cases. |
bool ConnectDst | ( | FBPlug * | pDst, |
FBConnectionType | pConnectionType = kFBConnectionTypeNone |
||
) |
Add a destination connection.
pDst | Destination plug. |
pConnectionType | Type of connection, taken from FBConnectionType. Default value should work in all cases. |
bool ConnectSrcAt | ( | int | pDst_SrcIndex, |
FBPlug * | pSrc, | ||
FBConnectionType | pConnectionType = kFBConnectionTypeNone |
||
) |
Add a source connection.
pDst_SrcIndex | Index that tells where to add this source connection in the destination's connection list. if index is out of bound, and this source connection will be appended at the end. |
pSrc | Source plug. |
pConnectionType | Type of connection, taken from FBConnectionType. Default value should work in all cases. |
bool ConnectDstAt | ( | int | pSrc_DstIndex, |
FBPlug * | pDst, | ||
FBConnectionType | pConnectionType = kFBConnectionTypeNone |
||
) |
Add a destination connection.
pSrc_DstIndex | Index that tells where to add this destination connection in the source's connection list. if index is out of bound, and this destination connection will be appended at the end. |
pDst | Destination plug. |
pConnectionType | Type of connection, taken from FBConnectionType. Default value should work in all cases. |
bool DisconnectDst | ( | FBPlug * | pDst | ) |
Remove a destination connection.
pDst | Destination plug. |
bool DisconnectSrc | ( | FBPlug * | pSrc | ) |
Remove a source connection.
pSrc | Source plug. |
void DisconnectAllSrc | ( | ) |
Remove all source connections.
void DisconnectAllDst | ( | ) |
Remove all destination connections.
bool DisconnectDstAt | ( | int | pIndex | ) |
Remove a destination connection at a specified index.
pIndex | Destination plug index. |
bool DisconnectSrcAt | ( | int | pIndex | ) |
Remove a source connection at a specified index.
pIndex | Source plug index. |
bool ReplaceDstAt | ( | int | pIndex, |
FBPlug * | pDst | ||
) |
Replace a destination connection at a specified index.
pIndex | Destination plug index. |
pDst | Plug that will replace the other at index. |
bool ReplaceSrcAt | ( | int | pIndex, |
FBPlug * | pSrc | ||
) |
Replace a source connection at a specified index.
pIndex | Source plug index. |
pSrc | Plug that will replace the other at index. |
bool SwapSrc | ( | int | pIndexA, |
int | pIndexB | ||
) |
Swap source connection at index A with source connection at index B.
pIndexA | Plug index. |
pIndexB | Other plug index. |
bool MoveSrcAt | ( | int | pIndex, |
int | pAtIndex | ||
) |
Move source connection at pIndex to pAtIndex.
pIndex | Plug current index. |
pAtIndex | Plug new index. |
Move source connection pSrc to the position of pAtSrc.
pSrc | Plug. |
pAtSrc | Plug that mark where we want to insert (will insert before this one). |
int GetSrcCount | ( | ) |
FBPlug* GetSrc | ( | int | pIndex | ) |
Get a source connection's plug at specified index.
pIndex | Index of the source connection's plug. |
FBConnectionType GetSrcType | ( | int | pIndex | ) |
Get a source connection's type at specified index.
pIndex | Index of the source connection's type. |
int GetDstCount | ( | ) |
Get destination connection count.
FBPlug* GetDst | ( | int | pIndex | ) |
Get a destination connection's plug at specified index.
pIndex | Index of the destination connection's plug. |
FBConnectionType GetDstType | ( | int | pIndex | ) |
Get a destination connection's type at specified index.
pIndex | Index of the destination connection's type. |
bool BeginChange | ( | ) |
Begins a change on multiple plugs.
void EndChange | ( | ) |
Ends a change on multiple plugs.
void SetSelfModified | ( | FBPlugModificationFlag | pFlag, |
bool | pBool | ||
) |
Set the plug's self modification flag.
pFlag | bitwise AND of self modification flags. |
pBool | true if self changed. |
bool GetSelfModified | ( | FBPlugModificationFlag | pFlag | ) |
Tell if the plug's self has changed.
pFlag | bitwise AND of self modification flags. |
void SetContentModified | ( | FBPlugModificationFlag | pFlag, |
bool | pBool | ||
) |
Set the plug's owned property/object's modification flag.
pFlag | bitwise AND of content modification flags. |
pBool | true if content has modification. |
bool GetContentModified | ( | FBPlugModificationFlag | pFlag | ) |
Tell if the plug's content has changed.
pFlag | bitwise AND of content modification flags. |
int GetPlugConnectionModifiedList | ( | FBPlugList & | pPlugList, |
FBPlugModificationFlag | pConnectionModificatonFlag, | ||
bool | pAddRemove | ||
) |
Get plug's modified src/dst property/object connection added/removed List.
pPlugList | plug list to fill up. |
pConnectionModificatonFlag | Src/Dst Property/Object connection modification flag. |
pAddRemove | Ask for the added list if true, removed list if false. |
bool RevertModification | ( | FBPlugModificationFlag | pFlag = kFBAllModifiedMask | ) |
Revert the plug's modification to original status.
pFlag | the type of modification to be reverted. |
void SetStatusFlag | ( | FBPlugStatusFlag | pStatus, |
bool | pValue | ||
) |
Set the plug's status flag.
pStatus | bitwise AND of status flags. |
pValue | true if status has modification. |
bool GetStatusFlag | ( | FBPlugStatusFlag | pStatus | ) | const |
Tell if the plug's status has changed.
pStatus | bitwise AND of self modification flags. |
FBPlug* GetOwner | ( | ) |
Get the owner of this plug.
Very useful for properties since they are plugs too.
FBPlug* GetOwned | ( | int | pIndex | ) |
Get the owned plug at specified index.
pIndex | Index of the owned plug to get. |
int GetOwnedCount | ( | ) |
virtual const char* ClassName | ( | ) | [virtual] |
virtual bool Is | ( | int | pTypeId | ) | [virtual] |
pTypeId | Type Identification. |
Reimplemented in FBComponent, and FBCustomManager.
virtual int GetTypeId | ( | ) | [virtual] |
GetTypeId( int pTypeId )
Reimplemented in FBComponent, and FBCustomManager.
virtual bool PlugDataNotify | ( | FBConnectionAction | pAction, |
FBPlug * | pThis, | ||
void * | pData = NULL , |
||
void * | pDataOld = NULL , |
||
int | pDataSize = 0 |
||
) | [virtual] |
PlugDataNotify when overloaded is equivalent of FBSystem.OnConnectionDataNotify but in the context of the derived object only.
pAction | Plug action, the event type. |
pThis | Plug concerned. |
pData | Current data, meaning depends of plug action. |
pDataOld | Previous data, meaning depends of plug action. |
pDataSize | Size of data. |
virtual bool PlugStateNotify | ( | FBConnectionAction | pAction, |
FBPlug * | pThis, | ||
void * | pData = NULL , |
||
void * | pDataOld = NULL , |
||
int | pDataSize = 0 |
||
) | [virtual] |
PlugStateNotify when overloaded is equivalent of FBSystem.OnConnectionStateNotify but in the context of the derived object only.
pAction | Plug action, the event type. |
pThis | Plug concerned. |
pData | Current data, meaning depends of plug action. |
pDataOld | Previous data, meaning depends of plug action. |
pDataSize | Size of data. |
virtual bool PlugNotify | ( | FBConnectionAction | pAction, |
FBPlug * | pThis, | ||
int | pIndex, | ||
FBPlug * | pPlug = NULL , |
||
FBConnectionType | pConnectionType = kFBConnectionTypeNone , |
||
FBPlug * | pNewPlug = NULL |
||
) | [virtual] |
PlugNotify when overloaded is equivalent of FBSystem.OnConnectionNotify but in the context of the derived object only.
pAction | Plug action, the event type. |
pThis | Plug concerned. |
pIndex | Index of the plug. |
pPlug | Other plug concerned. |
pConnectionType | Connection type between the plugs. |
pNewPlug | New plug (for the replace event). |
IObject_Declare | ( | K_IMPLEMENTATION | ) |
Reimplemented in FBAssetFile, FBAssetFolder, FBAssetMng, FBCharacter, FBActorFace, FBCharacterFace, FBCharacterSolver, FBCommand, FBComponent, FBConstraint, FBConstraintRelation, FBBox, FBDevice, FBDeck, FBProperty, FBShader, FBTriggerGroup, FBTrigger, FBMotionClip, FBTriggerBranch, FBVisualComponent, FBLayout, and FBView.
ICallback_Declare | ( | K_IMPLEMENTATION | ) |
Reimplemented in FBComponent, FBModel, and FBVisualComponent.
static void PrintClassDefinitions | ( | ) | [static] |
Print out internal Class (ID) Definition table.
For internal debug purpose only.
virtual void FBDelete | ( | ) | [protected, virtual] |
Actual destructor for a FBPlug.
It should never be called from client code. This is meant for internal use only!
Reimplemented in FBAudioClip, FBActor, FBCharacter, FBCharacterExtension, FBActorFace, FBCharacterFace, FBComponent, FBContainer, FBFCurve, FBAnimationLayer, FBTake, FBFolder, FBGroup, FBSet, FBImage, FBKeyingGroup, FBModel, FBMotionClip, FBScene, FBStoryFolder, FBStoryTrack, FBStoryClip, FBTexture, FBLayeredTexture, FBVideoClip, and FBGenericMenu.
static int GetInternalClassId | ( | ) | [static, protected] |
FBSDK_DLL friend int __FBRegisterTypeInfo | ( | int | pInternalClassId | ) | [friend] |
__FBRegisterTypeInfo For internal use only, Register the TypeInfo mapped to internal class id.
const char* ClassGroupName [static] |
int TypeInfo [static] |
TypeInfo.
Reimplemented in FBComponent, FBCustomManager, FBPropertyBaseComponent< tType >, FBPropertyBaseComponent< FBPlug * >, and FBPropertyBaseComponent< FBComponent * >.
bool mAllocated |
Contain the Allocation State of the Component.
int mGlobalTypeInfo [static, protected] |
HIObject mObject [protected] |
bool mSDKComponent [protected] |