Open Reality Reference Guide
fbcore.h
Go to the documentation of this file.
1#ifndef __FBCORE_H__
2#define __FBCORE_H__
3/**************************************************************************
4Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
5All Rights Reserved.
6
7The coded instructions, statements, computer programs, and/or related
8material (collectively the "Data") in these files contain unpublished
9information proprietary to Autodesk, Inc. and/or its licensors, which is
10protected by Canada and United States of America federal copyright law
11and by international treaties.
12
13The Data may not be disclosed or distributed to third parties, in whole
14or in part, without the prior written consent of Autodesk, Inc.
15("Autodesk").
16
17THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
18ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
19WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR
20ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES
21OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
22PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT
23WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR
24FREE.
25
26IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
27OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR
28EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE
29DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS
30OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR
31DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF
32LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT
33LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE
34DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS
35BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
36
37**************************************************************************/
38
43#include <kaydaradef.h>
44#ifndef FBSDK_DLL
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
63namespace FBSDKNamespace {
64#endif
65
66 FB_DEFINE_COMPONENT( FBSDK_DLL, ModelTemplate );
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 ); \
92public: \
93 ClassName(const char* pName):Parent(pName) { FBClassInit; } \
94private:
95
99#define FBBoxImplementation( ThisComponent ) \
100 FBClassImplementation( ThisComponent )
101
106#define FBDeviceDeclare( ClassName, Parent ) \
107 FBClassDeclare( ClassName,Parent ); \
108public: \
109 ClassName(const char* pName):Parent(pName) { FBClassInit; } \
110private:
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
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
313
315
319 virtual FBAnimationNode* AnimationNodeOutGet();
321
322 const char* UniqueName;
323
327 virtual const char* FbxGetObjectType();
328
332 virtual const char* FbxGetObjectSubType();
333
334 IObject_Declare(override); // Interface to IObject.
335
339 virtual int GetOutConnectorCount() const;
340
344 virtual int GetInConnectorCount() const;
345
350 virtual FBAnimationNode* GetOutConnector( int pIndex ) const;
351
356 virtual FBAnimationNode* GetInConnector( int pIndex ) const;
357
361 };
362
363
364#ifndef K_NO_UI
365
367 // FBHandle
370
374 class FBSDK_DLL FBHandle : public FBBox {
376
377 public:
383 FBHandle( const char* pName, HIObject pObject=NULL );
384
389 void Select();
390
397
398 private:
400
404 FBHandle( const FBHandle& );
405 FBHandle& operator=( const FBHandle& );
407 };
408
409
411 // FBPropertyListHandle
413 FB_DEFINE_LIST( FBSDK_DLL, Handle );
415
418 {
419 public:
425 FBHandle* operator[](int pIndex);
426 };
427
428#endif
429
431 // FBPropertyListModelTemplate
435 FB_DEFINE_LIST ( FBSDK_DLL, ModelTemplate );
436
439 {
440 public:
445 int Add ( FBModelTemplate* pItem );
449 virtual void RemoveAt( int pIndex );
458 virtual int GetCount();
459#ifndef DOXYGEN_SHOULD_SKIP_THIS
460 inline virtual FBComponent* GetAt(int pIndex) { return (FBComponent*)operator[](pIndex); }
461 private:
462 inline virtual int Add ( FBComponent* pItem ) { return Add((FBModelTemplate*)pItem); }
463#endif
464 };
465
467 // FBPropertyListModelTemplateBinding
469 __FB_FORWARD( FBModelTemplateBinding );
473
476 {
477 public:
482 virtual int Add( FBAnimationNode* pItem );
483
487 virtual void RemoveAt( int pIndex );
493
497 virtual int GetCount();
498#ifndef DOXYGEN_SHOULD_SKIP_THIS
499 inline virtual FBComponent* GetAt(int pIndex) { return (FBComponent*)operator[](pIndex); }
500 private:
501 inline virtual int Add ( FBComponent* pItem ) { return Add((FBAnimationNode*)pItem); }
502#endif
503 };
504
506 // FBModelTemplate
509
527 };
528
537
540 void Init();
541 public:
546 FBModelTemplate(HIObject pObject=NULL);
547
553 FBModelTemplate(const char *pPrefix,const char *pName, FBModelTemplateStyle pStyle);
554
557
559 FBPropertyModel Model;
563
564 friend class FBDevice;
565 };
566
568 // FBPropertyListDevice
572
575 {
576 public:
582 FBDevice* operator[](int pIndex);
583 };
584
586 // FBDeviceNotifyInfo
589
597 {
598 public:
603
608
614 void SetLocalTime( const FBTime & );
615
620
625 };
626
628 // FBDeviceInstrument
634 {
636 public:
647 virtual bool InstrumentWriteData( FBEvaluateInfo* pEvaluateInfo );
652 virtual void InstrumentRecordFrame( FBTime pRecordTime, FBDeviceNotifyInfo& pNotifyInfo );
654
659 virtual bool FbxStore( FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat );
660 virtual bool FbxRetrieve( FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat );
662
663 FBPropertyDevice Device;
665 FBPropertyModelTemplate ModelTemplate;
666 };
667 FB_DEFINE_COMPONENT( FBSDK_DLL, DeviceInstrument );
668
670 // FBPropertyListDeviceInstrument
673 FB_DEFINE_LIST( FBSDK_DLL, DeviceInstrument );
677 {
678 public:
683 virtual int Add ( FBDeviceInstrument* pItem );
687 virtual void RemoveAt( int pIndex );
696 virtual int GetCount();
697#ifndef DOXYGEN_SHOULD_SKIP_THIS
698 inline virtual FBComponent* GetAt(int pIndex) { return (FBComponent*)operator[](pIndex); }
699 private:
700 inline virtual int Add ( FBComponent* pItem ) { return Add((FBDeviceInstrument*)pItem); }
701#endif
702 };
703
705 // FBSyncReference
711 {
713 public:
718 FBSyncReference(const char* pName, HIObject pObject=NULL);
719
723 void Sync(int pSyncId);
724
729
734
739
742 };
743 FB_DEFINE_COMPONENT( FBSDK_DLL, SyncReference );
744
745
747 // FBDevice
749
764 };
765 FB_DEFINE_ENUM( FBSDK_DLL, DeviceSamplingMode );
766
778 kFBCommTypeOther = 1<<5
779 };
780
783
805 class FBSDK_DLL FBDevice : public FBBox {
807 public:
817 kOpDone
818 };
819
827 kIOPlayModeWrite
828 };
829
840 kPlayReverse
841 };
842
847 FBDevice(const char * pName,HIObject pObject=NULL);
848
849 // See FBBox class
850 virtual bool FBCreate () override;
851 virtual void FBDestroy () override;
852
853 // See FBBox class
854 virtual FBAnimationNode* AnimationNodeInCreate (kReference pUserId,const char * pName ,const char * pDataType,bool pIsPublic=true,double *pMin=NULL,double *pMax=NULL,bool pUserData=false) override;
855 virtual FBAnimationNode* AnimationNodeOutCreate(kReference pUserId,const char * pName ,const char * pDataType,bool pIsPublic=true,double *pMin=NULL,double *pMax=NULL,bool pUserData=false) override;
856
862 virtual bool DeviceOperation( kDeviceOperations pOperation );
863
870 virtual void DeviceTransportNotify( kTransportMode pMode, FBTime pTime, FBTime pSystem );
871
878 virtual void DeviceIONotify( kDeviceIOs pAction, FBDeviceNotifyInfo& pDeviceNotifyInfo );
879
885 virtual bool DeviceEvaluationNotify( kTransportMode pMode,FBEvaluateInfo* pEvaluateInfo );
886
893 virtual bool ModelTemplateBindNotify( FBModel* pModel,int pIndex, FBModelTemplate* pModelTemplate );
894
900 virtual bool ModelTemplateUnBindNotify( int pIndex, FBModelTemplate* pModelTemplate );
901
906
911
918 virtual bool AnimationNodeNotify( FBAnimationNode* pAnimationNode, FBEvaluateInfo* pEvaluateInfo ) override;
919
923 virtual const char* FbxGetObjectType() override;
924
926
931 virtual bool FbxStore ( FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat ) override;
932 virtual bool FbxRetrieve( FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat ) override;
934
939 virtual void DeviceSendCommand( kDeviceOperations pOperation );
940
941 IObject_Declare( override ); // Interface to IObject
942
948
950
952 FBPropertyModel ModelBindingRoot;
953
954 FBPropertyDeviceSamplingMode SamplingMode;
956
958
961
964
967
970
974 virtual void RecordingInitAnimation(FBAnimationNode* pAnimationNode);
975
979 virtual void RecordingDoneAnimation(FBAnimationNode* pAnimationNode);
980
981 friend class __FBDevice;
982 friend class DataFBDeviceOptical;
983 };
984
985#ifndef FBSDK_LEAN_AND_MEAN
986
988
992 public:
995 enum kHandModelPart { // Parents :
996
997 kPartRoot, // No parent
998 kPartPalm, // kPartRoot
999
1000 // Thumb
1001 kPartThumbA, // kPartPalm
1002 kPartThumbB, // kPartThumbA
1003 kPartThumbC, // kPartThumbB
1004 kPartThumbD, // kPartThumbC
1005
1006 // Index
1007 kPartIndexA, // kPartPalm
1008 kPartIndexB, // kPartIndexA
1009 kPartIndexC, // kPartIndexB
1010 kPartIndexD, // kPartIndexC
1011
1012 // Middle
1013 kPartMiddleA, // kPartPalm
1014 kPartMiddleB, // kPartMiddleA
1015 kPartMiddleC, // kPartMiddleB
1016 kPartMiddleD, // kPartMiddleC
1017
1018 // Ring
1019 kPartRingA, // kPartPalm
1020 kPartRingB, // kPartRingA
1021 kPartRingC, // kPartRingB
1022 kPartRingD, // kPartRingC
1023
1024 // Little
1025 kPartLittleA, // kPartPalm
1026 kPartLittleB, // kPartLittleA
1027 kPartLittleC, // kPartLittleB
1028 kPartLittleD, // kPartLittleC
1029
1030 kPartMax
1031 };
1032
1037 {
1038 public:
1043
1046 virtual ~GloveChannel();
1047
1052
1056 void SetName ( FBString pName );
1057
1058 protected:
1060
1061 public:
1062 bool Enabled;
1064 };
1065
1066
1071 FBDeviceGlove( const char* pName, HIObject pObject=NULL );
1072
1076 virtual void RecordingInitAnimation( FBAnimationNode* pAnimationNode ) override;
1077
1081 virtual void RecordingDoneAnimation( FBAnimationNode* pAnimationNode ) override;
1082
1083 protected:
1089
1099
1105
1106 public:
1108
1110 };
1111
1112#endif
1113
1114#ifdef FBSDKUseNamespace
1115}
1116#endif
1117#endif
Template class to contain an array of items.
Definition: fbarray.h:78
A box is a fundamental building block in the application architecture.
Definition: fbcore.h:218
virtual ECandidateAction SetStdCandidate(FBAnimationNode *pAnimationNode, double *pData, FBEvaluateInfo *pEvaluateInfo)
Function is call when a non-global candidate is set on an animation node.
FBPropertyBool Live
Read Write Property: Is live?
Definition: fbcore.h:359
virtual int GetInConnectorCount() const
Get the number of animation node inputs for this box.
virtual bool EvaluateAnimationNodes(FBEvaluateInfo *pEvaluateInfo)
Evaluation of non TRS nodes that needs to be evaluated.
virtual const char * FbxGetObjectType()
Returns the class type inherited by the class of an object, for example: 'Box', 'Constraint',...
virtual int GetOutConnectorCount() const
Get the number of animation node outputs for this box.
virtual bool FbxStore(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat)
Storage/Retrieval of information into the FBX file format.
FBBox(const char *pName, HIObject pObject=NULL)
Constructor.
FBPropertyBool RecordMode
Read Write Property: Is recording?
Definition: fbcore.h:360
ECandidateAction
Resolving action for candidates.
Definition: fbcore.h:229
@ eCandidateAccept
Let the standard system take care of the candidate.
Definition: fbcore.h:230
@ eCandidateIntercept
Intercept the candidate.
Definition: fbcore.h:231
virtual FBAnimationNode * GetOutConnector(int pIndex) const
Get the animation node output associated with the given index.
virtual bool AnimationNodeDestroy(FBAnimationNode *pAnimationNode)
Destroy an animation node.
virtual FBAnimationNode * AnimationNodeInGet()
Get the (IN/OUT) animation node for this box.
virtual FBAnimationNode * GetInConnector(int pIndex) const
Get the animation node input associated with the given index.
virtual const char * FbxGetObjectSubType()
Returns the class sub type inherited by the class of an object, for example: 'Relations',...
virtual ECandidateAction SetGlobalCandidate(FBAnimationNode *pAnimationNode, double *pData, FBEvaluateInfo *pEvaluateInfo)
Function is call when a global candidate is set on an animation node.
virtual bool AnimationNodeIsUserData(FBAnimationNode *pAnimationNode)
Is the animation node user data?
const char * UniqueName
internal Unique name.
Definition: fbcore.h:322
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.
virtual bool AnimationNodeNotify(FBAnimationNode *pAnimationNode, FBEvaluateInfo *pEvaluateInfo)
Notification function for animation thread.
FBPropertyBool Animatable
Read Write Property: Is the box animatable.
Definition: fbcore.h:358
virtual void AnimationNodesOutDisableIfNotWritten(FBEvaluateInfo *pEvaluateInfo)
This call will disable all out animation nodes from being pull by system (animation thread) for given...
virtual bool ResolveCandidate(FBAnimationNode *pAnimationNode, FBEvaluateInfo *pEvaluateInfo)
Function is call when candidate needs to be resolved (like global to local).
MotionBuilder SDK base class.
Definition: fbcomponent.h:651
Base GloveChannel.
Definition: fbcore.h:1037
void SetName(FBString pName)
Set the channel name.
bool Enabled
true if this channel is enabled.
Definition: fbcore.h:1062
virtual ~GloveChannel()
Destructor,.
GloveChannel(FBAnimationNode *pAnimNode)
Constructor.
FBString Name
Name of channel.
Definition: fbcore.h:1059
FBString GetName()
Get the channel name.
FBAnimationNode * AnimNode
Animation node.
Definition: fbcore.h:1063
Base Glove class.
Definition: fbcore.h:990
FBArrayTemplate< GloveChannel * > Channels
Glove channels.
Definition: fbcore.h:1107
FBDeviceGlove(const char *pName, HIObject pObject=NULL)
Constructor.
kHandModelPart
Hand model parts.
Definition: fbcore.h:995
FBAnimationNode * GetModelRotationNode(kHandModelPart pPartIndex)
Obtain the rotation animation node of a part of the hand model.
virtual void RecordingDoneAnimation(FBAnimationNode *pAnimationNode) override
When recording, finish animation.
void InitializeModelGeometry()
Initialize the hand model geometry.
FBPropertyBool LeftHand
Read Write Property: Left or right hand glove.
Definition: fbcore.h:1109
virtual void RecordingInitAnimation(FBAnimationNode *pAnimationNode) override
When recording, initialize animation.
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.
Base Device class.
Definition: fbcore.h:805
FBModelTemplate ModelTemplate
Component: Root of model template structure.
Definition: fbcore.h:951
virtual bool ModelTemplateUnBindNotify(int pIndex, FBModelTemplate *pModelTemplate)
Model Template unbinding notification callback.
virtual bool AnimationNodeNotify(FBAnimationNode *pAnimationNode, FBEvaluateInfo *pEvaluateInfo) override
Notification function for animation thread.
FBPropertyModel ModelBindingRoot
Component: Root of model currently binded model hierarchy.
Definition: fbcore.h:952
FBPropertyTime RecordingStartTime
Read Only Property: The time at which the recording started.
Definition: fbcore.h:959
virtual void RecordingInitAnimation(FBAnimationNode *pAnimationNode)
When recording, initialize animation.
kTransportMode
Transport control types for device.
Definition: fbcore.h:833
@ kPreparePlay
Preparing to play.
Definition: fbcore.h:834
@ kJog
Jog.
Definition: fbcore.h:839
@ kPlayStop
Stopping play.
Definition: fbcore.h:836
@ kPlay
Playing.
Definition: fbcore.h:838
@ kStop
Play stopped.
Definition: fbcore.h:837
@ kPlayReady
Ready to play.
Definition: fbcore.h:835
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.
virtual void DeviceSendCommand(kDeviceOperations pOperation)
Send a command to the device.
FBModel * ModelBindingCreate()
Create a new model binding.
virtual void FBDestroy() override
Open Reality destruction function.
FBPropertyListDeviceInstrument Instruments
List: List of instruments.
Definition: fbcore.h:957
void AckOneSampleSent()
Acknowlege that one sample was sent (for statistical purposes).
FBPropertyString HardwareVersionInfo
Read Write Property: Device information: hardware version.
Definition: fbcore.h:945
FBPropertyString Status
Read Write Property: Device information: status.
Definition: fbcore.h:943
FBPropertyInt CommType
Read Write Property: Type of communications.
Definition: fbcore.h:955
virtual void DeviceIONotify(kDeviceIOs pAction, FBDeviceNotifyInfo &pDeviceNotifyInfo)
Real-Time engine thread: Device I/O.
FBPropertyEvent OnStatusChange
Event: Status of device changed.
Definition: fbcore.h:949
FBPropertyTime RecordingStopTime
Read Only Property: The time at which the recording stopped.
Definition: fbcore.h:960
virtual bool FbxStore(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat) override
Storage/Retrieval of information into the FBX file format.
void AckOneBadSampleReceived()
Acknowlege that one bad sample was received (for statistical purposes).
kDeviceIOs
Types of I/O for device.
Definition: fbcore.h:823
@ kIOStopModeRead
Read from device (Transport=stopped).
Definition: fbcore.h:824
@ kIOPlayModeRead
Read from device (Transport=playing).
Definition: fbcore.h:825
@ kIOStopModeWrite
Write to device (Transport=stopped).
Definition: fbcore.h:826
virtual void DeviceTransportNotify(kTransportMode pMode, FBTime pTime, FBTime pSystem)
Real-Time engine thread: Tranport notifications.
virtual bool ModelTemplateBindNotify(FBModel *pModel, int pIndex, FBModelTemplate *pModelTemplate)
Model Template binding notification callback.
void ModelBindingRootsList(FBModelList &pList)
Get the list of all the possible root models for binding.
virtual bool DeviceOperation(kDeviceOperations pOperation)
Operate device.
kDeviceOperations
Types of operations for device.
Definition: fbcore.h:811
@ kOpStart
Start device (online).
Definition: fbcore.h:813
@ kOpInit
Initalize device (creation).
Definition: fbcore.h:812
@ kOpAutoDetect
Autodetect (automatic).
Definition: fbcore.h:814
@ kOpReset
Reset device (stop->start).
Definition: fbcore.h:816
@ kOpStop
Stop device (offline).
Definition: fbcore.h:815
virtual bool FBCreate() override
Open Reality Creation function.
virtual const char * FbxGetObjectType() override
Returns the class type inherited by the class of an object, for example: 'Device'.
FBPropertyDeviceSamplingMode SamplingMode
Read Write Property: Mode to use to record device.
Definition: fbcore.h:954
virtual bool DeviceEvaluationNotify(kTransportMode pMode, FBEvaluateInfo *pEvaluateInfo)
Real-Time engine thread: Output device evaluation.
void AckOneSampleReceived()
Acknowlege that one sample was received (for statistical purposes).
FBPropertyBool Online
Read Write Property: Is online?
Definition: fbcore.h:947
FBDevice(const char *pName, HIObject pObject=NULL)
Constructor.
FBPropertyString Information
Read Write Property: Device information: information.
Definition: fbcore.h:944
FBPropertyTime SamplingPeriod
Read Write Property: Set this to how many times a device is to be evaluated in one second....
Definition: fbcore.h:946
virtual void RecordingDoneAnimation(FBAnimationNode *pAnimationNode)
When recording, finish animation.
Instrument abstraction layer.
Definition: fbcore.h:634
FBPropertyModelTemplate ModelTemplate
Read Write Property: Model template to build instruments' structure.
Definition: fbcore.h:665
virtual bool FbxStore(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat)
Storage/Retrieval of information into the FBX file format.
FBDeviceInstrument(FBDevice *pDevice)
Constructor.
FBPropertyDevice Device
Read Write Property: Handle to owner device.
Definition: fbcore.h:663
virtual bool InstrumentWriteData(FBEvaluateInfo *pEvaluateInfo)
Write data to instrument's connectors.
virtual void InstrumentRecordFrame(FBTime pRecordTime, FBDeviceNotifyInfo &pNotifyInfo)
Record the data to the function curves for the instrument.
FBPropertyBool Active
Read Write Property: Is instrument active?
Definition: fbcore.h:664
Device Input and Output Notification information structure.
Definition: fbcore.h:597
FBTime & GetSystemTime()
Get system time.
void SetLocalTime(const FBTime &)
Set local time Allows the device to override the local time of the system.
FBEvaluateInfo & GetEvaluateInfo()
Return the evaluation info used to do device evaluation.
FBTime & GetLocalTime()
Get local time.
int GetSyncCount()
Return the wanted timer sync count (internal or external)
AnimationNodeNotify evaluation information.
FBX file interface.
Definition: fbfbx.h:80
FBHandle class exposes the Handle object of the application.
Definition: fbcore.h:374
FBPropertyListObject Follow
List: Object to be followed by the handle. Should have a cardinality of 1.
Definition: fbcore.h:391
FBPropertyListObject ManipulateScaling
List: Objects manipulated by the handle. Only their scaling is affected.
Definition: fbcore.h:395
FBHandle(const char *pName, HIObject pObject=NULL)
Public constructor.
FBPropertyListObject ManipulateTranslation
List: Objects manipulated by the handle. Only their translation is affected.
Definition: fbcore.h:393
FBPropertyListObject Image
List: Image to be used in the handle display. Only the image at position 0 is used.
Definition: fbcore.h:396
void Select()
Meta selection.
FBPropertyListObject Manipulate
List: Objects manipulated by the handle.
Definition: fbcore.h:392
FBPropertyListObject ManipulateRotation
List: Objects manipulated by the handle. Only their rotation is affected.
Definition: fbcore.h:394
Model class.
Definition: fbmodel.h:274
Model template class.
Definition: fbcore.h:535
FBPropertyListModelTemplate Children
List: Children for object hierarchy.
Definition: fbcore.h:555
FBModelTemplate(const char *pPrefix, const char *pName, FBModelTemplateStyle pStyle)
Constructor (no parent) from prefix, name, and style.
FBPropertyListModelTemplateBinding Bindings
List: Bindings for animation interface.
Definition: fbcore.h:556
FBPropertyModel Model
Read Write Property: Model being interfaced.
Definition: fbcore.h:559
FBPropertyVector3d DefaultRotation
Read Write Property: Default rotation.
Definition: fbcore.h:561
FBPropertyString Prefix
Read Write Property: Prefix of model template.
Definition: fbcore.h:558
FBModelTemplate(HIObject pObject=NULL)
Constructor from parent object.
FBPropertyVector3d DefaultScaling
Read Write Property: Default scaling.
Definition: fbcore.h:562
FBPropertyVector3d DefaultTranslation
Read Write Property: Default translation.
Definition: fbcore.h:560
PropertyEvent: Base event class.
Definition: fbproperties.h:515
PropertyList: Component.
Definition: fbcomponent.h:477
PropertyList: Concrete class for PropertyList of component
Definition: fbcomponent.h:536
PropertyList: Device
Definition: fbcore.h:575
FBDevice * operator[](int pIndex)
Get the device at pIndex.
List of instruments.
Definition: fbcore.h:677
virtual void RemoveAt(int pIndex)
Remove the instrument at pIndex.
virtual int Add(FBDeviceInstrument *pItem)
Add an instrument to the property list.
virtual int GetCount()
Get the number of instruments.
FBDeviceInstrument * operator[](int pIndex)
Get the model template at pIndex.
PropertyList: Handle.
Definition: fbcore.h:418
FBHandle * operator[](int pIndex)
Get the model template at pIndex.
PropertyList: ModelTemplateBinding.
Definition: fbcore.h:476
virtual void RemoveAt(int pIndex)
Remove the binding at pIndex.
FBAnimationNode * operator[](int pIndex)
Get the binding at pIndex.
virtual int Add(FBAnimationNode *pItem)
Add an animation node to the model template binding property list.
virtual int GetCount()
Get the number of bindings.
PropertyList: ModelTemplate.
Definition: fbcore.h:439
virtual void RemoveAt(int pIndex)
Remove the model template at pIndex.
FBModelTemplate * operator[](int pIndex)
Get the model template at pIndex.
int Add(FBModelTemplate *pItem)
Add a model template to the property list.
virtual int GetCount()
Get the number of model templates.
List of scene objects.
Definition: fbcomponent.h:556
Property class: const char * (String).
Basic string class.
Definition: fbstring.h:67
Application sync.
Definition: fbcore.h:711
FBTime GetTimeOfLastSync()
Last sync time.
void Sync(int pSyncId)
Notify sync.
FBSyncReference(const char *pName, HIObject pObject=NULL)
Constructor.
FBTime GetTimeOfNextSync()
Next sync time.
FBPropertyBool Active
Read Write Property: Activate sync.
Definition: fbcore.h:740
int GetSyncCount()
Return sync count.
FBPropertyTime SamplingPeriod
Read Write Property: Sampling period.
Definition: fbcore.h:741
Time data structure.
Definition: fbtime.h:88
class K_DLLIMPORT FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL FBArrayTemplate<FBModel*> FBModelList;
Definition: fbcharacter.h:597
Basic class definitions.
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:131
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbcore.h:48
FBCommType
Communications type.
Definition: fbcore.h:771
@ kFBCommTypeNetworkUDP
Network (UDP) device.
Definition: fbcore.h:775
@ kFBCommTypeOther
Any other type of communications.
Definition: fbcore.h:778
@ kFBCommTypeNetworkTCP
Network (TCP) device.
Definition: fbcore.h:774
@ kFBCommTypeSerial
Serial communications.
Definition: fbcore.h:773
@ kFBCommTypeSimulator
Software simulator.
Definition: fbcore.h:777
@ kFBCommTypeNone
A non-communicating device.
Definition: fbcore.h:772
@ kFBCommTypeSharedMemory
Accessing shared memory.
Definition: fbcore.h:776
class K_DLLIMPORT FBPropertyBaseList< FBAnimationNode * > FBPropertyBaseListModelTemplateBinding
typedef class FBSDK_DLL FBPropertyBaseList< FBAnimationNode* > FBPropertyBaseListModelTemplateBinding
Definition: fbcore.h:472
FBDeviceSamplingMode
Recording types.
Definition: fbcore.h:759
@ kFBAutoFrequency
Device is running at unknown, fixed frequency.
Definition: fbcore.h:762
@ kFBSoftwareTimestamp
The software will timestamp packets as they arrive.
Definition: fbcore.h:763
@ kFBHardwareTimestamp
Device supplies timestamp.
Definition: fbcore.h:760
@ kFBHardwareFrequency
Device is running at known, fixed frequency.
Definition: fbcore.h:761
FBModelTemplateStyle
Model template styles When creating model templates, this parameter will affect the actual model crea...
Definition: fbcore.h:515
@ kFBModelTemplateLight
Light.
Definition: fbcore.h:525
@ kFBModelTemplateGeometry
Generic geometry.
Definition: fbcore.h:523
@ kFBModelTemplateSensor
Yellow magnetic sensor.
Definition: fbcore.h:520
@ kFBModelTemplateCamera
Camera.
Definition: fbcore.h:522
@ kFBModelTemplateSkeleton
Skeleton limb.
Definition: fbcore.h:521
@ kFBModelTemplateOptical
Optical model (not supported yet).
Definition: fbcore.h:526
@ kFBModelTemplateRoot
Root (3 axes).
Definition: fbcore.h:519
@ kFBModelTemplateNone
No style.
Definition: fbcore.h:516
@ kFBModelTemplateCameraInterest
Camera interest.
Definition: fbcore.h:524
@ kFBModelTemplateNull
Null.
Definition: fbcore.h:517
@ kFBModelTemplateMarker
Marker.
Definition: fbcore.h:518
HIObject(* kFBObjectCreatorFnc)(HIObject pOwner, const char *pName, void *pData)
Definition: fbcore.h:81
Animation data types.
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
FBX file format interface.
class K_DLLIMPORT FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
class K_DLLIMPORT FBPropertyBase< FBVector3d, kFBPT_Vector3D > FBPropertyVector3d
FBPropertyVector3d type definition.
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
Definition: fbproperties.h:163
class K_DLLIMPORT FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
Definition: fbproperties.h:150
Time classes.
kFbxObjectStore
Description of the different store/retrieve passes of the FBX format.
Definition: fbtypes.h:74
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:62
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:68
class K_DLLIMPORT FBVector3< double > FBVector3d
3D vector.
Definition: fbtypes.h:438