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.
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.
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. | |
FBProperty * | PropertyCreate (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. | |
FBNamespace * | GetOwnerNamespace (void) |
Get the owner Namespace object. | |
FBFileReference * | GetOwnerFileReference (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. |
FBComponent | ( | HIObject | pObject | ) |
Constructor.
pObject | Object to copy component from (default is NULL). |
virtual ~FBComponent | ( | ) | [virtual] |
Destructor.
GetInternalClassId | ( | ) | [static] |
virtual bool FBCreate | ( | ) | [virtual] |
Open Reality Creation function.
Reimplemented in FBAssetFile, FBAssetFolder, FBCustomManager, FBConsole, FBDevice, FBManipulator, FBDeviceOptical, FBDeviceSync, FBDeviceCamera, FBDeviceOpticalLayout, and FBDeviceCameraLayout.
virtual void FBDestroy | ( | ) | [virtual] |
Open Reality destruction function.
Reimplemented in FBConsole, FBDevice, FBDeviceOptical, FBDeviceSync, FBDeviceCamera, and FBDeviceCameraLayout.
virtual void FBDelete | ( | ) | [override, virtual] |
Open Reality deletion function.
Reimplemented from FBPlug.
Reimplemented in FBAudioClip, FBActor, FBCharacter, FBCharacterExtension, FBActorFace, FBCharacterFace, FBContainer, FBFCurve, FBAnimationLayer, FBTake, FBFolder, FBGroup, FBSet, FBImage, FBKeyingGroup, FBModel, FBMotionClip, FBScene, FBStoryFolder, FBStoryTrack, FBStoryClip, FBTexture, FBLayeredTexture, FBVideoClip, and FBGenericMenu.
virtual bool SetHIObject | ( | HIObject | pObject, |
bool | pSDKComponent | ||
) | [override, virtual] |
virtual int PropertyAdd | ( | FBProperty * | pProperty | ) | [virtual] |
Add a property to the component's property manager.
pProperty | The property to add to the property manager. |
bool PropertyAddReferenceProperty | ( | FBProperty * | pReferenceProperty | ) |
Add a reference property to the component's property manager.
pReferenceProperty | The property to from an other object to add a reference to (property cannot be a custom ORSDK property). |
void PropertyRemove | ( | FBProperty * | pProperty | ) |
Remove a Property from the component's Property manager.
If the property was dynamically allocated, it is deleted.
pProperty | The 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.
pPropList | property list to hold the modified properties. |
pModificationFlags | type 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.
pName | The name of the property. |
pType | Type of the property. See enum FBPropertyType. |
pDataType | DataType of the property. |
pAnimatable | To specify if the property can be animated. |
pIsUser | To specify if the property is available as a custom property or dynamic and attached to the object. |
pReferenceSource | Specifies the property that a reference refers to. |
FBObjectFlag GetObjectFlags | ( | ) |
Get all Object Flags (concatenated).
void SetObjectFlags | ( | FBObjectFlag | pFlags | ) |
SetObjectFlags.
pFlags | Set 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.
pFlags | Flags to check if they are present. |
void EnableObjectFlags | ( | FBObjectFlag | pFlags | ) |
void DisableObjectFlags | ( | FBObjectFlag | pFlags | ) |
void SetObjectStatus | ( | FBObjectStatus | pStatus, |
bool | pValue | ||
) |
Enable/Disable a specific Object Status.
pStatus | Status to change. |
pValue | Value to change the status to. |
bool GetObjectStatus | ( | FBObjectStatus | pStatus | ) |
Check to see if an object status is enabled.
pStatus | Status 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.
pNamespaceAction | Which operation to do on the hierarchy (children). |
pNamespaceName | The Namespace name on Add/Delete or the prefix to replace in case of replace. |
pReplaceTo | The new Namespace Name or NULL in case of add or delete. |
pAddRight | Whether to add the namespace on right-most or left-most side or other namespace. |
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.
pNamespaceAction | Which operation to do on the hierarchy (children). |
pNamespaceName | The Namespace name on Add/Delete or the prefix to replace in case of replace. |
pReplaceTo | The new Namespace Name or NULL in case of add or delete. |
pAddRight | Whether to add the namespace on right-most or left-most side or other namespace. |
virtual const char* ClassName | ( | ) | [override, virtual] |
Get the class name.
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.
Definition at line 791 of file fbcomponent.h.
{ return true; }
const char* GetFullName | ( | void | ) |
void SetOwnerNamespace | ( | FBNamespace * | pOwnerNSObj | ) |
Set the owner Namespace object.
FBNamespace* GetOwnerNamespace | ( | void | ) |
FBFileReference* GetOwnerFileReference | ( | void | ) |
Get 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 | ) |
Reimplemented from FBPlug.
Reimplemented in FBAssetFile, FBAssetFolder, FBAssetMng, FBCharacter, FBActorFace, FBCharacterFace, FBCharacterSolver, FBCommand, FBConstraint, FBConstraintRelation, FBBox, FBDevice, FBDeck, FBShader, FBTriggerGroup, FBTrigger, FBMotionClip, FBTriggerBranch, FBVisualComponent, FBLayout, and FBView.
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.
pTypeId | TypeId to compare object to. |
Reimplemented from FBPlug.
Reimplemented in FBCustomManager.
virtual int GetTypeId | ( | ) | [virtual] |
GetTypeId( int pTypeId )
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 | ||
) |
DataFBComponent* mLocalPtr |
Handle on DataFBComponent.
Reimplemented in FBCustomManager.
Definition at line 650 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.
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.