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

FBPlug Class Reference

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.


Search for all occurrences

Detailed Description

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.

Definition at line 198 of file fbplug.h.

#include <fbplug.h>

Inheritance diagram for FBPlug:
Inheritance graph
[legend]

List of all members.

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.
FBPlugGetSrc (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.
FBPlugGetDst (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.
FBPlugGetOwner ()
 Get the owner of this plug.
FBPlugGetOwned (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.

Constructor & Destructor Documentation

FBPlug ( HIObject  pObject) [protected]

! Constructor Internal use only.

User code shouldn't instantiate FBPlug directly.

virtual ~FBPlug ( ) [virtual]

Destructor.


Member Function Documentation

virtual HIObject GetHIObject ( ) const [virtual]

Return an internal pointer.

virtual bool SetHIObject ( HIObject  pObject,
bool  pSDKComponent 
) [virtual]

Assign component to an internal pointer.

Reimplemented in FBComponent.

bool IsSDKComponent ( )

Return whether or not item is an SDK component.

bool ConnectSrc ( FBPlug pSrc,
FBConnectionType  pConnectionType = kFBConnectionTypeNone 
)

Add a source connection.

Parameters:
pSrcSource plug.
pConnectionTypeType of connection, taken from FBConnectionType. Default value should work in all cases.
Returns:
A boolean indicating success (True) or failure (False).
bool ConnectDst ( FBPlug pDst,
FBConnectionType  pConnectionType = kFBConnectionTypeNone 
)

Add a destination connection.

Parameters:
pDstDestination plug.
pConnectionTypeType of connection, taken from FBConnectionType. Default value should work in all cases.
Returns:
A boolean indicating success (True) or failure (False)
bool ConnectSrcAt ( int  pDst_SrcIndex,
FBPlug pSrc,
FBConnectionType  pConnectionType = kFBConnectionTypeNone 
)

Add a source connection.

Parameters:
pDst_SrcIndexIndex 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.
pSrcSource plug.
pConnectionTypeType of connection, taken from FBConnectionType. Default value should work in all cases.
Returns:
A boolean indicating success (True) or failure (False).
bool ConnectDstAt ( int  pSrc_DstIndex,
FBPlug pDst,
FBConnectionType  pConnectionType = kFBConnectionTypeNone 
)

Add a destination connection.

Parameters:
pSrc_DstIndexIndex 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.
pDstDestination plug.
pConnectionTypeType of connection, taken from FBConnectionType. Default value should work in all cases.
Returns:
A boolean indicating success (True) or failure (False).
bool DisconnectDst ( FBPlug pDst)

Remove a destination connection.

Parameters:
pDstDestination plug.
Returns:
A boolean indicating success (True) or failure (False).
bool DisconnectSrc ( FBPlug pSrc)

Remove a source connection.

Parameters:
pSrcSource plug.
Returns:
A boolean indicating success (True) or failure (False).
void DisconnectAllSrc ( )

Remove all source connections.

void DisconnectAllDst ( )

Remove all destination connections.

bool DisconnectDstAt ( int  pIndex)

Remove a destination connection at a specified index.

Parameters:
pIndexDestination plug index.
Returns:
A boolean indicating success (True) or failure (False).
bool DisconnectSrcAt ( int  pIndex)

Remove a source connection at a specified index.

Parameters:
pIndexSource plug index.
Returns:
A boolean indicating success (True) or failure (False).
bool ReplaceDstAt ( int  pIndex,
FBPlug pDst 
)

Replace a destination connection at a specified index.

Parameters:
pIndexDestination plug index.
pDstPlug that will replace the other at index.
Returns:
A boolean indicating success (True) or failure (False).
bool ReplaceSrcAt ( int  pIndex,
FBPlug pSrc 
)

Replace a source connection at a specified index.

Parameters:
pIndexSource plug index.
pSrcPlug that will replace the other at index.
Returns:
A boolean indicating success (True) or failure (False).
bool SwapSrc ( int  pIndexA,
int  pIndexB 
)

Swap source connection at index A with source connection at index B.

Parameters:
pIndexAPlug index.
pIndexBOther plug index.
Returns:
A boolean indicating success (True) or failure (False).
bool MoveSrcAt ( int  pIndex,
int  pAtIndex 
)

Move source connection at pIndex to pAtIndex.

Parameters:
pIndexPlug current index.
pAtIndexPlug new index.
Returns:
A boolean indicating success (True) or failure (False).
Remarks:
This is not like the swap function since the connection at pAtIndex is untouched.
bool MoveSrcAt ( FBPlug pSrc,
FBPlug pAtSrc 
)

Move source connection pSrc to the position of pAtSrc.

Parameters:
pSrcPlug.
pAtSrcPlug that mark where we want to insert (will insert before this one).
Returns:
A boolean indicating success (True) or failure (False).
Remarks:
This is not like the swap function since the connection at pAtSrc is untouched.
int GetSrcCount ( )

Get source connection count.

Returns:
Total sources connections count.
FBPlug* GetSrc ( int  pIndex)

Get a source connection's plug at specified index.

Parameters:
pIndexIndex of the source connection's plug.
Returns:
Source plug at specified index.
FBConnectionType GetSrcType ( int  pIndex)

Get a source connection's type at specified index.

Parameters:
pIndexIndex of the source connection's type.
Returns:
Source connection's type at specified index.
int GetDstCount ( )

Get destination connection count.

Returns:
Total destinations connections count.
FBPlug* GetDst ( int  pIndex)

Get a destination connection's plug at specified index.

Parameters:
pIndexIndex of the destination connection's plug.
Returns:
Destination plug at specified index.
FBConnectionType GetDstType ( int  pIndex)

Get a destination connection's type at specified index.

Parameters:
pIndexIndex of the destination connection's type.
Returns:
Destination connection's type at specified index.
bool BeginChange ( )

Begins a change on multiple plugs.

Returns:
A boolean indicating success (True) or failure (False).
void EndChange ( )

Ends a change on multiple plugs.

void SetSelfModified ( FBPlugModificationFlag  pFlag,
bool  pBool 
)

Set the plug's self modification flag.

Parameters:
pFlagbitwise AND of self modification flags.
pBooltrue if self changed.
bool GetSelfModified ( FBPlugModificationFlag  pFlag)

Tell if the plug's self has changed.

Parameters:
pFlagbitwise AND of self modification flags.
Returns:
true if self changed
void SetContentModified ( FBPlugModificationFlag  pFlag,
bool  pBool 
)

Set the plug's owned property/object's modification flag.

Parameters:
pFlagbitwise AND of content modification flags.
pBooltrue if content has modification.
bool GetContentModified ( FBPlugModificationFlag  pFlag)

Tell if the plug's content has changed.

Parameters:
pFlagbitwise AND of content modification flags.
Returns:
true if content connection changed.
int GetPlugConnectionModifiedList ( FBPlugList pPlugList,
FBPlugModificationFlag  pConnectionModificatonFlag,
bool  pAddRemove 
)

Get plug's modified src/dst property/object connection added/removed List.

Parameters:
pPlugListplug list to fill up.
pConnectionModificatonFlagSrc/Dst Property/Object connection modification flag.
pAddRemoveAsk for the added list if true, removed list if false.
Returns:
count of list;
bool RevertModification ( FBPlugModificationFlag  pFlag = kFBAllModifiedMask)

Revert the plug's modification to original status.

Parameters:
pFlagthe type of modification to be reverted.
Returns:
true if revert successfully.
void SetStatusFlag ( FBPlugStatusFlag  pStatus,
bool  pValue 
)

Set the plug's status flag.

Parameters:
pStatusbitwise AND of status flags.
pValuetrue if status has modification.
bool GetStatusFlag ( FBPlugStatusFlag  pStatus) const

Tell if the plug's status has changed.

Parameters:
pStatusbitwise AND of self modification flags.
Returns:
true if self changed
FBPlug* GetOwner ( )

Get the owner of this plug.

Very useful for properties since they are plugs too.

Returns:
The owner of this plug.
FBPlug* GetOwned ( int  pIndex)

Get the owned plug at specified index.

Parameters:
pIndexIndex of the owned plug to get.
Returns:
The owned plug at specified index.
int GetOwnedCount ( )

Get the owned plug count.

Returns:
The owned plug count.
virtual const char* ClassName ( ) [virtual]

internal System vars.

Reimplemented in FBComponent, and FBCustomManager.

virtual bool Is ( int  pTypeId) [virtual]

Is( int pTypeId )

Parameters:
pTypeIdType Identification.
Returns:
True if Plug is a Instance of pTypeId.

Reimplemented in FBComponent, and FBCustomManager.

virtual int GetTypeId ( ) [virtual]

GetTypeId( int pTypeId )

Returns:
The TypeInfo of the object

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.

Parameters:
pActionPlug action, the event type.
pThisPlug concerned.
pDataCurrent data, meaning depends of plug action.
pDataOldPrevious data, meaning depends of plug action.
pDataSizeSize of data.
Returns:
unused should return true
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.

Parameters:
pActionPlug action, the event type.
pThisPlug concerned.
pDataCurrent data, meaning depends of plug action.
pDataOldPrevious data, meaning depends of plug action.
pDataSizeSize of data.
Returns:
unused should return true except in the case of property rename kFBRename
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.

Parameters:
pActionPlug action, the event type.
pThisPlug concerned.
pIndexIndex of the plug.
pPlugOther plug concerned.
pConnectionTypeConnection type between the plugs.
pNewPlugNew plug (for the replace event).
Returns:
should by default return true except in the case of connection requests (kFBRequestConnectSrc or kFBRequestConnectDst)
IObject_Declare ( K_IMPLEMENTATION  )
ICallback_Declare ( K_IMPLEMENTATION  )
static void PrintClassDefinitions ( ) [static]

Print out internal Class (ID) Definition table.

For internal debug purpose only.

virtual void FBDelete ( ) [protected, virtual]
static int GetInternalClassId ( ) [static, protected]

Internal class Id.

Reimplemented in FBComponent, and FBCustomManager.


Friends And Related Function Documentation

FBSDK_DLL friend int __FBRegisterTypeInfo ( int  pInternalClassId) [friend]

__FBRegisterTypeInfo For internal use only, Register the TypeInfo mapped to internal class id.


Member Data Documentation

const char* ClassGroupName [static]

ClassGroupName of the object.

Definition at line 444 of file fbplug.h.

int TypeInfo [static]
bool mAllocated

Contain the Allocation State of the Component.

Definition at line 450 of file fbplug.h.

int mGlobalTypeInfo [static, protected]

Represente the Type Index.

Definition at line 500 of file fbplug.h.

HIObject mObject [protected]

Handle on the Plug.

Definition at line 502 of file fbplug.h.

bool mSDKComponent [protected]

bool Plug is an SDK component.

Definition at line 503 of file fbplug.h.


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

FBPlug FBPlug FBPlug FBPlug FBPlug FBPlug FBPlug FBPlug FBPlug FBPlug
FBPlug FBPlug FBPlug FBPlug FBPlug FBPlug FBPlug FBPlug FBPlug FBPlug