Open Reality Reference Guide
 
Loading...
Searching...
No Matches
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
910 void ModelBindingRootsList(FBModelList& pList);
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.
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.
PropertyList: Component.
PropertyList: Concrete class for PropertyList of component
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.
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;
Basic class definitions.
#define __FBClassDeclare(Name, Parent)
For internal use only.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
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.
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.
class K_DLLIMPORT FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
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