43 #include <kaydaradef.h> 48 #define FBSDK_DLL K_DLLIMPORT 55 #include <fbsdk/fbevaluateinfo.h> 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 ); \ 225 FBBox(
const char* pName, HIObject pObject=NULL);
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();
326 IObject_Declare(K_IMPLEMENTATION);
331 virtual int GetOutConnectorCount()
const;
336 virtual int GetInConnectorCount()
const;
375 FBHandle(
const char* pName, HIObject pObject=NULL );
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();
819 FBDevice(
const char * pName,HIObject pObject=NULL);
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 );
892 virtual const char* FbxGetObjectType()
override;
908 virtual void DeviceSendCommand( kDeviceOperations pOperation );
910 IObject_Declare( K_IMPLEMENTATION );
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
kFbxObjectStore
Description of the different store/retrieve passes of the FBX format.
FBPropertyBool Animatable
Read Write Property: Is the box animatable.
FBPropertyListObject Image
List: Image to be used in the handle display. Only the image at position 0 is used.
Device is running at unknown, fixed frequency.
#define __FBClassDeclare(Name, Parent)
For internal use only.
bool Enabled
true if this channel is enabled.
Base Device class. Cannot be instantiated from Python.
FBDeviceSamplingMode
Recording types.
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
PropertyList: Concrete class for PropertyList of component
FBPropertyBool Live
Read Write Property: Is live?
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
The software will timestamp packets as they arrive.
Template class to contain an array of items.
FBPropertyBool Active
Read Write Property: Is instrument active?
FBModelTemplateStyle
Model template styles When creating model templates, this parameter will affect the actual model crea...
Initalize device (creation).
FBPropertyVector3d DefaultScaling
Read Write Property: Default scaling.
class K_DLLIMPORT FBPropertyBaseList< FBAnimationNode *> FBPropertyBaseListModelTemplateBinding
typedef class FBSDK_DLL FBPropertyBaseList< FBAnimationNode* > FBPropertyBaseListModelTemplateBinding...
kDeviceOperations
Types of operations for device.
FBString Name
Name of channel.
kDeviceIOs
Types of I/O for device.
Read from device (Transport=stopped).
FBPropertyVector3d DefaultTranslation
Read Write Property: Default translation.
FBPropertyDevice Device
Read Write Property: Handle to owner device.
FBPropertyListObject Manipulate
List: Objects manipulated by the handle.
FBHandle class exposes the Handle object of the application.
FBX file format interface.
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
kHandModelPart
Hand model parts.
Device Input and Output Notification information structure.
HIObject(* kFBObjectCreatorFnc)(HIObject pOwner, const char *pName, void *pData)
FBPropertyBool LeftHand
Read Write Property: Left or right hand glove.
PropertyList: ModelTemplate.
FBPropertyListModelTemplate Children
List: Children for object hierarchy.
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
Let the standard system take care of the candidate.
FBPropertyDeviceSamplingMode SamplingMode
Read Write Property: Mode to use to record device.
FBPropertyModel ModelBindingRoot
Component: Root of model currently binded model hierarchy.
kTransportMode
Transport control types for device.
PropertyEvent: Base event class.
FBPropertyVector3d DefaultRotation
Read Write Property: Default rotation.
FBPropertyModelTemplate ModelTemplate
Read Write Property: Model template to build instruments' structure.
Device is running at known, fixed frequency.
FBCommType
Communications type.
FBPropertyString Status
Read Write Property: Device information: status.
FBPropertyTime RecordingStopTime
Read Only Property: The time at which the recording stopped.
PropertyList: ModelTemplateBinding.
ECandidateAction
Resolving action for candidates.
FBPropertyListObject ManipulateTranslation
List: Objects manipulated by the handle. Only their translation is affected.
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
FBPropertyListObject Follow
List: Object to be followed by the handle. Should have a cardinality of 1.
Optical model (not supported yet).
class K_DLLIMPORT FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL FBArrayTemplate<FBModel*> FBModelList;
#define FBSDKNamespace
FBSDKNamespace define.
Write to device (Transport=stopped).
FBPropertyListObject ManipulateRotation
List: Objects manipulated by the handle. Only their rotation is affected.
Property class: const char * (String).
FBPropertyBool Active
Read Write Property: Activate sync.
FBPropertyString Prefix
Read Write Property: Prefix of model template.
FBPropertyBool RecordMode
Read Write Property: Is recording?
Read from device (Transport=playing).
FBModelTemplate ModelTemplate
Component: Root of model template structure.
A box is a fundamental building block in the application architecture.
FBPropertyInt CommType
Read Write Property: Type of communications.
FBPropertyListObject ManipulateScaling
List: Objects manipulated by the handle. Only their scaling is affected.
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
const char * UniqueName
internal Unique name.
FBPropertyModel Model
Read Write Property: Model being interfaced.
FBPropertyString Information
Read Write Property: Device information: information.
FBAnimationNode * AnimNode
Animation node.
FBPropertyListModelTemplateBinding Bindings
List: Bindings for animation interface.
FBPropertyBool Online
Read Write Property: Is online?
class K_DLLIMPORT FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
class K_DLLIMPORT FBVector3< double > FBVector3d
3D vector.
class K_DLLIMPORT FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
FBArrayTemplate< GloveChannel * > Channels
Glove channels.
FBPropertyTime RecordingStartTime
Read Only Property: The time at which the recording started.
FBPropertyTime SamplingPeriod
Read Write Property: Sampling period.
Device supplies timestamp.
MotionBuilder SDK base class.
A non-communicating device.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
class K_DLLIMPORT FBPropertyBase< FBVector3d, kFBPT_Vector3D > FBPropertyVector3d
FBPropertyVector3d type definition.
FBPropertyEvent OnStatusChange
Event: Status of device changed.
Any other type of communications.
FBPropertyListDeviceInstrument Instruments
List: List of instruments.
Instrument abstraction layer.
FBPropertyString HardwareVersionInfo
Read Write Property: Device information: hardware version.
Reset device (stop->start).
AnimationNodeNotify evaluation information.
FBPropertyTime SamplingPeriod
Read Write Property: Set this to how many times a device is to be evaluated in one second...