45 #include <kaydaradef.h>
51 #define FBSDK_DLL K_DLLIMPORT
55 #include <object/i/icallback.h>
57 #include <fbsdk/fbscriptwrapper.h>
60 #ifdef FBSDKUseNamespace
61 namespace FBSDKNamespace {;
67 #define __FBClassImplementation( ThisComponent,pInternalClassId ) \
68 int ThisComponent::TypeInfo=__FBRegisterTypeInfo(pInternalClassId);\
69 int ThisComponent::GetInternalClassId() { return pInternalClassId; }
71 #define __FBClassImplementationGroup( ThisComponent, pInternalClass ) \
72 __FBClassImplementation( ThisComponent,pInternalClass::ClassId )\
73 const char* ThisComponent::ClassGroupName = pInternalClass::ClassGroupName;
182 kFBAllModifiedMask = kFBSelfAllModifiedMask | kFBContentAllModifiedMask
224 #ifndef DOXYGEN_SHOULD_SKIP_THIS
229 FBPlug( HIObject pObject );
235 virtual HIObject GetHIObject()
const;
238 virtual bool SetHIObject( HIObject pObject,
bool pSDKComponent );
457 virtual bool Is(
int pTypeId );
505 #ifndef DOXYGEN_SHOULD_SKIP_THIS
506 IObject_Declare(
override);
507 ICallback_Declare(
override);
512 static void PrintClassDefinitions();
569 template<
class T>
inline T*
FBCast(HIObject pObject,
bool pAutoCreate =
false)
599 bool Is(
int pTypeId );
609 bool operator==(
const HdlFBPlug& pFBPlug)
const;
610 bool operator!=(
const HdlFBPlug& pFBPlug)
const;
613 inline FBPlug* operator()()
const {
return GetPlug(); }
614 inline FBPlug* operator->()
const {
return GetPlug(); }
616 inline operator FBPlug* ()
const
618 return (
FBPlug *)GetPlug();
623 void SetPlug(
const FBPlug* pFBPlug);
648 SetPlug(pPlug.GetPlug());
654 return GetPlug() == pFBPlug.GetPlug();
659 return GetPlug() != pFBPlug.GetPlug();
662 T* operator()()
const
664 return (T *)GetPlug();
667 T* operator->()
const
669 return (T *)GetPlug();
674 return (T *)GetPlug();
678 #ifdef FBSDKUseNamespace
Template class to contain an array of items.
Connections Basic Open Reality SDK Element.
bool MoveSrcAt(int pIndex, int pAtIndex)
Move source connection at pIndex to pAtIndex.
int GetPlugConnectionModifiedList(FBPlugList &pPlugList, FBPlugModificationFlag pConnectionModificatonFlag, bool pAddRemove)
Get plug's modified src/dst property/object connection added/removed List.
void DisconnectAllDst()
Remove all destination connections.
bool DisconnectSrcAt(int pIndex)
Remove a source connection at a specified index.
bool ConnectSrcAt(int pDst_SrcIndex, FBPlug *pSrc, FBConnectionType pConnectionType=kFBConnectionTypeNone)
Add a source connection.
bool GetStatusFlag(FBPlugStatusFlag pStatus) const
Tell if the plug's status has changed.
bool ReplaceDstAt(int pIndex, FBPlug *pDst)
Replace a destination connection at a specified index.
bool mSDKComponent
bool Plug is an SDK component.
void SetContentModified(FBPlugModificationFlag pFlag, bool pBool)
Set the plug's owned property/object's modification flag.
FBPlug * GetOwned(int pIndex)
Get the owned plug at specified index.
bool GetSelfModified(FBPlugModificationFlag pFlag)
Tell if the plug's self has changed.
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 der...
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.
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 ...
void EndChange()
Ends a change on multiple plugs.
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...
virtual void FBDelete()
Actual destructor for a FBPlug.
virtual const char * ClassName()
internal System vars.
virtual bool Is(int pTypeId)
Is( int pTypeId )
bool ConnectDstAt(int pSrc_DstIndex, FBPlug *pDst, FBConnectionType pConnectionType=kFBConnectionTypeNone)
Add a destination connection.
FBPlug * GetSrc(int pIndex)
Get a source connection's plug at specified index.
static int GetInternalClassId()
Internal class Id.
bool ReplaceSrcAt(int pIndex, FBPlug *pSrc)
Replace a source connection at a specified index.
void SetSelfModified(FBPlugModificationFlag pFlag, bool pBool)
Set the plug's self modification flag.
int GetSrcCount()
Get source connection count.
bool mAllocated
Contain the Allocation State of the Component.
static int mGlobalTypeInfo
Represente the Type Index.
bool GetContentModified(FBPlugModificationFlag pFlag)
Tell if the plug's content has changed.
FBPlug * GetOwner()
Get the owner of this plug.
void DisconnectAllSrc()
Remove all source connections.
int GetDstCount()
Get destination connection count.
bool DisconnectSrc(FBPlug *pSrc)
Remove a source connection.
FBConnectionType GetSrcType(int pIndex)
Get a source connection's type at specified index.
static int TypeInfo
TypeInfo.
int GetOwnedCount()
Get the owned plug count.
bool BeginChange()
Begins a change on multiple plugs.
virtual int GetTypeId()
GetTypeId( int pTypeId )
K_DLLIMPORT friend int __FBRegisterTypeInfo(int pInternalClassId)
__FBRegisterTypeInfo For internal use only, Register the TypeInfo mapped to internal class id.
FBPlug * GetDst(int pIndex)
Get a destination connection's plug at specified index.
bool ConnectDst(FBPlug *pDst, FBConnectionType pConnectionType=kFBConnectionTypeNone)
Add a destination connection.
static const char * ClassGroupName
ClassGroupName of the object.
bool IsSDKComponent()
Return whether or not item is an SDK component.
bool DisconnectDstAt(int pIndex)
Remove a destination connection at a specified index.
bool DisconnectDst(FBPlug *pDst)
Remove a destination connection.
bool SwapSrc(int pIndexA, int pIndexB)
Swap source connection at index A with source connection at index B.
HIObject mObject
Handle on the Plug.
bool ConnectSrc(FBPlug *pSrc, FBConnectionType pConnectionType=kFBConnectionTypeNone)
Add a source connection.
FBConnectionType GetDstType(int pIndex)
Get a destination connection's type at specified index.
bool MoveSrcAt(FBPlug *pSrc, FBPlug *pAtSrc)
Move source connection pSrc to the position of pAtSrc.
Handler of FBPlug object Use this handler object to gracefully take care of dangling pointer problem.
bool Is(int pTypeId)
Is( int pTypeId )
A template class for arrays.
The purpose of this file is to hold all of the SDK general-purpose preprocessor definitions.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
K_DLLIMPORT void FBDestroyPlugList(FBPlugList *pPlugList)
Delete a FBPlugList object.
T * FBCast(HIObject pObject, bool pAutoCreate=false)
Cast the SDK object using it's IObject interface into the proper class.
K_DLLIMPORT HIObject FBGetFBObject(HIObject pObject, bool pAutoCreate=false)
Get the SDK object from an Internal Object.
FBArrayTemplate< FBPlug * > FBPlugList
typedef FBArrayTemplate<FBPlug*> FBPlugList;
K_DLLIMPORT bool FBConnect(FBPlug *pSrc, FBPlug *pDst, FBConnectionType pConnectionType=kFBConnectionTypeNone)
Request the connection two FBPlug objects.
K_DLLIMPORT bool FBDisconnect(FBPlug *pSrc, FBPlug *pDst)
Connect two FBPlug objects.
@ kFBSelfDataModified
Object/Property itself has been dirty, in case of property get dirty, its owner object will be set di...
@ kFBContentKeyingModified
Owner object/Namespace has data dirty property/objects.
@ kFBContentStateModified
Owner object/Namespace has state dirty property/objects.
@ kFBSelfConnectionDstPropertyModified
The dst property of this plug has been modified.
@ kFBSelfConnectionSrcObjectModified
The src object of this plug has been modified.
@ kFBSelfConnectionDstObjectModified
The dst object of this plug has been modified.
@ kFBSelfStateModified
Object/Property naming change.
@ kFBPlugAllContent
None Modified.
@ kFBContentCustomPropertyModified
Owner object/Namespace has dirty property/objects.
@ kFBContentConnectionModified
Owner object/namespace has connection modified property/objects.
@ kFBSelfCustomPropertyModified
Object custom property change.
@ kFBContentDataModified
Owner object/Namespace has data dirty property/objects.
@ kFBSelfConnectionSrcPropertyModified
The src property of this plug has been modified.
@ kFBSelfKeyingModified
Object/Property itself has been dirty, in case of property get dirty, its owner object will be set di...
FBConnectionAction
Possible actions when a notify plug event occurs.
@ kFBKeyingKey
Component keying add event.
@ kFBDisconnectOwner
Disconnect owner from destination.
@ kFBPrefixRenamed
Component prefix has been renamed.
@ kFBRequestDisconnectSrc
Request disconnection of source to destination.
@ kFBRequestConnectDst
Request connection of destination to source.
@ kFBCandidateGlobal
Data candidate event, global candidate.
@ kFBEndReplaceDst
End replace destination during merge.
@ kFBBeginReplaceDst
Begin replace destination during merge.
@ kFBRenamed
Component has been renamed.
@ kFBReselect
Component re-selection.
@ kFBKeyingDeleteKey
Component keying delete event.
@ kFBDetached
Component detached from scene.
@ kFBPrefixRename
Component prefix is going to be renamed.
@ kFBRequestDisconnectDst
Request disconnection of destination to source.
@ kFBConnectSrc
Connect source to destination.
@ kFBCandidate
Data candidate event, before the data is set.
@ kFBDisconnectSrc
Disconnect source from destination.
@ kFBKeyingCurveChange
Component curve has changed.
@ kFBConnectedDst
Connected destination to source.
@ kFBEndChange
End change on destination.
@ kFBSelect
Component selection.
@ kFBKeyingCurveEndChange
Component curve changes in Dopesheet completed.
@ kFBReorderedSrc
Source has been reordered.
@ kFBBeginChange
Begin change on destination.
@ kFBRequestConnectSrc
Request connection of source to destination.
@ kFBRename
Component is going to be renamed.
@ kFBDestroy
Component destroy.
@ kFBCandidated
Data candidate event, after the data is set.
@ kFBRequestPrefixRename
Compoent request Prefix Rename.
@ kFBConnectedSrc
Connected source to destination.
@ kFBReorderSrc
Reorder of source.
@ kFBBeginReplaceSrc
Begin replace source during merge.
@ kFBConnectDst
Connect destination to source.
@ kFBDescription
Component description event.
@ kFBKeyingCandidate
Component keying candidate event.
@ kFBDisconnectDst
Disconnect destination from source.
@ kFBUnselect
Component de-selection.
@ kFBEndReplaceSrc
End replace source during merge.
@ kFBDisconnectedDst
Disconnected destination from source.
@ kFBConnectedOwner
Connected owner to destination.
@ kFBDisconnectedSrc
Disconnected source from destination.
@ kFBRequestRename
Component request rename.
@ kFBOwnedByUndo
Plug is owned by undo framework.
@ kFBPlugStatusFlagNone
Plug has no status set.
K_DLLIMPORT FBPlug * FBGetFBPlug(HIObject pObject, bool pAutoCreate=true)
Get the FBPlug from an Internal Object.
K_DLLIMPORT FBPlugList * FBCreatePlugList()
Create a FBPlugList object.
FBConnectionType
Connection types available between plugs.
@ kFBConnectionTypeNone
Default connection type.
@ kFBConnectionTypeSystem
System connection type.
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.