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

FBComponent Class Reference

This reference page is linked to from the following overview topics: MotionBuilder 2014, MotionBuilder 2013, Data types & properties, Events & callbacks, Object Model, FBComponent - The Base Entity Class, FBProperty - Object Properties, FBPlug - Object Connection Management, Example: Cube Counter, FBModel - Transformation Data and the Scene Graph, Joint Chains, Overview of the Architecture.


Search for all occurrences

Detailed Description

MotionBuilder SDK base class.

FBComponent defines common object characteristics, including creation and destruction methods. It is used to encapsulate internal application objects so they can be exposed to the SDK. It is also used as the base class to encapsulate objects with FBProperty data members and provides a scheme for property management. You cannot instantiate FBProperty objects. To reference a property, use an instance of an FBComponent object. The methods FBComponent::PropertyCreate and FBComponent::PropertyRemove can be used to modify an object's properties. Basic operators are overloaded in FBComponent. The constructor and destructor are created and defined with macros in the header files. Objects inheriting from FBComponent must define FBComponent::FBCreate(), and FBComponent::FBDestroy(). All memory management issues for the component should also be addressed here. Destroy an object with FBDelete(). The code sample FBComponent.py shows how to get a handle on a scene object via its name.

Definition at line 645 of file fbcomponent.h.

#include <fbcomponent.h>

Inherits FBPlug.

Inherited by FBActionManager, FBActorFace, FBAMMenu, FBAnimationLayer, FBAnimationNode, FBApplication, FBApplyManagerRule, FBAssetItem, FBAssetMng, FBAudioClip, FBAudioIn, FBAudioOut, FBBox, FBCharacterManipulator, FBCharacterMarkerSet, FBCluster, FBCommand, FBCommPort, FBConsole, FBConsoleChannel, FBConstraintManager, FBConstructionHistory, FBContainer, FBControlSet, FBCustomManager, FBDeck, FBDeformer, FBDeviceInstrument, FBDeviceOpticalMarker, FBDeviceSyncPacket, FBEvaluateManager, FBFbxObject, FBFbxOptions, FBFCurve, FBFileMonitoringManager, FBFilter, FBFolder, FBGenericMenu, FBGenericMenuItem, FBGeometry, FBImage, FBJLCooper, FBKeyControl, FBKeyingGroup, FBLogger, FBManipulator, FBMarkerSet, FBMenuManager, FBModelOpticalAdvanced, FBModelTemplate, FBModelVertexData, FBMotionClip, FBMotionClip, FBNamespace, FBOpticalGap, FBOpticalSegment, FBPlayerControl, FBPointCacheFile, FBPointCacheManager, FBPose, FBProfiler, FBPropertyViewManager, FBReferenceTime, FBRenderer, FBRendererCallback, FBRigidBody, FBScene, FBSpreadPart, FBStory, FBStoryClip, FBStoryFolder, FBSyncReference, FBSystem, FBTake, FBTCPIP, FBTimeWarpManager, FBTreeNode, FBTrigger, FBTriggerBranch, FBTriggerGroup, FBTriggerManager, FBVideoGrabber, and FBVisualComponent.

List of all members.

Public Member Functions

 FBComponent (HIObject pObject)
 Constructor.
virtual ~FBComponent ()
 Destructor.
virtual bool FBCreate ()
 Open Reality Creation function.
virtual void FBDestroy ()
 Open Reality destruction function.
virtual void FBDelete () override
 Open Reality deletion function.
virtual bool SetHIObject (HIObject pObject, bool pSDKComponent) override
 Assign component to an internal pointer.
virtual int PropertyAdd (FBProperty *pProperty)
 Add a property to the component's property manager.
bool PropertyAddReferenceProperty (FBProperty *pReferenceProperty)
 Add a reference property to the component's property manager.
void PropertyRemove (FBProperty *pProperty)
 Remove a Property from the component's Property manager.
void PropertyGetModifiedList (FBArrayTemplate< FBProperty * > &pPropList, FBPlugModificationFlag pModificationFlags)
 Get list of properties which have been modified since last loading.
FBPropertyPropertyCreate (const char *pName, FBPropertyType pType, const char *pDataType, bool pAnimatable, bool pIsUser=false, FBProperty *pReferenceSource=NULL)
 Create user or dynamic property.
FBObjectFlag GetObjectFlags ()
 Get all Object Flags (concatenated).
void SetObjectFlags (FBObjectFlag pFlags)
 SetObjectFlags.
bool HasObjectFlags (FBObjectFlag pFlags)
 Check whether a specific object flag is enabled.
void EnableObjectFlags (FBObjectFlag pFlags)
 Enable a specific Object Flags.
void DisableObjectFlags (FBObjectFlag pFlags)
 Disable a specific Object Flags.
void SetObjectStatus (FBObjectStatus pStatus, bool pValue)
 Enable/Disable a specific Object Status.
bool GetObjectStatus (FBObjectStatus pStatus)
 Check to see if an object status is enabled.
bool ProcessNamespaceHierarchy (FBNamespaceAction pNamespaceAction, const char *pNamespaceName, const char *pReplaceTo=NULL, bool pAddRight=true)
 ProcessNamespaceHierarchy.
bool ProcessObjectNamespace (FBNamespaceAction pNamespaceAction, const char *pNamespaceName, const char *pReplaceTo=NULL, bool pAddRight=true)
 ProcessObjectNamespace.
virtual const char * ClassName () override
 Get the class name.
virtual bool UseCustomPropertyViewSet () const
 Use the custom property viewSet or not.
const char * GetFullName (void)
 Get the full name.
void SetOwnerNamespace (FBNamespace *pOwnerNSObj)
 Set the owner Namespace object.
FBNamespaceGetOwnerNamespace (void)
 Get the owner Namespace object.
FBFileReferenceGetOwnerFileReference (void)
 Get the owner FileReference object.
void HardSelect ()
 HardSelect.
 IObject_Declare (K_IMPLEMENTATION)
 ICallback_Declare (K_IMPLEMENTATION)
virtual bool Is (int pTypeId)
 Returns true if object is of type TypeId.
virtual int GetTypeId ()
 GetTypeId( int pTypeId )
void KObjectEvent (HIRegister pView, HKEventBase pEvent)
void * operator new (size_t stAllocateBlock)
void operator delete (void *pvMem)
void * operator new (size_t stAllocateBlock, int blockType, const char *filename, int linenumber)
void RegisterPropertyEvent (FBPropertyEvent *pPropertyEvent)
void UnregisterPropertyEvent (FBPropertyEvent *pPropertyEvent)
void InvalidatePropertyEventsParents ()

Static Public Member Functions

static int GetInternalClassId ()
static void FBComponentSetName (FBComponent *pObject, const char *pName)
static const char * FBComponentGetName (FBComponent *pObject)
static void FBComponentSetLongName (FBComponent *pObject, const char *pName)
static const char * FBComponentGetLongName (FBComponent *pObject)

Public Attributes

DataFBComponent * mLocalPtr
 Handle on DataFBComponent.
FBPropertyManager PropertyList
 Read Only Property: Manages all of the properties for the component.
FBPropertyListComponent Components
 List: List of components.
FBPropertyListComponent Parents
 List: Parents.
FBPropertyBool Selected
 Read Write Property: Selected property.
FBPropertyString Name
 Read Write Property: Unique name of object.
FBPropertyString LongName
 Read Write Property: Name and namespace for object.
FBPropertyFolder Folder
 Read Write Property: The folder that contain this component.
KObject * mDummyObject
 Internal Dummy Object for non KObject Components.

Static Public Attributes

static int TypeInfo
 Contains the Type information of the object.

Protected Attributes

FBString mName
 Name of the component.

Constructor & Destructor Documentation

FBComponent ( HIObject  pObject)

Constructor.

Parameters:
pObjectObject to copy component from (default is NULL).
virtual ~FBComponent ( ) [virtual]

Destructor.


Member Function Documentation

GetInternalClassId ( ) [static]
Returns:
Internal class Id

Reimplemented from FBPlug.

Reimplemented in FBCustomManager.

virtual bool FBCreate ( ) [virtual]

Open Reality Creation function.

Returns:
Outcome of creation (true/false).

Reimplemented in FBAssetFile, FBAssetFolder, FBCustomManager, FBConsole, FBDevice, FBManipulator, FBDeviceOptical, FBDeviceSync, FBDeviceCamera, FBDeviceOpticalLayout, and FBDeviceCameraLayout.

virtual void FBDestroy ( ) [virtual]
virtual void FBDelete ( ) [override, virtual]
virtual bool SetHIObject ( HIObject  pObject,
bool  pSDKComponent 
) [override, virtual]

Assign component to an internal pointer.

Reimplemented from FBPlug.

virtual int PropertyAdd ( FBProperty pProperty) [virtual]

Add a property to the component's property manager.

Parameters:
pPropertyThe property to add to the property manager.
Returns:
Index in the property array where property was inserted.
bool PropertyAddReferenceProperty ( FBProperty pReferenceProperty)

Add a reference property to the component's property manager.

Parameters:
pReferencePropertyThe property to from an other object to add a reference to (property cannot be a custom ORSDK property).
Returns:
True if the reference property could be added.
void PropertyRemove ( FBProperty pProperty)

Remove a Property from the component's Property manager.

If the property was dynamically allocated, it is deleted.

Parameters:
pPropertyThe property to remove from the property manager.
void PropertyGetModifiedList ( FBArrayTemplate< FBProperty * > &  pPropList,
FBPlugModificationFlag  pModificationFlags 
)

Get list of properties which have been modified since last loading.

Parameters:
pPropListproperty list to hold the modified properties.
pModificationFlagstype of modification to query.
FBProperty* PropertyCreate ( const char *  pName,
FBPropertyType  pType,
const char *  pDataType,
bool  pAnimatable,
bool  pIsUser = false,
FBProperty pReferenceSource = NULL 
)

Create user or dynamic property.

Parameters:
pNameThe name of the property.
pTypeType of the property. See enum FBPropertyType.
pDataTypeDataType of the property.
pAnimatableTo specify if the property can be animated.
pIsUserTo specify if the property is available as a custom property or dynamic and attached to the object.
pReferenceSourceSpecifies the property that a reference refers to.
FBObjectFlag GetObjectFlags ( )

Get all Object Flags (concatenated).

Returns:
Get all object flags in one call. Flags can be concatenated.
void SetObjectFlags ( FBObjectFlag  pFlags)

SetObjectFlags.

Parameters:
pFlagsSet flag values. Note: this function overwrites all flags with those passed in parameter.
bool HasObjectFlags ( FBObjectFlag  pFlags)

Check whether a specific object flag is enabled.

Parameters:
pFlagsFlags to check if they are present.
Returns:
True if all flags in pFlags are enabled.
void EnableObjectFlags ( FBObjectFlag  pFlags)

Enable a specific Object Flags.

Parameters:
pFlagsFlags to enable.
void DisableObjectFlags ( FBObjectFlag  pFlags)

Disable a specific Object Flags.

Parameters:
pFlagsFlags to disable.
void SetObjectStatus ( FBObjectStatus  pStatus,
bool  pValue 
)

Enable/Disable a specific Object Status.

Parameters:
pStatusStatus to change.
pValueValue to change the status to.
bool GetObjectStatus ( FBObjectStatus  pStatus)

Check to see if an object status is enabled.

Parameters:
pStatusStatus to query.
bool ProcessNamespaceHierarchy ( FBNamespaceAction  pNamespaceAction,
const char *  pNamespaceName,
const char *  pReplaceTo = NULL,
bool  pAddRight = true 
)

ProcessNamespaceHierarchy.

New Namespace name should only contains alphabet, digit and '_', Can't start with digit. This recursive function goes through the whole hierarchy (children) to add/replace the prefix. If you need to work on a single object, use the ProcessObjectPrefix function.

Parameters:
pNamespaceActionWhich operation to do on the hierarchy (children).
pNamespaceNameThe Namespace name on Add/Delete or the prefix to replace in case of replace.
pReplaceToThe new Namespace Name or NULL in case of add or delete.
pAddRightWhether to add the namespace on right-most or left-most side or other namespace.
Returns:
return true if process successful.
bool ProcessObjectNamespace ( FBNamespaceAction  pNamespaceAction,
const char *  pNamespaceName,
const char *  pReplaceTo = NULL,
bool  pAddRight = true 
)

ProcessObjectNamespace.

New Namespace name should only contains alphabet, digit and '_', Can't start with digit. This function is the same as ProcessNamespaceHierarchy except that it applies only on the current object and not to the object's children.

Parameters:
pNamespaceActionWhich operation to do on the hierarchy (children).
pNamespaceNameThe Namespace name on Add/Delete or the prefix to replace in case of replace.
pReplaceToThe new Namespace Name or NULL in case of add or delete.
pAddRightWhether to add the namespace on right-most or left-most side or other namespace.
Returns:
return true if process successful.
virtual const char* ClassName ( ) [override, virtual]

Get the class name.

Returns:
The class name (i.e. "FBComponent").

Reimplemented from FBPlug.

Reimplemented in FBCustomManager.

virtual bool UseCustomPropertyViewSet ( ) const [inline, virtual]

Use the custom property viewSet or not.

To have custom property view for custom subclass, modification bin/config/propertyview.fbx is required.

Returns:
False if to use internal corresponding object's viewSet of the parent class.

Definition at line 791 of file fbcomponent.h.

{ return true; }
const char* GetFullName ( void  )

Get the full name.

Returns:
the full name of the component.
void SetOwnerNamespace ( FBNamespace pOwnerNSObj)

Set the owner Namespace object.

FBNamespace* GetOwnerNamespace ( void  )

Get the owner Namespace object.

Returns:
the owner Namespace object
FBFileReference* GetOwnerFileReference ( void  )

Get the owner FileReference object.

Returns:
the owner FileReference object
void HardSelect ( )

HardSelect.

Selects the object, and emits a hard select event for UI update notification.

void* operator new ( size_t  stAllocateBlock)
void operator delete ( void *  pvMem)
void* operator new ( size_t  stAllocateBlock,
int  blockType,
const char *  filename,
int  linenumber 
)
void RegisterPropertyEvent ( FBPropertyEvent pPropertyEvent)
void UnregisterPropertyEvent ( FBPropertyEvent pPropertyEvent)
void InvalidatePropertyEventsParents ( )
IObject_Declare ( K_IMPLEMENTATION  )
ICallback_Declare ( K_IMPLEMENTATION  )

Reimplemented from FBPlug.

Reimplemented in FBModel, and FBVisualComponent.

virtual bool Is ( int  pTypeId) [virtual]

Returns true if object is of type TypeId.

Parameters:
pTypeIdTypeId to compare object to.
Returns:
Result of the comparison.

Reimplemented from FBPlug.

Reimplemented in FBCustomManager.

virtual int GetTypeId ( ) [virtual]

GetTypeId( int pTypeId )

Returns:
The TypeInfo of the object

Reimplemented from FBPlug.

Reimplemented in FBCustomManager.

static void FBComponentSetName ( FBComponent pObject,
const char *  pName 
) [static]
static const char* FBComponentGetName ( FBComponent pObject) [static]
static void FBComponentSetLongName ( FBComponent pObject,
const char *  pName 
) [static]
static const char* FBComponentGetLongName ( FBComponent pObject) [static]
void KObjectEvent ( HIRegister  pView,
HKEventBase  pEvent 
)

Member Data Documentation

DataFBComponent* mLocalPtr

Handle on DataFBComponent.

Reimplemented in FBCustomManager.

Definition at line 650 of file fbcomponent.h.

FBString mName [protected]

Name of the component.

Definition at line 653 of file fbcomponent.h.

int TypeInfo [static]

Contains the Type information of the object.

Reimplemented from FBPlug.

Reimplemented in FBCustomManager.

Definition at line 658 of file fbcomponent.h.

Read Only Property: Manages all of the properties for the component.

Definition at line 838 of file fbcomponent.h.

List: List of components.

Reimplemented in FBScene, and FBPropertyInspector.

Definition at line 839 of file fbcomponent.h.

List: Parents.

Definition at line 840 of file fbcomponent.h.

Read Write Property: Selected property.

Definition at line 841 of file fbcomponent.h.

Read Write Property: Unique name of object.

Reimplemented in FBAssetMng, FBConsoleChannel, FBTriggerGroup, FBTrigger, FBMotionClip, and FBTool.

Definition at line 842 of file fbcomponent.h.

Read Write Property: Name and namespace for object.

Definition at line 843 of file fbcomponent.h.

FBPropertyFolder Folder

Read Write Property: The folder that contain this component.

Definition at line 846 of file fbcomponent.h.

KObject* mDummyObject

Internal Dummy Object for non KObject Components.

Definition at line 871 of file fbcomponent.h.


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

FBComponent FBComponent FBComponent FBComponent FBComponent FBComponent FBComponent FBComponent FBComponent FBComponent
FBComponent FBComponent FBComponent FBComponent FBComponent FBComponent FBComponent FBComponent FBComponent FBComponent