Open Reality Reference Guide
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 );
67  FB_DEFINE_COMPONENT( FBSDK_DLL, Device );
68  FB_DEFINE_COMPONENT( FBSDK_DLL, Path3D );
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 );
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 
319  virtual FBAnimationNode* AnimationNodeOutGet();
321 
322  const char* UniqueName;
323  virtual const char* FbxGetObjectSubType();
324  virtual const char* FbxGetObjectType();
325 
326  IObject_Declare(override); // 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
405  FB_DEFINE_LIST( FBSDK_DLL, Handle );
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 );
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 );
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 
551  FBPropertyModel Model;
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:
595 
600 
606  void SetLocalTime( const FBTime & );
607 
612 
617  };
618 
620  // FBDeviceInstrument
626  {
628  public:
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 
655  FBPropertyDevice Device;
657  FBPropertyModelTemplate ModelTemplate;
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 );
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 
721 
726 
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 {
770  kFBCommTypeOther = 1<<5
771  };
772 
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 () override;
823  virtual void FBDestroy () override;
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) override;
827  virtual FBAnimationNode* AnimationNodeOutCreate(kReference pUserId,const char * pName ,const char * pDataType,bool pIsPublic=true,double *pMin=NULL,double *pMax=NULL,bool pUserData=false) override;
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 
878 
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( override ); // Interface to IObject
911 
917 
919 
921  FBPropertyModel ModelBindingRoot;
922 
923  FBPropertyDeviceSamplingMode SamplingMode;
925 
927 
930 
933 
936 
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:
1012 
1015  virtual ~GloveChannel();
1016 
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 ) override;
1046 
1050  virtual void RecordingDoneAnimation( FBAnimationNode* pAnimationNode ) override;
1051 
1052  protected:
1058 
1067  void VectorToModelPartAngle( kHandModelPart pPartIndex, FBVector3d& pVector );
1068 
1074 
1075  public:
1077 
1079  };
1080 
1081 #endif
1082 
1083 #ifdef FBSDKUseNamespace
1084 }
1085 #endif
1086 #endif
FBDevice::RecordingStartTime
FBPropertyTime RecordingStartTime
Read Only Property: The time at which the recording started.
Definition: fbcore.h:928
FBPropertyListDeviceInstrument::RemoveAt
virtual void RemoveAt(int pIndex)
Remove the instrument at pIndex.
FBHandle
FBHandle class exposes the Handle object of the application.
Definition: fbcore.h:366
FBPropertyListModelTemplateBinding
PropertyList: ModelTemplateBinding.
Definition: fbcore.h:468
FBHandle::FBHandle
FBHandle(const char *pName, HIObject pObject=NULL)
Public constructor.
FBBox::ECandidateAction
ECandidateAction
Resolving action for candidates.
Definition: fbcore.h:229
FBDevice::DeviceOperation
virtual bool DeviceOperation(kDeviceOperations pOperation)
Operate device.
FBDeviceGlove::InitializeModelGeometry
void InitializeModelGeometry()
Initialize the hand model geometry.
FBDeviceInstrument::Device
FBPropertyDevice Device
Read Write Property: Handle to owner device.
Definition: fbcore.h:655
FBHandle::Select
void Select()
Meta selection.
kFBSoftwareTimestamp
@ kFBSoftwareTimestamp
The software will timestamp packets as they arrive.
Definition: fbcore.h:755
FBBox::AnimationNodesOutDisableIfNotWritten
virtual void AnimationNodesOutDisableIfNotWritten(FBEvaluateInfo *pEvaluateInfo)
This call will disable all out animation nodes from being pull by system (animation thread) for given...
FBDevice::ModelTemplateBindNotify
virtual bool ModelTemplateBindNotify(FBModel *pModel, int pIndex, FBModelTemplate *pModelTemplate)
Model Template binding notification callback.
kFbxObjectStore
kFbxObjectStore
Description of the different store/retrieve passes of the FBX format.
Definition: fbtypes.h:74
kFBModelTemplateCamera
@ kFBModelTemplateCamera
Camera.
Definition: fbcore.h:514
FBModelTemplate::Children
FBPropertyListModelTemplate Children
List: Children for object hierarchy.
Definition: fbcore.h:547
FBHandle::Image
FBPropertyListObject Image
List: Image to be used in the handle display. Only the image at position 0 is used.
Definition: fbcore.h:388
FBDevice::kDeviceOperations
kDeviceOperations
Types of operations for device.
Definition: fbcore.h:783
FBDeviceGlove::GloveChannel::SetName
void SetName(FBString pName)
Set the channel name.
FBDeviceInstrument::FBDeviceInstrument
FBDeviceInstrument(FBDevice *pDevice)
Constructor.
FBBox::Live
FBPropertyBool Live
Read Write Property: Is live?
Definition: fbcore.h:351
FBPropertyListDevice
PropertyList: Device
Definition: fbcore.h:567
FBDevice::ModelBindingCreate
FBModel * ModelBindingCreate()
Create a new model binding.
FB_DEFINE_ENUM
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
Definition: fbproperties.h:150
FBDeviceNotifyInfo::GetEvaluateInfo
FBEvaluateInfo & GetEvaluateInfo()
Return the evaluation info used to do device evaluation.
FBPropertyListDeviceInstrument::operator[]
FBDeviceInstrument * operator[](int pIndex)
Get the model template at pIndex.
FBDevice::DeviceEvaluationNotify
virtual bool DeviceEvaluationNotify(kTransportMode pMode, FBEvaluateInfo *pEvaluateInfo)
Real-Time engine thread: Output device evaluation.
FBDevice::HardwareVersionInfo
FBPropertyString HardwareVersionInfo
Read Write Property: Device information: hardware version.
Definition: fbcore.h:914
FBDevice::kDeviceIOs
kDeviceIOs
Types of I/O for device.
Definition: fbcore.h:795
FBPropertyListDevice::operator[]
FBDevice * operator[](int pIndex)
Get the device at pIndex.
kFBModelTemplateSkeleton
@ kFBModelTemplateSkeleton
Skeleton limb.
Definition: fbcore.h:513
FBAnimationNode
Definition: fbdata.h:1047
FBPropertyInt
class K_DLLIMPORT FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
Definition: fbproperties.h:1331
FBDeviceGlove::RecordingInitAnimation
virtual void RecordingInitAnimation(FBAnimationNode *pAnimationNode) override
When recording, initialize animation.
FBModelTemplate::Model
FBPropertyModel Model
Read Write Property: Model being interfaced.
Definition: fbcore.h:551
FBSDK_DLL
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbcore.h:48
FBSyncReference::GetTimeOfLastSync
FBTime GetTimeOfLastSync()
Last sync time.
FBDevice::kIOStopModeRead
@ kIOStopModeRead
Read from device (Transport=stopped).
Definition: fbcore.h:796
FBSyncReference::GetSyncCount
int GetSyncCount()
Return sync count.
FBDevice::kPlayReady
@ kPlayReady
Ready to play.
Definition: fbcore.h:807
kFBCommTypeSharedMemory
@ kFBCommTypeSharedMemory
Accessing shared memory.
Definition: fbcore.h:768
fbdata.h
Animation data types.
FBDevice
Base Device class. Cannot be instantiated from Python.
Definition: fbcore.h:777
FBBox
A box is a fundamental building block in the application architecture.
Definition: fbcore.h:218
FBDevice::kOpInit
@ kOpInit
Initalize device (creation).
Definition: fbcore.h:784
kFBModelTemplateOptical
@ kFBModelTemplateOptical
Optical model (not supported yet).
Definition: fbcore.h:518
FBDeviceInstrument::FbxStore
virtual bool FbxStore(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat)
Storage/Retrieval of information into the FBX file format.
FBDeviceGlove::LeftHand
FBPropertyBool LeftHand
Read Write Property: Left or right hand glove.
Definition: fbcore.h:1078
FBDevice::DeviceSendCommand
virtual void DeviceSendCommand(kDeviceOperations pOperation)
Send a command to the device.
FBDevice::kPreparePlay
@ kPreparePlay
Preparing to play.
Definition: fbcore.h:806
FBDeviceNotifyInfo::SetLocalTime
void SetLocalTime(const FBTime &)
Set local time Allows the device to override the local time of the system.
FBDevice::DeviceIONotify
virtual void DeviceIONotify(kDeviceIOs pAction, FBDeviceNotifyInfo &pDeviceNotifyInfo)
Real-Time engine thread: Device I/O.
FBPropertyListComponentBase
PropertyList: Component.
Definition: fbcomponent.h:477
FBDeviceGlove::GetModelRotationNode
FBAnimationNode * GetModelRotationNode(kHandModelPart pPartIndex)
Obtain the rotation animation node of a part of the hand model.
kFBModelTemplateRoot
@ kFBModelTemplateRoot
Root (3 axes).
Definition: fbcore.h:511
kFBModelTemplateLight
@ kFBModelTemplateLight
Light.
Definition: fbcore.h:517
FBHandle::Manipulate
FBPropertyListObject Manipulate
List: Objects manipulated by the handle.
Definition: fbcore.h:384
FBDeviceGlove::RecordingDoneAnimation
virtual void RecordingDoneAnimation(FBAnimationNode *pAnimationNode) override
When recording, finish animation.
FBDevice::ModelBindingRoot
FBPropertyModel ModelBindingRoot
Component: Root of model currently binded model hierarchy.
Definition: fbcore.h:921
kFBModelTemplateCameraInterest
@ kFBModelTemplateCameraInterest
Camera interest.
Definition: fbcore.h:516
FBTime
Time data structure.
Definition: fbtime.h:88
FBModelTemplateStyle
FBModelTemplateStyle
Model template styles When creating model templates, this parameter will affect the actual model crea...
Definition: fbcore.h:507
kFBModelTemplateMarker
@ kFBModelTemplateMarker
Marker.
Definition: fbcore.h:510
FBDeviceGlove::GloveChannel::Name
FBString Name
Name of channel.
Definition: fbcore.h:1028
FBDeviceGlove::kHandModelPart
kHandModelPart
Hand model parts.
Definition: fbcore.h:964
FBDevice::FBDevice
FBDevice(const char *pName, HIObject pObject=NULL)
Constructor.
kFBModelTemplateNone
@ kFBModelTemplateNone
No style.
Definition: fbcore.h:508
fbtime.h
Time classes.
FBModelTemplate::DefaultTranslation
FBPropertyVector3d DefaultTranslation
Read Write Property: Default translation.
Definition: fbcore.h:552
FBBox::GetInConnector
virtual FBAnimationNode * GetInConnector(int pIndex) const
Get the animation node input associated with the given index.
kFBModelTemplateNull
@ kFBModelTemplateNull
Null.
Definition: fbcore.h:509
FBPropertyListDeviceInstrument::Add
virtual int Add(FBDeviceInstrument *pItem)
Add an instrument to the property list.
FBPropertyListModelTemplate
PropertyList: ModelTemplate.
Definition: fbcore.h:431
FBDevice::AnimationNodeNotify
virtual bool AnimationNodeNotify(FBAnimationNode *pAnimationNode, FBEvaluateInfo *pEvaluateInfo) override
Notification function for animation thread.
FBDeviceNotifyInfo
Device Input and Output Notification information structure.
Definition: fbcore.h:589
FBDeviceSamplingMode
FBDeviceSamplingMode
Recording types.
Definition: fbcore.h:751
kFBCommTypeNetworkUDP
@ kFBCommTypeNetworkUDP
Network (UDP) device.
Definition: fbcore.h:767
FBBox::eCandidateIntercept
@ eCandidateIntercept
Intercept the candidate.
Definition: fbcore.h:231
FBDeviceGlove::FBDeviceGlove
FBDeviceGlove(const char *pName, HIObject pObject=NULL)
Constructor.
FBBox::SetStdCandidate
virtual ECandidateAction SetStdCandidate(FBAnimationNode *pAnimationNode, double *pData, FBEvaluateInfo *pEvaluateInfo)
Function is call when a non-global candidate is set on an animation node.
FBBox::AnimationNodeInGet
virtual FBAnimationNode * AnimationNodeInGet()
Get the (IN/OUT) animation node for this box.
FBDevice::RecordingInitAnimation
virtual void RecordingInitAnimation(FBAnimationNode *pAnimationNode)
When recording, initialize animation.
FBHandle::ManipulateTranslation
FBPropertyListObject ManipulateTranslation
List: Objects manipulated by the handle. Only their translation is affected.
Definition: fbcore.h:385
FBDevice::kOpStop
@ kOpStop
Stop device (offline).
Definition: fbcore.h:787
FBDevice::kOpAutoDetect
@ kOpAutoDetect
Autodetect (automatic).
Definition: fbcore.h:786
FBDevice::RecordingDoneAnimation
virtual void RecordingDoneAnimation(FBAnimationNode *pAnimationNode)
When recording, finish animation.
fbfbx.h
FBX file format interface.
FBDeviceGlove
Base Glove class.
Definition: fbcore.h:959
FBSyncReference::GetTimeOfNextSync
FBTime GetTimeOfNextSync()
Next sync time.
kFBObjectCreatorFnc
HIObject(* kFBObjectCreatorFnc)(HIObject pOwner, const char *pName, void *pData)
Definition: fbcore.h:81
FBSyncReference::Sync
void Sync(int pSyncId)
Notify sync.
FBDevice::AckOneBadSampleReceived
void AckOneBadSampleReceived()
Acknowlege that one bad sample was received (for statistical purposes).
FBBox::UniqueName
const char * UniqueName
internal Unique name.
Definition: fbcore.h:322
FBDevice::ModelTemplateUnBindNotify
virtual bool ModelTemplateUnBindNotify(int pIndex, FBModelTemplate *pModelTemplate)
Model Template unbinding notification callback.
FBPropertyListModelTemplateBinding::operator[]
FBAnimationNode * operator[](int pIndex)
Get the binding at pIndex.
FBPropertyListHandle
PropertyList: Handle.
Definition: fbcore.h:410
FBDeviceGlove::GloveChannel::GloveChannel
GloveChannel(FBAnimationNode *pAnimNode)
Constructor.
FBPropertyListDeviceInstrument::GetCount
virtual int GetCount()
Get the number of instruments.
FBDevice::AckOneSampleSent
void AckOneSampleSent()
Acknowlege that one sample was sent (for statistical purposes).
FBPropertyTime
class K_DLLIMPORT FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
Definition: fbproperties.h:1346
FBBox::FbxGetObjectSubType
virtual const char * FbxGetObjectSubType()
returns UniqueName if not overloaded.
FBDevice::SamplingMode
FBPropertyDeviceSamplingMode SamplingMode
Read Write Property: Mode to use to record device.
Definition: fbcore.h:923
FBString
Basic string class.
Definition: fbstring.h:67
__FBClassDeclare
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:131
FBPropertyListModelTemplate::operator[]
FBModelTemplate * operator[](int pIndex)
Get the model template at pIndex.
FBBox::FbxStore
virtual bool FbxStore(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat)
Storage/Retrieval of information into the FBX file format.
FBPropertyListObject
List of scene objects.
Definition: fbcomponent.h:556
FBDevice::FbxGetObjectType
virtual const char * FbxGetObjectType() override
Object Type "Device".
FBBox::Animatable
FBPropertyBool Animatable
Read Write Property: Is the box animatable.
Definition: fbcore.h:350
__FB_FORWARD
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:68
FBBox::AnimationNodeInCreate
virtual FBAnimationNode * AnimationNodeInCreate(kReference pUserId, const char *pName, const char *pDataType, bool pIsPublic=false, double *pMin=NULL, double *pMax=NULL, bool pUserData=false)
Creation of IN/OUT Animation Nodes.
FBPropertyBaseList
Definition: fbproperties.h:893
FBPropertyListModelTemplateBinding::Add
virtual int Add(FBAnimationNode *pItem)
Add an animation node to the model template binding property list.
FBCommType
FBCommType
Communications type.
Definition: fbcore.h:763
FBHandle::Follow
FBPropertyListObject Follow
List: Object to be followed by the handle. Should have a cardinality of 1.
Definition: fbcore.h:383
FBDeviceNotifyInfo::GetSyncCount
int GetSyncCount()
Return the wanted timer sync count (internal or external)
FBSyncReference::SamplingPeriod
FBPropertyTime SamplingPeriod
Read Write Property: Sampling period.
Definition: fbcore.h:733
FBModelTemplate
Model template class.
Definition: fbcore.h:527
FBPropertyVector3d
class K_DLLIMPORT FBPropertyBase< FBVector3d, kFBPT_Vector3D > FBPropertyVector3d
FBPropertyVector3d type definition.
Definition: fbproperties.h:1469
FBDeviceInstrument::InstrumentWriteData
virtual bool InstrumentWriteData(FBEvaluateInfo *pEvaluateInfo)
Write data to instrument's connectors.
FBModelTemplate::FBModelTemplate
FBModelTemplate(const char *pPrefix, const char *pName, FBModelTemplateStyle pStyle)
Constructor (no parent) from prefix, name, and style.
FBDeviceGlove::GloveChannel
Base GloveChannel.
Definition: fbcore.h:1006
FBDevice::kPlayStop
@ kPlayStop
Stopping play.
Definition: fbcore.h:808
FBDevice::CommType
FBPropertyInt CommType
Read Write Property: Type of communications.
Definition: fbcore.h:924
FBDevice::FBCreate
virtual bool FBCreate() override
Open Reality Creation function.
FBBox::GetInConnectorCount
virtual int GetInConnectorCount() const
Get the number of animation node inputs for this box.
FBBox::RecordMode
FBPropertyBool RecordMode
Read Write Property: Is recording?
Definition: fbcore.h:352
kFBCommTypeSimulator
@ kFBCommTypeSimulator
Software simulator.
Definition: fbcore.h:769
FBDevice::kTransportMode
kTransportMode
Transport control types for device.
Definition: fbcore.h:805
FBDeviceNotifyInfo::GetSystemTime
FBTime & GetSystemTime()
Get system time.
FBBox::FBBox
FBBox(const char *pName, HIObject pObject=NULL)
Constructor.
FBDevice::kIOStopModeWrite
@ kIOStopModeWrite
Write to device (Transport=stopped).
Definition: fbcore.h:798
FBDevice::Online
FBPropertyBool Online
Read Write Property: Is online?
Definition: fbcore.h:916
FBBox::AnimationNodeIsUserData
virtual bool AnimationNodeIsUserData(FBAnimationNode *pAnimationNode)
Is the animation node user data?
FBDeviceGlove::VectorToModelPartAngle
void VectorToModelPartAngle(kHandModelPart pPartIndex, FBVector3d &pVector)
Bring the vector in parameter to a valid angle range of rotation for a given part of the hand model.
kFBCommTypeNetworkTCP
@ kFBCommTypeNetworkTCP
Network (TCP) device.
Definition: fbcore.h:766
FBPropertyListModelTemplate::GetCount
virtual int GetCount()
Get the number of model templates.
FBDevice::AnimationNodeInCreate
virtual FBAnimationNode * AnimationNodeInCreate(kReference pUserId, const char *pName, const char *pDataType, bool pIsPublic=true, double *pMin=NULL, double *pMax=NULL, bool pUserData=false) override
Creation of IN/OUT Animation Nodes.
FBDeviceNotifyInfo::GetLocalTime
FBTime & GetLocalTime()
Get local time.
FBModelTemplate::DefaultRotation
FBPropertyVector3d DefaultRotation
Read Write Property: Default rotation.
Definition: fbcore.h:553
FBPropertyEvent
PropertyEvent: Base event class.
Definition: fbproperties.h:515
FBModelList
class K_DLLIMPORT FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL FBArrayTemplate<FBModel*> FBModelList;
Definition: fbcharacter.h:597
FBBox::eCandidateAccept
@ eCandidateAccept
Let the standard system take care of the candidate.
Definition: fbcore.h:230
FBDevice::Status
FBPropertyString Status
Read Write Property: Device information: status.
Definition: fbcore.h:912
kFBHardwareFrequency
@ kFBHardwareFrequency
Device is running at known, fixed frequency.
Definition: fbcore.h:753
FBDevice::RecordingStopTime
FBPropertyTime RecordingStopTime
Read Only Property: The time at which the recording stopped.
Definition: fbcore.h:929
FBPropertyListModelTemplateBinding::GetCount
virtual int GetCount()
Get the number of bindings.
FBPropertyBool
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
Definition: fbproperties.h:1308
kFBCommTypeNone
@ kFBCommTypeNone
A non-communicating device.
Definition: fbcore.h:764
FBDevice::kJog
@ kJog
Jog.
Definition: fbcore.h:811
FBDeviceInstrument::InstrumentRecordFrame
virtual void InstrumentRecordFrame(FBTime pRecordTime, FBDeviceNotifyInfo &pNotifyInfo)
Record the data to the function curves for the instrument.
fbcomponent.h
Basic class definitions.
FBDeviceGlove::GloveChannel::~GloveChannel
virtual ~GloveChannel()
Destructor,.
FBPropertyListHandle::operator[]
FBHandle * operator[](int pIndex)
Get the model template at pIndex.
FBDeviceGlove::GloveChannel::AnimNode
FBAnimationNode * AnimNode
Animation node.
Definition: fbcore.h:1032
FBDevice::Information
FBPropertyString Information
Read Write Property: Device information: information.
Definition: fbcore.h:913
FBModelTemplate::DefaultScaling
FBPropertyVector3d DefaultScaling
Read Write Property: Default scaling.
Definition: fbcore.h:554
FBSyncReference
Application sync.
Definition: fbcore.h:703
FB_DEFINE_LIST
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
Definition: fbproperties.h:163
FBModelTemplate::Prefix
FBPropertyString Prefix
Read Write Property: Prefix of model template.
Definition: fbcore.h:550
FBDevice::kIOPlayModeRead
@ kIOPlayModeRead
Read from device (Transport=playing).
Definition: fbcore.h:797
FBBox::EvaluateAnimationNodes
virtual bool EvaluateAnimationNodes(FBEvaluateInfo *pEvaluateInfo)
Evaluation of non TRS nodes that needs to be evaluated.
FBDevice::OnStatusChange
FBPropertyEvent OnStatusChange
Event: Status of device changed.
Definition: fbcore.h:918
kFBCommTypeSerial
@ kFBCommTypeSerial
Serial communications.
Definition: fbcore.h:765
FBBox::GetOutConnectorCount
virtual int GetOutConnectorCount() const
Get the number of animation node outputs for this box.
FBPropertyListComponent
PropertyList: Concrete class for PropertyList of component
Definition: fbcomponent.h:536
FBDevice::Instruments
FBPropertyListDeviceInstrument Instruments
List: List of instruments.
Definition: fbcore.h:926
FBDevice::ModelTemplate
FBModelTemplate ModelTemplate
Component: Root of model template structure.
Definition: fbcore.h:920
FBArrayTemplate
Template class to contain an array of items.
Definition: fbarray.h:78
FBPropertyListDeviceInstrument
List of instruments.
Definition: fbcore.h:669
FBModelTemplate::FBModelTemplate
FBModelTemplate(HIObject pObject=NULL)
Constructor from parent object.
FBDeviceInstrument::Active
FBPropertyBool Active
Read Write Property: Is instrument active?
Definition: fbcore.h:656
FBPropertyListModelTemplate::Add
int Add(FBModelTemplate *pItem)
Add a model template to the property list.
FBHandle::ManipulateScaling
FBPropertyListObject ManipulateScaling
List: Objects manipulated by the handle. Only their scaling is affected.
Definition: fbcore.h:387
FB_FORWARD
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:62
FBHandle::ManipulateRotation
FBPropertyListObject ManipulateRotation
List: Objects manipulated by the handle. Only their rotation is affected.
Definition: fbcore.h:386
kFBModelTemplateSensor
@ kFBModelTemplateSensor
Yellow magnetic sensor.
Definition: fbcore.h:512
FBSyncReference::Active
FBPropertyBool Active
Read Write Property: Activate sync.
Definition: fbcore.h:732
FBModelTemplate::Bindings
FBPropertyListModelTemplateBinding Bindings
List: Bindings for animation interface.
Definition: fbcore.h:548
FBDeviceInstrument::ModelTemplate
FBPropertyModelTemplate ModelTemplate
Read Write Property: Model template to build instruments' structure.
Definition: fbcore.h:657
FBDevice::AckOneSampleReceived
void AckOneSampleReceived()
Acknowlege that one sample was received (for statistical purposes).
kFBHardwareTimestamp
@ kFBHardwareTimestamp
Device supplies timestamp.
Definition: fbcore.h:752
FBDeviceInstrument
Instrument abstraction layer.
Definition: fbcore.h:626
FBBox::AnimationNodeDestroy
virtual bool AnimationNodeDestroy(FBAnimationNode *pAnimationNode)
Destroy an animation node.
FBBox::FbxGetObjectType
virtual const char * FbxGetObjectType()
Object Type "Box".
FB_DEFINE_COMPONENT
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
FBDevice::DeviceTransportNotify
virtual void DeviceTransportNotify(kTransportMode pMode, FBTime pTime, FBTime pSystem)
Real-Time engine thread: Tranport notifications.
FBDevice::kOpReset
@ kOpReset
Reset device (stop->start).
Definition: fbcore.h:788
FBBox::SetGlobalCandidate
virtual ECandidateAction SetGlobalCandidate(FBAnimationNode *pAnimationNode, double *pData, FBEvaluateInfo *pEvaluateInfo)
Function is call when a global candidate is set on an animation node.
FBFbxObject
FBX file interface.
Definition: fbfbx.h:80
FBDevice::FbxStore
virtual bool FbxStore(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat) override
Storage/Retrieval of information into the FBX file format.
FBDeviceGlove::Channels
FBArrayTemplate< GloveChannel * > Channels
Glove channels.
Definition: fbcore.h:1076
FBEvaluateInfo
AnimationNodeNotify evaluation information.
Definition: fbevaluateinfo.h:79
FBPropertyString
Property class: const char * (String).
Definition: fbproperties.h:1281
FBModel
Model class.
Definition: fbmodel.h:274
FBComponent
MotionBuilder SDK base class.
Definition: fbcomponent.h:651
kFBCommTypeOther
@ kFBCommTypeOther
Any other type of communications.
Definition: fbcore.h:770
FBDevice::kStop
@ kStop
Play stopped.
Definition: fbcore.h:809
FBSyncReference::FBSyncReference
FBSyncReference(const char *pName, HIObject pObject=NULL)
Constructor.
FBBox::ResolveCandidate
virtual bool ResolveCandidate(FBAnimationNode *pAnimationNode, FBEvaluateInfo *pEvaluateInfo)
Function is call when candidate needs to be resolved (like global to local).
FBDevice::kPlay
@ kPlay
Playing.
Definition: fbcore.h:810
FBBox::GetOutConnector
virtual FBAnimationNode * GetOutConnector(int pIndex) const
Get the animation node output associated with the given index.
FBDevice::SamplingPeriod
FBPropertyTime SamplingPeriod
Read Write Property: Set this to how many times a device is to be evaluated in one second....
Definition: fbcore.h:915
FBDevice::ModelBindingRootsList
void ModelBindingRootsList(FBModelList &pList)
Get the list of all the possible root models for binding.
kFBModelTemplateGeometry
@ kFBModelTemplateGeometry
Generic geometry.
Definition: fbcore.h:515
FBDeviceGlove::GloveChannel::GetName
FBString GetName()
Get the channel name.
FBPropertyListModelTemplateBinding::RemoveAt
virtual void RemoveAt(int pIndex)
Remove the binding at pIndex.
FBPropertyBaseListModelTemplateBinding
class K_DLLIMPORT FBPropertyBaseList< FBAnimationNode * > FBPropertyBaseListModelTemplateBinding
typedef class FBSDK_DLL FBPropertyBaseList< FBAnimationNode* > FBPropertyBaseListModelTemplateBinding
Definition: fbcore.h:464
kFBAutoFrequency
@ kFBAutoFrequency
Device is running at unknown, fixed frequency.
Definition: fbcore.h:754
FBVector3d
class K_DLLIMPORT FBVector3< double > FBVector3d
3D vector.
Definition: fbtypes.h:438
FBDevice::FBDestroy
virtual void FBDestroy() override
Open Reality destruction function.
FBBox::AnimationNodeNotify
virtual bool AnimationNodeNotify(FBAnimationNode *pAnimationNode, FBEvaluateInfo *pEvaluateInfo)
Notification function for animation thread.
FBDevice::kOpStart
@ kOpStart
Start device (online).
Definition: fbcore.h:785
FBDeviceGlove::GloveChannel::Enabled
bool Enabled
true if this channel is enabled.
Definition: fbcore.h:1031
FBPropertyListModelTemplate::RemoveAt
virtual void RemoveAt(int pIndex)
Remove the model template at pIndex.