fbsdk/fbcore.h Source File

fbcore.h
Go to the documentation of this file.
1 #ifndef __FBCORE_H__
2 #define __FBCORE_H__
3 /**************************************************************************
4 Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
5 All Rights Reserved.
6 
7 The coded instructions, statements, computer programs, and/or related
8 material (collectively the "Data") in these files contain unpublished
9 information proprietary to Autodesk, Inc. and/or its licensors, which is
10 protected by Canada and United States of America federal copyright law
11 and by international treaties.
12 
13 The Data may not be disclosed or distributed to third parties, in whole
14 or in part, without the prior written consent of Autodesk, Inc.
15 ("Autodesk").
16 
17 THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
18 ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
19 WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR
20 ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES
21 OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
22 PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT
23 WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR
24 FREE.
25 
26 IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
27 OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR
28 EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE
29 DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS
30 OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR
31 DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF
32 LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT
33 LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE
34 DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS
35 BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
36 
37 **************************************************************************/
38 
43 #include <kaydaradef.h>
44 #ifndef FBSDK_DLL
45 
48 #define FBSDK_DLL K_DLLIMPORT
49 #endif
50 
51 #include <fbsdk/fbcomponent.h>
52 #include <fbsdk/fbfbx.h>
53 #include <fbsdk/fbtime.h>
54 #include <fbsdk/fbdata.h>
55 #include <fbsdk/fbevaluateinfo.h>
56 
57 
58 // somebody at SGI defined this in their include files
59 // until we find which one, we remove it
60 #undef Status
61 
62 #ifdef FBSDKUseNamespace
63 namespace FBSDKNamespace {
64 #endif
65 
66  FB_DEFINE_COMPONENT( FBSDK_DLL, ModelTemplate );
71  FB_DEFINE_COMPONENT( FBSDK_DLL, Device );
72 
73  // ==========================================================================================
74  // Global definition
75  // ==========================================================================================
81  typedef HIObject (* kFBObjectCreatorFnc)(HIObject pOwner,const char* pName,void *pData);
82 
83  // ==========================================================================================
84  // Declaration definition
85  // ==========================================================================================
90 #define FBBoxDeclare( ClassName, Parent ) \
91  FBClassDeclare( ClassName,Parent ); \
92 public: \
93  ClassName(const char* pName):Parent(pName) { FBClassInit; } \
94 private:
95 
99 #define FBBoxImplementation( ThisComponent ) \
100  FBClassImplementation( ThisComponent )
101 
106 #define FBDeviceDeclare( ClassName, Parent ) \
107  FBClassDeclare( ClassName,Parent ); \
108 public: \
109  ClassName(const char* pName):Parent(pName) { FBClassInit; } \
110 private:
111 
115 #define FBDeviceImplementation( ThisComponent ) \
116  FBClassImplementation( ThisComponent )
117 
118  // ==========================================================================================
119  // Register definition
120  // ==========================================================================================
129 #define FBRegisterBox( UniqueNameStr, ClassName, FolderName, Label, Description, IconFilename ) \
130  HIObject RegisterBox##ClassName##Create( HIObject /*pOwner*/,const char* pName,void * /*pData*/) \
131  { \
132  ClassName *Class = new ClassName(pName); \
133  Class->mAllocated = true; \
134  Class->UniqueName = UniqueNameStr; \
135  if (Class->FBCreate()) { \
136  return Class->GetHIObject(); \
137  } else { \
138  delete Class; \
139  return NULL; \
140  } \
141  } \
142  \
143  FBLibraryModule( ClassName ) \
144  {\
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 ); \
148  }
149 
157 #define FBRegisterDevice( UniqueNameStr, ClassName, Label, Description, IconFilename ) \
158  HIObject RegisterDevice##ClassName##Create( HIObject /*pOwner*/,const char* pName,void * /*pData*/) \
159  { \
160  ClassName *Class = new ClassName(pName); \
161  Class->mAllocated = true; \
162  Class->UniqueName = UniqueNameStr; \
163  if (Class->FBCreate()) { \
164  return Class->GetHIObject(); \
165  } else { \
166  delete Class; \
167  return NULL; \
168  } \
169  } \
170  \
171  FBLibraryModule( ClassName ) \
172  { \
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 ); \
175  }
176 
184 #define FBRegisterOnlineDevice( UniqueNameStr, ClassName, Label, Description, IconFilename ) \
185  HIObject RegisterDevice##ClassName##Create( HIObject /*pOwner*/,const char* pName,void * /*pData*/) \
186  { \
187  ClassName *Class = new ClassName(pName); \
188  Class->mAllocated = true; \
189  Class->UniqueName = UniqueNameStr; \
190  if (Class->FBCreate()) { \
191  return Class->GetHIObject(); \
192  } else { \
193  delete Class; \
194  return NULL; \
195  } \
196  } \
197  \
198  FBLibraryModule( ClassName ) \
199  { \
200  if( FBGetLicense() >= kFBLicenseOnline ) \
201  { \
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 ); \
204  } \
205  }
206 
207 
209  // FBBox
211  __FB_FORWARD( FBBox );
212  FB_FORWARD( FBFbxObject );
213 
218  class FBSDK_DLL FBBox : public FBComponent {
220  public:
225  FBBox(const char* pName, HIObject pObject=NULL);
226 
229  {
232  eCandidateInterceptAfterEvaluation
233  };
234 
236 
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);
249 
255  virtual bool EvaluateAnimationNodes( FBEvaluateInfo* pEvaluateInfo );
256 
263  virtual bool AnimationNodeNotify( FBAnimationNode* pAnimationNode, FBEvaluateInfo* pEvaluateInfo );
264 
270  virtual bool ResolveCandidate( FBAnimationNode* pAnimationNode, FBEvaluateInfo* pEvaluateInfo );
271 
277  virtual ECandidateAction SetGlobalCandidate( FBAnimationNode* pAnimationNode, double* pData, FBEvaluateInfo* pEvaluateInfo );
278 
284  virtual ECandidateAction SetStdCandidate( FBAnimationNode* pAnimationNode, double* pData, FBEvaluateInfo* pEvaluateInfo );
285 
287 
292  virtual bool FbxStore( FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat );
293  virtual bool FbxRetrieve(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat );
295 
300  virtual bool AnimationNodeDestroy( FBAnimationNode* pAnimationNode );
301 
306  virtual bool AnimationNodeIsUserData( FBAnimationNode* pAnimationNode );
307 
312  virtual void AnimationNodesOutDisableIfNotWritten( FBEvaluateInfo* pEvaluateInfo );
313 
315 
318  virtual FBAnimationNode* AnimationNodeInGet();
319  virtual FBAnimationNode* AnimationNodeOutGet();
321 
322  const char* UniqueName;
323  virtual const char* FbxGetObjectSubType();
324  virtual const char* FbxGetObjectType();
325 
326  IObject_Declare(K_IMPLEMENTATION); // Interface to IObject.
327 
331  virtual int GetOutConnectorCount() const;
332 
336  virtual int GetInConnectorCount() const;
337 
342  virtual FBAnimationNode* GetOutConnector( int pIndex ) const;
343 
348  virtual FBAnimationNode* GetInConnector( int pIndex ) const;
349 
353  };
354 
355 
356 #ifndef K_NO_UI
357 
359  // FBHandle
362 
366  class FBSDK_DLL FBHandle : public FBBox {
368 
369  public:
375  FBHandle( const char* pName, HIObject pObject=NULL );
376 
381  void Select();
382 
389 
390  private:
392 
396  FBHandle( const FBHandle& );
397  FBHandle& operator=( const FBHandle& );
399  };
400 
401 
403  // FBPropertyListHandle
407 
410  {
411  public:
417  FBHandle* operator[](int pIndex);
418  };
419 
420 #endif
421 
423  // FBPropertyListModelTemplate
427  FB_DEFINE_LIST ( FBSDK_DLL, ModelTemplate );
428 
431  {
432  public:
437  int Add ( FBModelTemplate* pItem );
441  virtual void RemoveAt( int pIndex );
446  FBModelTemplate* operator[](int pIndex);
450  virtual int GetCount();
451 #ifndef DOXYGEN_SHOULD_SKIP_THIS
452  inline virtual FBComponent* GetAt(int pIndex) { return (FBComponent*)operator[](pIndex); }
453  private:
454  inline virtual int Add ( FBComponent* pItem ) { return Add((FBModelTemplate*)pItem); }
455 #endif
456  };
457 
459  // FBPropertyListModelTemplateBinding
461  __FB_FORWARD( FBModelTemplateBinding );
465 
468  {
469  public:
474  virtual int Add( FBAnimationNode* pItem );
475 
479  virtual void RemoveAt( int pIndex );
484  FBAnimationNode* operator[](int pIndex);
485 
489  virtual int GetCount();
490 #ifndef DOXYGEN_SHOULD_SKIP_THIS
491  inline virtual FBComponent* GetAt(int pIndex) { return (FBComponent*)operator[](pIndex); }
492  private:
493  inline virtual int Add ( FBComponent* pItem ) { return Add((FBAnimationNode*)pItem); }
494 #endif
495  };
496 
498  // FBModelTemplate
501 
519  };
520 
529 
532  void Init();
533  public:
538  FBModelTemplate(HIObject pObject=NULL);
539 
545  FBModelTemplate(const char *pPrefix,const char *pName, FBModelTemplateStyle pStyle);
546 
549 
555 
556  friend class FBDevice;
557  };
558 
560  // FBPropertyListDevice
564 
567  {
568  public:
574  FBDevice* operator[](int pIndex);
575  };
576 
578  // FBDeviceNotifyInfo
581 
589  {
590  public:
594  FBTime &GetSystemTime();
595 
599  FBTime &GetLocalTime();
600 
606  void SetLocalTime( const FBTime & );
607 
611  int GetSyncCount();
612 
616  FBEvaluateInfo& GetEvaluateInfo();
617  };
618 
620  // FBDeviceInstrument
626  {
628  public:
632  FBDeviceInstrument(FBDevice* pDevice);
639  virtual bool InstrumentWriteData( FBEvaluateInfo* pEvaluateInfo );
644  virtual void InstrumentRecordFrame( FBTime pRecordTime, FBDeviceNotifyInfo& pNotifyInfo );
646 
651  virtual bool FbxStore( FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat );
652  virtual bool FbxRetrieve( FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat );
654 
658  };
659  FB_DEFINE_COMPONENT( FBSDK_DLL, DeviceInstrument );
660 
662  // FBPropertyListDeviceInstrument
665  FB_DEFINE_LIST( FBSDK_DLL, DeviceInstrument );
669  {
670  public:
675  virtual int Add ( FBDeviceInstrument* pItem );
679  virtual void RemoveAt( int pIndex );
684  FBDeviceInstrument* operator[](int pIndex);
688  virtual int GetCount();
689 #ifndef DOXYGEN_SHOULD_SKIP_THIS
690  inline virtual FBComponent* GetAt(int pIndex) { return (FBComponent*)operator[](pIndex); }
691  private:
692  inline virtual int Add ( FBComponent* pItem ) { return Add((FBDeviceInstrument*)pItem); }
693 #endif
694  };
695 
697  // FBSyncReference
703  {
705  public:
710  FBSyncReference(const char* pName, HIObject pObject=NULL);
711 
715  void Sync(int pSyncId);
716 
720  int GetSyncCount();
721 
725  FBTime GetTimeOfLastSync();
726 
730  FBTime GetTimeOfNextSync();
731 
734  };
735  FB_DEFINE_COMPONENT( FBSDK_DLL, SyncReference );
736 
737 
739  // FBDevice
741 
756  };
757  FB_DEFINE_ENUM( FBSDK_DLL, DeviceSamplingMode );
758 
763  enum FBCommType {
771  };
772 
773  typedef class FBSDK_DLL FBArrayTemplate<FBModel*> FBModelList;
774  __FB_FORWARD( FBDevice );
775 
777  class FBSDK_DLL FBDevice : public FBBox {
779  public:
789  kOpDone
790  };
791 
795  enum kDeviceIOs {
799  kIOPlayModeWrite
800  };
801 
812  kPlayReverse
813  };
814 
819  FBDevice(const char * pName,HIObject pObject=NULL);
820 
821  // See FBBox class
822  virtual bool FBCreate ();
823  virtual void FBDestroy ();
824 
825  // See FBBox class
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);
828 
834  virtual bool DeviceOperation( kDeviceOperations pOperation );
835 
842  virtual void DeviceTransportNotify( kTransportMode pMode, FBTime pTime, FBTime pSystem );
843 
850  virtual void DeviceIONotify( kDeviceIOs pAction, FBDeviceNotifyInfo& pDeviceNotifyInfo );
851 
857  virtual bool DeviceEvaluationNotify( kTransportMode pMode,FBEvaluateInfo* pEvaluateInfo );
858 
865  virtual bool ModelTemplateBindNotify( FBModel* pModel,int pIndex, FBModelTemplate* pModelTemplate );
866 
872  virtual bool ModelTemplateUnBindNotify( int pIndex, FBModelTemplate* pModelTemplate );
873 
877  FBModel* ModelBindingCreate();
878 
882  void ModelBindingRootsList(FBModelList& pList);
883 
890  virtual bool AnimationNodeNotify( FBAnimationNode* pAnimationNode, FBEvaluateInfo* pEvaluateInfo ) override;
891 
892  virtual const char* FbxGetObjectType() override;
893 
895 
900  virtual bool FbxStore ( FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat ) override;
901  virtual bool FbxRetrieve( FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat ) override;
903 
908  virtual void DeviceSendCommand( kDeviceOperations pOperation );
909 
910  IObject_Declare( K_IMPLEMENTATION ); // Interface to IObject
911 
917 
919 
922 
925 
927 
930 
932  void AckOneSampleReceived();
933 
935  void AckOneBadSampleReceived();
936 
938  void AckOneSampleSent();
939 
943  virtual void RecordingInitAnimation(FBAnimationNode* pAnimationNode);
944 
948  virtual void RecordingDoneAnimation(FBAnimationNode* pAnimationNode);
949 
950  friend class __FBDevice;
951  friend class DataFBDeviceOptical;
952  };
953 
954 #ifndef FBSDK_LEAN_AND_MEAN
955 
957 
961  public:
964  enum kHandModelPart { // Parents :
965 
966  kPartRoot, // No parent
967  kPartPalm, // kPartRoot
968 
969  // Thumb
970  kPartThumbA, // kPartPalm
971  kPartThumbB, // kPartThumbA
972  kPartThumbC, // kPartThumbB
973  kPartThumbD, // kPartThumbC
974 
975  // Index
976  kPartIndexA, // kPartPalm
977  kPartIndexB, // kPartIndexA
978  kPartIndexC, // kPartIndexB
979  kPartIndexD, // kPartIndexC
980 
981  // Middle
982  kPartMiddleA, // kPartPalm
983  kPartMiddleB, // kPartMiddleA
984  kPartMiddleC, // kPartMiddleB
985  kPartMiddleD, // kPartMiddleC
986 
987  // Ring
988  kPartRingA, // kPartPalm
989  kPartRingB, // kPartRingA
990  kPartRingC, // kPartRingB
991  kPartRingD, // kPartRingC
992 
993  // Little
994  kPartLittleA, // kPartPalm
995  kPartLittleB, // kPartLittleA
996  kPartLittleC, // kPartLittleB
997  kPartLittleD, // kPartLittleC
998 
999  kPartMax
1000  };
1001 
1006  {
1007  public:
1011  GloveChannel( FBAnimationNode* pAnimNode );
1012 
1015  virtual ~GloveChannel();
1016 
1020  FBString GetName ();
1021 
1025  void SetName ( FBString pName );
1026 
1027  protected:
1029 
1030  public:
1031  bool Enabled;
1033  };
1034 
1035 
1040  FBDeviceGlove( const char* pName, HIObject pObject=NULL );
1041 
1045  virtual void RecordingInitAnimation( FBAnimationNode* pAnimationNode );
1046 
1050  virtual void RecordingDoneAnimation( FBAnimationNode* pAnimationNode );
1051 
1052  protected:
1057  void InitializeModelGeometry();
1058 
1067  void VectorToModelPartAngle( kHandModelPart pPartIndex, FBVector3d& pVector );
1068 
1073  FBAnimationNode* GetModelRotationNode( kHandModelPart pPartIndex );
1074 
1075  public:
1077 
1079  };
1080 
1081 #endif
1082 
1083 #ifdef FBSDKUseNamespace
1084 }
1085 #endif
1086 #endif
class FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL FBArrayTemplate FBModelList;
Definition: fbcharacter.h:597
Model class.
Definition: fbmodel.h:273
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:132
FBPropertyBool Active
Read Write Property: Activate sync.
Definition: fbcore.h:732
const char * UniqueName
internal Unique name.
Definition: fbcore.h:322
PropertyList: ModelTemplate.
Definition: fbcore.h:430
Animation data types.
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
Definition: fbproperties.h:139
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
Definition: fbproperties.h:161
Network (TCP) device.
Definition: fbcore.h:766
Serial communications.
Definition: fbcore.h:765
Let the standard system take care of the candidate.
Definition: fbcore.h:230
PropertyList: Handle.
Definition: fbcore.h:409
FBPropertyBool Active
Read Write Property: Is instrument active?
Definition: fbcore.h:656
FBPropertyModel Model
Read Write Property: Model being interfaced.
Definition: fbcore.h:551
FBPropertyListDeviceInstrument Instruments
List: List of instruments.
Definition: fbcore.h:926
Software simulator.
Definition: fbcore.h:769
FBPropertyListModelTemplate Children
List: Children for object hierarchy.
Definition: fbcore.h:547
Initalize device (creation).
Definition: fbcore.h:784
FBPropertyTime SamplingPeriod
Read Write Property: Set this to how many times a device is to be evaluated in one second...
Definition: fbcore.h:915
Intercept the candidate.
Definition: fbcore.h:231
class FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
A non-communicating device.
Definition: fbcore.h:764
Any other type of communications.
Definition: fbcore.h:770
Basic string class.
Definition: fbstring.h:66
FBPropertyListObject Manipulate
List: Objects manipulated by the handle.
Definition: fbcore.h:384
List of scene objects.
Definition: fbcomponent.h:573
FBPropertyModel ModelBindingRoot
Component: Root of model currently binded model hierarchy.
Definition: fbcore.h:921
Model template class.
Definition: fbcore.h:527
#define NULL
Definition: kaydara.h:169
Time classes.
FBPropertyInt CommType
Read Write Property: Type of communications.
Definition: fbcore.h:924
Write to device (Transport=stopped).
Definition: fbcore.h:798
Device Input and Output Notification information structure.
Definition: fbcore.h:588
class FBPropertyBase< FBVector3d, kFBPT_Vector3D > FBPropertyVector3d
FBPropertyVector3d type definition.
#define K_IMPLEMENTATION
Definition: iobject.h:53
AnimationNodeNotify evaluation information.
FBPropertyListObject ManipulateRotation
List: Objects manipulated by the handle.
Definition: fbcore.h:386
FBPropertyListObject Follow
List: Object to be followed by the handle.
Definition: fbcore.h:383
Autodetect (automatic).
Definition: fbcore.h:786
FBModelTemplate ModelTemplate
Component: Root of model template structure.
Definition: fbcore.h:920
#define IObject_Declare(IsPure)
Definition: iobject.h:75
Property class: const char * (String).
FBAnimationNode * AnimNode
Animation node.
Definition: fbcore.h:1032
FBX file format interface.
FBPropertyString Prefix
Read Write Property: Prefix of model template.
Definition: fbcore.h:550
Base Glove class.
Definition: fbcore.h:959
FBPropertyBool Live
Read Write Property: Is live?
Definition: fbcore.h:351
FBModelTemplateStyle
Model template styles When creating model templates, this parameter will affect the actual model crea...
Definition: fbcore.h:507
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
Definition: fbproperties.h:148
FBX file interface.
Definition: fbfbx.h:80
MotionBuilder SDK base class.
Definition: fbcomponent.h:668
Start device (online).
Definition: fbcore.h:785
kTransportMode
Transport control types for device.
Definition: fbcore.h:805
Application sync.
Definition: fbcore.h:702
class FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
Accessing shared memory.
Definition: fbcore.h:768
Optical model (not supported yet).
Definition: fbcore.h:518
FBPropertyVector3d DefaultRotation
Read Write Property: Default rotation.
Definition: fbcore.h:553
Network (UDP) device.
Definition: fbcore.h:767
ECandidateAction
Resolving action for candidates.
Definition: fbcore.h:228
PropertyList: Component.
Definition: fbcomponent.h:494
FBPropertyEvent OnStatusChange
Event: Status of device changed.
Definition: fbcore.h:918
Reset device (stop->start).
Definition: fbcore.h:788
FBPropertyListObject ManipulateScaling
List: Objects manipulated by the handle.
Definition: fbcore.h:387
class FBPropertyBaseEnum< enum FBDeviceSamplingMode > FBPropertyDeviceSamplingMode
Definition: fbcore.h:757
Base Device class. Cannot be instantiated from Python.
Definition: fbcore.h:777
FBPropertyDeviceSamplingMode SamplingMode
Read Write Property: Mode to use to record device.
Definition: fbcore.h:923
Definition: Python-ast.h:18
Stop device (offline).
Definition: fbcore.h:787
PropertyList: Concrete class for PropertyList of component
Definition: fbcomponent.h:553
Play stopped.
Definition: fbcore.h:809
FBPropertyTime RecordingStartTime
Read Only Property: The time at which the recording started.
Definition: fbcore.h:928
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:68
Template class to contain an array of items.
Definition: fbarray.h:77
IObject * HIObject
Definition: iobject.h:46
FBPropertyTime SamplingPeriod
Read Write Property: Sampling period.
Definition: fbcore.h:733
FBPropertyModelTemplate ModelTemplate
Read Write Property: Model template to build instruments' structure.
Definition: fbcore.h:657
class FBVector3< double > FBVector3d
3D vector.
Definition: fbtypes.h:438
FBPropertyListObject Image
List: Image to be used in the handle display.
Definition: fbcore.h:388
FBString Name
Name of channel.
Definition: fbcore.h:1028
class FBPropertyBaseComponent< FBModel * > FBPropertyModel
Definition: fbcore.h:70
bool Enabled
true if this channel is enabled.
Definition: fbcore.h:1031
#define FBSDKNamespace
FBSDKNamespace define.
Definition: fbversion.h:64
Read from device (Transport=stopped).
Definition: fbcore.h:796
FBPropertyString Status
Read Write Property: Device information: status.
Definition: fbcore.h:910
kDeviceIOs
Types of I/O for device.
Definition: fbcore.h:795
FBPropertyListObject ManipulateTranslation
List: Objects manipulated by the handle.
Definition: fbcore.h:385
Basic class definitions.
FBPropertyVector3d DefaultTranslation
Read Write Property: Default translation.
Definition: fbcore.h:552
Time data structure.
Definition: fbtime.h:86
class FBPropertyBaseComponent< FBModelTemplate * > FBPropertyModelTemplate
Definition: fbcore.h:66
PropertyEvent: Base event class.
Definition: fbproperties.h:507
Device supplies timestamp.
Definition: fbcore.h:752
FBPropertyBool RecordMode
Read Write Property: Is recording?
Definition: fbcore.h:352
kDeviceOperations
Types of operations for device.
Definition: fbcore.h:783
FBPropertyString Information
Read Write Property: Device information: information.
Definition: fbcore.h:913
PropertyList: ModelTemplateBinding.
Definition: fbcore.h:467
FBPropertyTime RecordingStopTime
Read Only Property: The time at which the recording stopped.
Definition: fbcore.h:929
The software will timestamp packets as they arrive.
Definition: fbcore.h:755
Yellow magnetic sensor.
Definition: fbcore.h:512
FBCommType
Communications type.
Definition: fbcore.h:763
A box is a fundamental building block in the application architecture.
Definition: fbcore.h:218
PropertyList: Device
Definition: fbcore.h:566
FBPropertyBool Animatable
Read Write Property: Is the box animatable.
Definition: fbcore.h:350
Device is running at unknown, fixed frequency.
Definition: fbcore.h:754
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:62
FBPropertyBool Online
Read Write Property: Is online?
Definition: fbcore.h:916
Read from device (Transport=playing).
Definition: fbcore.h:797
FBPropertyListModelTemplateBinding Bindings
List: Bindings for animation interface.
Definition: fbcore.h:548
FBArrayTemplate< GloveChannel * > Channels
Glove channels.
Definition: fbcore.h:1076
FBDeviceSamplingMode
Recording types.
Definition: fbcore.h:751
class FBPropertyBaseList< FBAnimationNode * > FBPropertyBaseListModelTemplateBinding
typedef class FBSDK_DLL FBPropertyBaseList< fbanimationnode*="" /> FBPropertyBaseListModelTemplateBinding...
Definition: fbcore.h:464
HIObject(* kFBObjectCreatorFnc)(HIObject pOwner, const char *pName, void *pData)
Definition: fbcore.h:81
FBPropertyBool LeftHand
Read Write Property: Left or right hand glove.
Definition: fbcore.h:1078
class FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
kFbxObjectStore
Description of the different store/retrieve passes of the FBX format.
Definition: fbtypes.h:74
Instrument abstraction layer.
Definition: fbcore.h:625
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbcore.h:48
Device is running at known, fixed frequency.
Definition: fbcore.h:753
Preparing to play.
Definition: fbcore.h:806
FBPropertyString HardwareVersionInfo
Read Write Property: Device information: hardware version.
Definition: fbcore.h:914
kHandModelPart
Hand model parts.
Definition: fbcore.h:964
class FBPropertyBaseComponent< FBDevice * > FBPropertyDevice
Definition: fbcore.h:67
FBPropertyDevice Device
Read Write Property: Handle to owner device.
Definition: fbcore.h:655
FBHandle class exposes the Handle object of the application.
Definition: fbcore.h:366
FBPropertyVector3d DefaultScaling
Read Write Property: Default scaling.
Definition: fbcore.h:554