48 #define FBSDK_DLL K_DLLIMPORT
62 #ifdef FBSDKUseNamespace
90 #define FBBoxDeclare( ClassName, Parent ) \
91 FBClassDeclare( ClassName,Parent ); \
93 ClassName(const char* pName):Parent(pName) { FBClassInit; } \
99 #define FBBoxImplementation( ThisComponent ) \
100 FBClassImplementation( ThisComponent )
106 #define FBDeviceDeclare( ClassName, Parent ) \
107 FBClassDeclare( ClassName,Parent ); \
109 ClassName(const char* pName):Parent(pName) { FBClassInit; } \
115 #define FBDeviceImplementation( ThisComponent ) \
116 FBClassImplementation( ThisComponent )
129 #define FBRegisterBox( UniqueNameStr, ClassName, FolderName, Label, Description, IconFilename ) \
130 HIObject RegisterBox##ClassName##Create( HIObject ,const char* pName,void * ) \
132 ClassName *Class = new ClassName(pName); \
133 Class->mAllocated = true; \
134 Class->UniqueName = UniqueNameStr; \
135 if (Class->FBCreate()) { \
136 return Class->GetHIObject(); \
143 FBLibraryModule( ClassName ) \
145 FBRegisterObject(ClassName##R1,"Boxes",UniqueNameStr,Description,RegisterBox##ClassName##Create,true, IconFilename );\
146 FBRegisterObject(ClassName##R2,"Boxes/Functions/"FolderName,Label,Description,RegisterBox##ClassName##Create,true, IconFilename );\
147 FBRegisterObject(ClassName##R3,"FbxStorable/Box",UniqueNameStr,Description,RegisterBox##ClassName##Create,true, IconFilename ); \
157 #define FBRegisterDevice( UniqueNameStr, ClassName, Label, Description, IconFilename ) \
158 HIObject RegisterDevice##ClassName##Create( HIObject ,const char* pName,void * ) \
160 ClassName *Class = new ClassName(pName); \
161 Class->mAllocated = true; \
162 Class->UniqueName = UniqueNameStr; \
163 if (Class->FBCreate()) { \
164 return Class->GetHIObject(); \
171 FBLibraryModule( ClassName ) \
173 FBRegisterObject(ClassName##R1,"Boxes/Devices",Label,Description,RegisterDevice##ClassName##Create,true, IconFilename );\
174 FBRegisterObject(ClassName##R2,"FbxStorable/Device",UniqueNameStr,Description,RegisterDevice##ClassName##Create,true, IconFilename ); \
184 #define FBRegisterOnlineDevice( UniqueNameStr, ClassName, Label, Description, IconFilename ) \
185 HIObject RegisterDevice##ClassName##Create( HIObject ,const char* pName,void * ) \
187 ClassName *Class = new ClassName(pName); \
188 Class->mAllocated = true; \
189 Class->UniqueName = UniqueNameStr; \
190 if (Class->FBCreate()) { \
191 return Class->GetHIObject(); \
198 FBLibraryModule( ClassName ) \
200 if( FBGetLicense() >= kFBLicenseOnline ) \
202 FBRegisterObject(ClassName##R1,"Boxes/Devices",Label,Description,RegisterDevice##ClassName##Create, true, IconFilename );\
203 FBRegisterObject(ClassName##R2,"FbxStorable/Device",UniqueNameStr,Description,RegisterDevice##ClassName##Create, true, IconFilename ); \
232 eCandidateInterceptAfterEvaluation
246 virtual FBAnimationNode* AnimationNodeInCreate (kReference pUserId,
const char * pName ,
const char * pDataType,
bool pIsPublic=
false,
double *pMin=
NULL,
double *pMax=
NULL,
bool pUserData=
false);
247 virtual FBAnimationNode* AnimationNodeOutCreate (kReference pUserId,
const char * pName ,
const char * pDataType,
bool pIsPublic=
false,
double *pMin=
NULL,
double *pMax=
NULL,
bool pUserData=
false);
255 virtual bool EvaluateAnimationNodes(
FBEvaluateInfo* pEvaluateInfo );
306 virtual bool AnimationNodeIsUserData(
FBAnimationNode* pAnimationNode );
312 virtual void AnimationNodesOutDisableIfNotWritten(
FBEvaluateInfo* pEvaluateInfo );
323 virtual const char* FbxGetObjectSubType();
324 virtual const char* FbxGetObjectType();
331 virtual int GetOutConnectorCount()
const;
336 virtual int GetInConnectorCount()
const;
441 virtual void RemoveAt(
int pIndex );
450 virtual int GetCount();
451 #ifndef DOXYGEN_SHOULD_SKIP_THIS
479 virtual void RemoveAt(
int pIndex );
489 virtual int GetCount();
490 #ifndef DOXYGEN_SHOULD_SKIP_THIS
606 void SetLocalTime(
const FBTime & );
639 virtual bool InstrumentWriteData(
FBEvaluateInfo* pEvaluateInfo );
679 virtual void RemoveAt(
int pIndex );
688 virtual int GetCount();
689 #ifndef DOXYGEN_SHOULD_SKIP_THIS
715 void Sync(
int pSyncId);
725 FBTime GetTimeOfLastSync();
730 FBTime GetTimeOfNextSync();
822 virtual bool FBCreate ();
823 virtual void FBDestroy ();
826 virtual FBAnimationNode* AnimationNodeInCreate (kReference pUserId,
const char * pName ,
const char * pDataType,
bool pIsPublic=
true,
double *pMin=
NULL,
double *pMax=
NULL,
bool pUserData=
false);
827 virtual FBAnimationNode* AnimationNodeOutCreate(kReference pUserId,
const char * pName ,
const char * pDataType,
bool pIsPublic=
true,
double *pMin=
NULL,
double *pMax=
NULL,
bool pUserData=
false);
834 virtual bool DeviceOperation( kDeviceOperations pOperation );
842 virtual void DeviceTransportNotify( kTransportMode pMode,
FBTime pTime,
FBTime pSystem );
850 virtual void DeviceIONotify( kDeviceIOs pAction,
FBDeviceNotifyInfo& pDeviceNotifyInfo );
857 virtual bool DeviceEvaluationNotify( kTransportMode pMode,
FBEvaluateInfo* pEvaluateInfo );
872 virtual bool ModelTemplateUnBindNotify(
int pIndex,
FBModelTemplate* pModelTemplate );
882 void ModelBindingRootsList(FBModelList& pList);
892 virtual const char* FbxGetObjectType()
override;
908 virtual void DeviceSendCommand( kDeviceOperations pOperation );
932 void AckOneSampleReceived();
935 void AckOneBadSampleReceived();
938 void AckOneSampleSent();
950 friend class __FBDevice;
951 friend class DataFBDeviceOptical;
954 #ifndef FBSDK_LEAN_AND_MEAN
1045 virtual void RecordingInitAnimation(
FBAnimationNode* pAnimationNode );
1050 virtual void RecordingDoneAnimation(
FBAnimationNode* pAnimationNode );
1057 void InitializeModelGeometry();
1083 #ifdef FBSDKUseNamespace
class FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL FBArrayTemplate FBModelList;
#define __FBClassDeclare(Name, Parent)
For internal use only.
FBPropertyBool Active
Read Write Property: Activate sync.
const char * UniqueName
internal Unique name.
PropertyList: ModelTemplate.
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
Let the standard system take care of the candidate.
FBPropertyBool Active
Read Write Property: Is instrument active?
FBPropertyModel Model
Read Write Property: Model being interfaced.
FBPropertyListDeviceInstrument Instruments
List: List of instruments.
FBPropertyListModelTemplate Children
List: Children for object hierarchy.
Initalize device (creation).
FBPropertyTime SamplingPeriod
Read Write Property: Set this to how many times a device is to be evaluated in one second...
class FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
A non-communicating device.
Any other type of communications.
FBPropertyListObject Manipulate
List: Objects manipulated by the handle.
FBPropertyModel ModelBindingRoot
Component: Root of model currently binded model hierarchy.
FBPropertyInt CommType
Read Write Property: Type of communications.
Write to device (Transport=stopped).
Device Input and Output Notification information structure.
class FBPropertyBase< FBVector3d, kFBPT_Vector3D > FBPropertyVector3d
FBPropertyVector3d type definition.
AnimationNodeNotify evaluation information.
FBPropertyListObject ManipulateRotation
List: Objects manipulated by the handle.
FBPropertyListObject Follow
List: Object to be followed by the handle.
FBModelTemplate ModelTemplate
Component: Root of model template structure.
#define IObject_Declare(IsPure)
Property class: const char * (String).
FBAnimationNode * AnimNode
Animation node.
FBX file format interface.
FBPropertyString Prefix
Read Write Property: Prefix of model template.
FBPropertyBool Live
Read Write Property: Is live?
FBModelTemplateStyle
Model template styles When creating model templates, this parameter will affect the actual model crea...
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
MotionBuilder SDK base class.
kTransportMode
Transport control types for device.
class FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
Optical model (not supported yet).
FBPropertyVector3d DefaultRotation
Read Write Property: Default rotation.
ECandidateAction
Resolving action for candidates.
FBPropertyEvent OnStatusChange
Event: Status of device changed.
Reset device (stop->start).
FBPropertyListObject ManipulateScaling
List: Objects manipulated by the handle.
class FBPropertyBaseEnum< enum FBDeviceSamplingMode > FBPropertyDeviceSamplingMode
Base Device class. Cannot be instantiated from Python.
FBPropertyDeviceSamplingMode SamplingMode
Read Write Property: Mode to use to record device.
PropertyList: Concrete class for PropertyList of component
FBPropertyTime RecordingStartTime
Read Only Property: The time at which the recording started.
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Template class to contain an array of items.
FBPropertyTime SamplingPeriod
Read Write Property: Sampling period.
FBPropertyModelTemplate ModelTemplate
Read Write Property: Model template to build instruments' structure.
class FBVector3< double > FBVector3d
3D vector.
FBPropertyListObject Image
List: Image to be used in the handle display.
FBString Name
Name of channel.
class FBPropertyBaseComponent< FBModel * > FBPropertyModel
bool Enabled
true if this channel is enabled.
#define FBSDKNamespace
FBSDKNamespace define.
Read from device (Transport=stopped).
FBPropertyString Status
Read Write Property: Device information: status.
kDeviceIOs
Types of I/O for device.
FBPropertyListObject ManipulateTranslation
List: Objects manipulated by the handle.
FBPropertyVector3d DefaultTranslation
Read Write Property: Default translation.
class FBPropertyBaseComponent< FBModelTemplate * > FBPropertyModelTemplate
PropertyEvent: Base event class.
Device supplies timestamp.
FBPropertyBool RecordMode
Read Write Property: Is recording?
kDeviceOperations
Types of operations for device.
FBPropertyString Information
Read Write Property: Device information: information.
PropertyList: ModelTemplateBinding.
FBPropertyTime RecordingStopTime
Read Only Property: The time at which the recording stopped.
The software will timestamp packets as they arrive.
FBCommType
Communications type.
A box is a fundamental building block in the application architecture.
FBPropertyBool Animatable
Read Write Property: Is the box animatable.
Device is running at unknown, fixed frequency.
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
FBPropertyBool Online
Read Write Property: Is online?
Read from device (Transport=playing).
FBPropertyListModelTemplateBinding Bindings
List: Bindings for animation interface.
FBArrayTemplate< GloveChannel * > Channels
Glove channels.
FBDeviceSamplingMode
Recording types.
class FBPropertyBaseList< FBAnimationNode * > FBPropertyBaseListModelTemplateBinding
typedef class FBSDK_DLL FBPropertyBaseList< fbanimationnode*="" /> FBPropertyBaseListModelTemplateBinding...
HIObject(* kFBObjectCreatorFnc)(HIObject pOwner, const char *pName, void *pData)
FBPropertyBool LeftHand
Read Write Property: Left or right hand glove.
class FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
kFbxObjectStore
Description of the different store/retrieve passes of the FBX format.
Instrument abstraction layer.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Device is running at known, fixed frequency.
FBPropertyString HardwareVersionInfo
Read Write Property: Device information: hardware version.
kHandModelPart
Hand model parts.
class FBPropertyBaseComponent< FBDevice * > FBPropertyDevice
FBPropertyDevice Device
Read Write Property: Handle to owner device.
FBHandle class exposes the Handle object of the application.
FBPropertyVector3d DefaultScaling
Read Write Property: Default scaling.