Open Reality Reference Guide
 
Loading...
Searching...
No Matches
fbproperties.h
Go to the documentation of this file.
1#ifndef __FBPROPERTIES_H__
2#define __FBPROPERTIES_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
45#include <kaydaradef.h>
46
47#ifndef FBSDK_DLL
51#define FBSDK_DLL K_DLLIMPORT
52#endif
53
54#include <assert.h>
55#include <stdio.h>
56#include <stdlib.h>
57
58#include <fbsdk/fbplug.h>
59#include <fbsdk/fbarray.h>
60#include <fbsdk/fbstring.h>
61#include <fbsdk/fbtime.h>
62#include <fbsdk/fbevaluateinfo.h>
63
64K_FORWARD( KEventBase );
65K_FORWARD( KObject );
66K_FORWARD( KProperty );
67K_FORWARD( KEvaluationProperty );
68K_FORWARD( KDataType );
69K_FORWARD( IFBObject );
70K_FORWARD( IRegister );
71
72#ifdef FBSDKUseNamespace
73namespace FBSDKNamespace {
74#endif
75
77
80 {
104 };
105
107
110 {
113 };
114
119 {
120 kFBPropertyFlagNotSet = 0,
122 kFBPropertyFlagForceStaticProperty = (1 << 1),
123 kFBPropertyFlagDisableProperty = (1 << 2),
125 kFBPropertyFlagAnimated = (1 << 4),
127 kFBPropertyFlagReadOnly = (1 << 6),
128 kFBPropertyFlagNotUserDeletable = (1 << 7),
129 kFBValueAllocated = (1 << 8),
130 kFBDynamicHidden = (1 << 9),
131 kFBDrivenSetByMain = (1 << 10),
132 kFBLoadedUserProperty = (1 << 11)
133 };
134
139#define FB_DEFINE_COMPONENT( DllTag, Type ) \
140 class FB##Type; \
141 typedef class DllTag FBPropertyBase< FB##Type*,kFBPT_object > FBPropertyBase##Type; \
142 typedef class DllTag FBPropertyBaseComponent< FB##Type* > FBProperty##Type
143
148#define FB_DEFINE_ENUM( DllTag, Type ) \
149 typedef class DllTag FBPropertyBaseEnum< enum FB##Type > FBProperty##Type;
150
154#define FB_DEFINE_CLASS_ENUM( EnumName ) \
155 typedef class FBPropertyBaseEnum< enum __FBClassType::e##EnumName > Property##EnumName;
156
161#define FB_DEFINE_LIST( DllTag, Type ) \
162 typedef class DllTag FBPropertyBaseList< FB##Type* > FBPropertyBaseList##Type;
163
165 typedef void (*fbGetSetHandler)(void);
167 typedef void (*fbExternalGetSetHandler)(HIObject pObject);
168
171
193 {
195
196 protected:
200 void* mParent;
201
202 public:
205
206#ifndef DOXYGEN_SHOULD_SKIP_THIS
208 IObject_Declare(override);
209
211 FBProperty* InitInternal( KProperty* pProperty );
212
214 KProperty* GetInternal() const;
215
217 void* GetValuePtr() const;
218
220 FBProperty* CreateInternal( FBComponent* pParent, const char* pName, fbExternalGetSetHandler pGet = NULL, fbExternalGetSetHandler pSet = NULL);
221
223 FBProperty* CreateTextureConnectable( FBComponent* pParent, const char* pName );
224
226 void SetInternal( KProperty* pInternal );
227#endif
228
230 void SetEnable( bool pValue );
231
235 const char* GetName();
236
240 void SetName(const char *pName);
241
246
250 const char* GetPropertyTypeName();
251
255 virtual KDataType* GetDataType();
256
258
261 virtual void SetData( void* pData );
263
265
270 virtual void GetData( void* pData, int pSize, FBEvaluateInfo *pEvalInfo = NULL ) const;
272
276 int AsInt();
277
282 bool SetInt(int pInt);
283
288 virtual const char* AsString( FBDataAsStringFlag pFlag = kFBDataAsStringUI );
289
294 virtual bool SetString( const char* pString );
295
299 const char* OriValueAsString();
300
302 bool IsAnimated() const;
303
306 bool OriIsAnimated() const;
307
309
312 virtual bool IsList();
313 virtual bool IsAnimatable();
314 bool IsInternal() const;
315 bool IsUserProperty();
316 bool IsTextureConnectableProperty();
317 bool IsReferenceProperty();
319
323 bool IsMinClamp();
324
329
335
340 bool AcceptTemporaryProperty(const char* pEnumList[] = NULL, fbExternalGetSetHandler pGet=NULL, fbExternalGetSetHandler pSet=NULL);
341
346
350 virtual bool IsReadOnly();
351
356 virtual const char* EnumList( int pIndex );
357
362 FBStringList* GetEnumStringList(bool pCreateIt = false);
363
367
373 void ModifyPropertyFlag(FBPropertyFlag pFlag, bool pValue);
374
379
386
393 void SetMinMax( double pMin, double pMax, bool pForceMinClamp = false, bool pForceMaxClamp = false );
394
399 void SetMin( double pMin, bool pForceMinClamp = false );
400
405 void SetMax( double pMax, bool pForceMaxClamp = false );
406
410 double GetMin();
411
415 double GetMax();
416
420 inline void* GetParent() { return mParent; }
421
431
435 int GetSubMemberCount() const;
436
440 bool AllowsLocking() const;
441
445 bool HasSomethingLocked() const;
446
450 bool IsLocked() const;
451
456 bool IsMemberLocked( int pIndex ) const;
457
461 void SetLocked( bool pLocked );
462
467 void SetMemberLocked( int pIndex , bool pLocked );
468
470
475
476 private:
477 // FBProperty(FBProperty&); // Make sure no copy constructor is use
478 };
479
485 template<class T> inline T* FBCast(FBProperty* pProperty, bool pAutoCreate = false)
486 {
487 HIObject lProperty = pProperty ? FBGetFBObject(pProperty->GetHIObject(), pAutoCreate) : NULL;
488 // Should also validate type but not available for now
489 return (T*)lProperty;
490 }
491
493 FB_FORWARD( FBBox );
496
498 // PropertyEvent
501
513 {
514 protected:
515#ifndef DOXYGEN_SHOULD_SKIP_THIS
517 HIRegister mParentRegister;
519 int mType;
521 int mSubType;
522#endif
523 public:
526
535 FBPropertyEvent *Init( FBComponent* pComponent, HIRegister pParent,const char *pName, int pType, int pSubType=K_INT_MAX );
536
542 FBPropertyEvent *InitGlobal( const char* pName, const char* pGlobalEventName );
543
546
548
552 virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
553 virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
555
557 virtual void InvalidateParent();
558
562 virtual FBPropertyType GetPropertyType() override { return kFBPT_event; }
563
564 private:
565
566 DataFBPropertyEvent* mLocalPtr;
567 };
568
571 {
572 public:
573 virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
574 virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
575 };
576
579 {
580 public:
581 virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
582 virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
583 };
584
587 {
588 public:
589 virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
590 virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
591 };
592
595 {
596 public:
597 virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
598 virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
599 };
600
603 {
604 public:
605 virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
606 virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
607 };
608
611 {
612 public:
613 virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
614 virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
615 };
616
620 template <class tType, FBPropertyType pPT> class FBPropertyBase : public FBProperty
621 {
622 protected:
623#ifndef DOXYGEN_SHOULD_SKIP_THIS
624 void (* Set)(void *, tType);
625 tType (* Get)(void *);
626#endif
627 public:
628
630 typedef tType ValueType;
631
633 inline FBPropertyBase() { Set = NULL; Get = NULL; }
634
638 inline FBPropertyBase(const FBPropertyBase<tType,pPT> &pValue) { operator=((tType)pValue ); }
639
642 {
643 }
644
652 inline FBPropertyBase *Init( void* pParent, const char *pName,tType (* pGet)(void *)=NULL,void (* pSet)(void *,tType)=NULL )
653 {
654 mParent = pParent;
655 mName = pName ;
656 Get = pGet;
657 Set = pSet;
658 return this;
659 }
660
662
666 inline void operator=(tType pValue) { SetData( &pValue ); }
668
670
674 inline void operator=(const FBPropertyBase<tType,pPT> &pProperty) { operator=((tType)pProperty ); }
676
681 inline operator tType() const { tType Value; GetData( &Value,sizeof(Value) ); return Value; }
682
686 virtual FBPropertyType GetPropertyType( ) override { return pPT; }
687
691 inline virtual void SetPropertyValue( tType pValue )
692 {
693 if(IsInternal() && GetValuePtr())
694 {
695 *(tType*)GetValuePtr() = pValue;
696 }
697 }
698
702 inline tType GetPropertyValue( )
703 {
704 if(IsInternal() && GetValuePtr())
705 {
706 return *(tType*)GetValuePtr();
707 } else
708 {
709 return (tType)0;
710 }
711 }
712
717 inline virtual bool IsReadOnly() override { return IsInternal() ? (FBProperty::IsReadOnly()) : (Set == NULL); }
718
722 inline virtual void GetData(void* pData, int pSize, FBEvaluateInfo *pEvalInfo = NULL) const override
723 {
724 if(Get)
725 {
726 *((tType*)pData) = (*Get)(mParent);
727 }
728 else if (IsInternal())
729 {
730 FBProperty::GetData( pData, pSize, pEvalInfo );
731 }
732 else
733 {
734 assert(Get != NULL || IsInternal());
735 *((tType*)pData) = (tType)0;
736 }
737 }
741 inline virtual void SetData(void* pData) override
742 {
743 if(Set)
744 {
745 (*Set)( mParent,*(tType*)pData );
746 }
747 else if (IsInternal())
748 {
749 FBProperty::SetData( pData );
750 }
751 else
752 {
753 assert( Set != NULL || IsInternal() );
754 }
755 }
756 };
757
762 template <class tType> class FBPropertyBaseEnum : public FBPropertyBase<tType,kFBPT_enum>
763 {
764 public:
765#ifndef DOXYGEN_SHOULD_SKIP_THIS
767 static const char *mStrings[];
768#endif
771
773 inline ~FBPropertyBaseEnum()=default;
774
779 FBPropertyBase<tType,kFBPT_enum>(pValue)
780 { operator=((tType)pValue ); }
781
783
787 inline void operator=(tType pValue) { this->SetData( &pValue ); }
789
794 inline operator tType() const { tType Value; this->GetData( &Value,sizeof(Value) ); return Value; }
795
796 virtual const char* EnumList( int pIndex ) override
797 {
798 if( FBPropertyBaseEnum::IsInternal() )
799 {
800 return FBProperty::EnumList( pIndex );
801 }
802 // NOTE:
803 // --> replacing test for if(mStrings) by if(mStrings[0])
804 // This is safe to do as we should always have at least 1 item
805 // in the list based on our base class implementation. And
806 // the compiler should throw a linker error if mStrings is not found.
807 // mStrings[0] == NULL for enum kDefaultEnum but mStrings can never be NULL
808 else if(mStrings[0])
809 {
810 return mStrings[pIndex];
811 }
812 else
813 {
814 assert(mStrings[0] || FBPropertyBaseEnum::IsInternal());
815 return NULL;
816 }
817 }
818
823 virtual const char* AsString( FBDataAsStringFlag pFlag = kFBDataAsStringUI ) override { return EnumList( FBPropertyBaseEnum::AsInt() );}
824
829 virtual bool SetString( const char *pString ) override
830 {
831 int count=0;
832 const char * tmpstr;
833 while ((tmpstr=EnumList( count ))!=NULL) {
834 if (strcmp(tmpstr,pString)==0) {
836 return true;
837 }
838 count++;
839 }
840 return false;
841 }
842
843 };
844
845
850 {
851 public:
859 FBPropertyBasicList( HIObject pParent, const char *pName );
864 FBProperty* Init( void* pParent, const char *pName );
865
867 void RemoveAll();
868
873 virtual int GetCount()=0;
874
879 virtual void RemoveAt( int pIndex )=0;
880
884 virtual bool IsList();
885 };
886
890 template <class tType> class FBPropertyBaseList : public FBPropertyBasicList
891 {
892 public:
895
898 {
899
900 }
905 FBPropertyBaseList( HIObject pParent, const char *pName ):FBPropertyBasicList( pParent, pName ) {}
906
907 public:
908 //***
909 //--- These functions require overloads in derived classes.
910 //***
911
917 virtual int Add( tType pItem )=0;
918
924 virtual tType operator[]( int pIndex )=0;
925
926 public:
927 //***
928 //--- These functions can be optionally overloaded in derived classes.
929 //***
930
935 inline virtual int Find( tType pItem )
936 {
937 int Index;
938 for(Index=0; Index<GetCount(); Index++ )
939 {
940 if( operator[](Index)==pItem )
941 {
942 return Index;
943 }
944 }
945 return -1;
946 }
947
952 inline virtual int Remove( tType pItem )
953 {
954 int Index = Find( pItem );
955 if (Index!=-1)
956 {
957 RemoveAt( Index );
958 }
959 return Index;
960 }
961
966 inline virtual tType GetAt(int pIndex)
967 {
968 return operator[](pIndex);
969 }
970 };
971
975 };
976
977
984
987 {
988 public:
991
994
1000 FBPropertyStringList* Init( FBComponent* pComponent, const char *pName );
1001
1002 public:
1007 kReference GetReferenceAt( int pIndex );
1012 void SetReferenceAt( int pIndex,kReference pRef );
1013
1018 int Find( kReference pRef );
1019
1024 int Find( const char *S );
1025
1030 virtual const char *GetAt( int pIndex );
1031
1037 const char *operator[](int pIndex);
1038
1040 void Sort( );
1041
1046
1051 int Remove( const char *S );
1052
1053 public: // Needs to be overriden for special behaviors
1059 virtual int Add( const char *S,kReference pRef = 0 );
1060
1062 virtual void Clear();
1063
1067 virtual void RemoveAt( int pIndex );
1068
1073 virtual int IndexOf(const char *S);
1074
1080 virtual void InsertAt( int pIndex, const char *S,kReference pRef = 0 );
1081
1087 virtual bool SetAt( int pIndex,const char *pString );
1088
1092 virtual bool IsList() override;
1093
1098 virtual const char* AsString( FBDataAsStringFlag pFlag = kFBDataAsStringUI ) override;
1099
1104 virtual bool SetString( const char *pString ) override;
1105
1109 virtual FBPropertyType GetPropertyType() override { return kFBPT_stringlist; }
1110 };
1111
1113 // FBPropertyManager
1116
1123 {
1124 public:
1127
1130
1135 int Add( FBProperty* Property );
1136
1143
1148
1155 FBProperty* Find( const char *pPropertyName, bool pMultilangLookup=true );
1156
1163 void FindPropertiesByName( const char* pPropertyNamePattern, FBArrayTemplate<FBProperty*>& pPropList, bool pMultilangLookup=true );
1164
1169 int Remove( FBProperty* pProperty );
1170
1175 void AddToCache( FBProperty* pProperty );
1176
1181 void RemoveFromCache( KProperty* pProperty );
1182
1188 FBProperty* FindInCache( KProperty* pProperty );
1189
1190 private:
1194 void ClearCache();
1195
1200 void SetParent( HIObject pParent );
1201
1202#ifndef DOXYGEN_SHOULD_SKIP_THIS
1203 KObject* mObject;
1204 FBArrayTemplate< FBProperty* > mPropertyCache;
1205 FBArrayTemplate< FBProperty* > mPropertyLocal;
1206#endif
1207 friend class FBComponent;
1208 friend class FBVisualComponent;
1209 };
1210
1214 template <class tType> class FBPropertyBaseComponent : public FBPropertyBase< tType, kFBPT_object >
1215 {
1216 public:
1219 public:
1222
1227 FBPropertyBase< tType, kFBPT_object >(pValue)
1229
1232 {
1233 }
1234
1236
1239 inline void operator=(tType pValue) { FBPropertyBase< tType,kFBPT_object >::operator=(pValue); }
1241
1245 inline tType operator -> () { return FBPropertyBase< tType,kFBPT_object >::operator tType(); }
1246
1250 inline operator tType() const { return FBPropertyBase< tType,kFBPT_object >::operator tType(); }
1251 };
1252
1257#define FBImplementPropertyComponent( DllTag, Type ) \
1258 template class DllTag FBSDKNamespaceFunc(FBPropertyBase)< FB##Type*,kFBPT_object >; \
1259 template class DllTag FBSDKNamespaceFunc(FBPropertyBaseComponent)< FB##Type* >;
1260
1265#define FBImplementPropertyEnum( DllTag, Type ) \
1266 template class DllTag FBSDKNamespaceFunc(FBPropertyBaseEnum)< enum FB##Type >
1267#define FBImplementClassPropertyEnum( DllTag, Class, EnumName ) \
1268 template class DllTag FBSDKNamespaceFunc(FBPropertyBaseEnum)< enum Class::E##EnumName >
1269
1274#define FBImplementPropertyList( DllTag, Type ) \
1275 template class DllTag FBSDKNamespaceFunc(FBPropertyBaseList) < FB##Type* >
1276
1278 class FBSDK_DLL FBPropertyString : public FBPropertyBase< const char *, kFBPT_charptr >
1279 {
1280 public:
1281
1283
1287 inline void operator=(const char* pValue) { SetData( &pValue ); }
1289
1294 inline operator const char* () const { char* Value; GetData( &Value,sizeof(Value) ); return Value; }
1295
1296 inline bool operator==(const char* pValue) const { char* Value; GetData( &Value,sizeof(Value) ); return (Value == pValue) || (strcmp(Value, pValue) == 0); }
1297 inline bool operator!=(const char* pValue) const { return ! operator==(pValue); }
1298
1302 virtual void SetPropertyValue( const char* pValue ) override;
1303 };
1304
1307
1311 class FBSDK_DLL FBPropertyAction : public FBPropertyBase< bool, kFBPT_Action >
1312 {
1313 public:
1316
1319 {
1320 }
1321
1325 bool operator ()();
1326 };
1327
1330
1333
1335 typedef class FBSDK_DLL FBPropertyBase< unsigned long long,kFBPT_uint64 > FBPropertyUInt64;
1336
1339
1342
1345
1348
1351
1354
1365
1373#define FBPropertyInit( Param,Type,PropName,Get,Set ) \
1374 { \
1375 PropertyAdd(PropName.Init( (void*)Param,#PropName,(Type (*)(void *))Get,(void (*)(void *,Type))Set )); \
1376 }
1377
1382#define FBPropertyInitList( Param,PropName ) \
1383 { \
1384 PropertyAdd(PropName.Init( Param,#PropName )); \
1385 }
1386
1391#define FBPropertyInitStringList( Param,PropName ) \
1392 { \
1393 PropertyAdd(PropName.Init( Param, #PropName )); \
1394 }
1395
1402#define FBPropertyInitEvent( Param,Type,SubType,PropName ) \
1403 { \
1404 PropertyAdd(PropName.Init( this, IQ(Param,IRegister),#PropName,Type,SubType )); \
1405 }
1406
1411#define FBPropertyInitEventGlobal( GlobalEventName,PropName ) \
1412 { \
1413 PropertyAdd(PropName.InitGlobal( #PropName,GlobalEventName )); \
1414 }
1415
1417#define FBPropertyInitInternal( Parent, PropName, MBProperty ) \
1418 {\
1419 PropertyAdd(PropName.InitInternal( MBProperty ));\
1420 }
1421
1423#define FBPropertyInitInternalEnum( Param,Type,PropName,MBProperty,Get,Set ) \
1424 {\
1425 PropName.InitInternal( MBProperty ); \
1426 PropertyAdd(PropName.Init( (void*)Param,#PropName,(Type (*)(void *))Get,(void (*)(void *,Type))Set )); \
1427 }
1428
1436#define FBPropertyPublish( Parent,Prop,PropName,Get,Set ) \
1437 { \
1438 PropertyAdd(Prop.CreateInternal( Parent,PropName,(fbExternalGetSetHandler)Get,(fbExternalGetSetHandler)Set )); \
1439 }
1440
1447#define FBPropertyInitTextureConnectable( Parent,Prop,PropName ) \
1448 { \
1449 PropertyAdd(Prop.CreateTextureConnectable( Parent,PropName )); \
1450 }
1451
1480 {
1481 public:
1485
1489
1490 public:
1491#ifndef DOXYGEN_SHOULD_SKIP_THIS
1493 FBPropertyAnimatable* InitInternal( KEvaluationProperty* pProperty );
1494#endif
1502 FBPropertyAnimatable* Init( FBBox* pOwner, const char* pName, const char* pType, double* pInit );
1503
1507 void Destroy();
1508
1512 virtual KDataType* GetDataType() override;
1513
1517 const char* GetDataTypeName();
1518
1523
1527 void SetFocus( bool pState );
1528
1531 void Key();
1532
1536 void KeyAt( FBTime pTime );
1537
1541 void KeyRemoveAt( FBTime pTime );
1542
1546 int GetDataSize() const;
1547
1549
1552 virtual bool IsAnimatable() override { return true; }
1553
1559
1564 void SetAnimated( bool pState, bool pCheckLocked = false );
1565
1571
1576
1580 virtual void SetData( void* pData ) override;
1581
1585 virtual void GetData( void* pData, int pSize, FBEvaluateInfo* pEvalInfo = NULL ) const override;
1586
1592 void SetCandidate( void* pData, int pSize, FBEvaluateInfo* pEvalInfo = NULL );
1593
1599 void SetGlobalCandidate( void* pData, int pSize, FBEvaluateInfo* pEvalInfo = NULL );
1600
1601
1610
1614 bool AllowsMuting() const;
1615
1619 bool HasSomethingMuted() const;
1620
1624 bool IsMuted() const;
1625
1630 bool IsMemberMuted( int pIndex ) const;
1631
1635 void SetMuted( bool pMuted );
1636
1641 void SetMemberMuted( int pIndex , bool pMuted );
1642
1648 bool SetColor(const FBColor& pColor, int pIndex);
1649
1654 FBColor GetColor(int pIndex);
1655
1660 bool ResetColor(int pIndex);
1661
1666 bool IsFocusedChild(int pIndex);
1667
1673 bool SetFocusChild(int pIndex, bool pState);
1674
1676
1677 };
1678
1682 template <class tType, FBPropertyType pPT> class FBSDK_DLL FBPropertyBaseAnimatable : public FBPropertyAnimatable
1683 {
1684 public:
1685
1687 typedef tType ValueType;
1688
1692 {
1694 }
1695
1698
1700
1703 void operator=(tType pValue)
1704 {
1706 }
1708
1712 operator tType() const
1713 {
1714 tType val;
1715 FBPropertyAnimatable::GetData(&val,sizeof(val));
1716 return val;
1717 }
1718
1722 virtual FBPropertyType GetPropertyType( ) override { return pPT; }
1723 };
1724
1725
1787 template <class tType> class FBPropertyBaseAnimatableEnum : public FBPropertyBaseAnimatable<int,kFBPT_enum>
1788 {
1789 public:
1790#ifndef DOXYGEN_SHOULD_SKIP_THIS
1792 static const char *mStrings[];
1793#endif
1794
1797
1800 {
1801 }
1802
1806 inline FBPropertyBaseAnimatableEnum(const FBPropertyBaseAnimatableEnum<tType> &pValue) { operator=((tType)pValue ); }
1807
1809
1813 inline void operator=(tType pValue) { SetData( &pValue ); }
1815
1820 inline operator tType() const { tType Value; GetData( &Value,sizeof(Value) ); return Value; }
1821
1822 virtual const char* EnumList( int pIndex ) override
1823 {
1824 if( IsInternal() )
1825 {
1826 return FBProperty::EnumList( pIndex );
1827 }
1828 // NOTE:
1829 // --> replacing test for if(mStrings) by if(mStrings[0])
1830 // This is safe to do as we should always have at least 1 item
1831 // in the list based on our base class implementation. And
1832 // the compiler should throw a linker error if mStrings is not found.
1833 // mStrings[0] == NULL for enum kDefaultEnum but mStrings can never be NULL
1834 else if(mStrings[0])
1835 {
1836 return mStrings[pIndex];
1837 }
1838 else
1839 {
1840 assert(mStrings[0] || IsInternal());
1841 return NULL;
1842 }
1843 }
1844
1849 virtual const char* AsString( FBDataAsStringFlag pFlag = kFBDataAsStringUI ) override { return EnumList( AsInt() );}
1850
1855 virtual bool SetString( const char *pString ) override
1856 {
1857 int Count=0;
1858 const char * tmpstr;
1859 while ((tmpstr=EnumList( Count ))!=NULL) {
1860 if (strcmp(tmpstr,pString)==0) {
1861 SetData( &Count );
1862 return true;
1863 }
1864 Count++;
1865 }
1866 return false;
1867 }
1868
1869
1870 };
1871
1873 // Global
1875#ifdef FBSDKUseNamespace
1876}
1877#endif
1878
1879#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
Color and alpha vector.
Definition: fbtypes.h:490
Color vector.
Definition: fbtypes.h:448
MotionBuilder SDK base class.
Definition: fbcomponent.h:668
AnimationNodeNotify evaluation information.
Connections Basic Open Reality SDK Element.
Definition: fbplug.h:222
Property: Action Action property to trigger function.
FBPropertyAction()
Constructor.
~FBPropertyAction()
Destructor.
Animatable property base class.
bool IsFocused()
Is the property focused (keyable).
const char * GetDataTypeName()
Get the property datatype name.
FBPropertyAnimatable()
Constructor.
FBAnimationNode * GetAnimationNode(FBTake *pTake=NULL)
Get the animation node for the property.
void SetGlobalCandidate(void *pData, int pSize, FBEvaluateInfo *pEvalInfo=NULL)
Set the global candidate (useful for model TRS).
int GetDataSize() const
Get the data size (number of values) for the connector.
bool HasSomethingMuted() const
HasSomethingMuted.
void SetMemberMuted(int pIndex, bool pMuted)
SetMemberMuted.
bool SetFocusChild(int pIndex, bool pState)
Set the focus (keyable) state of child component.
virtual void SetData(void *pData) override
Set the value of the property, passing the type as an argument.
void SetCandidate(void *pData, int pSize, FBEvaluateInfo *pEvalInfo=NULL)
Set the candidate.
void Key()
Key the property.
bool SetColor(const FBColor &pColor, int pIndex)
Set the color of the FCurves for the property.
virtual ~FBPropertyAnimatable()
Destructor.
bool IsFocusedChild(int pIndex)
Get the focus (keyable) state of child component.
bool ResetColor(int pIndex)
Revert the FCurves to their default color.
virtual bool IsAnimatable() override
Certify that the property is animatable.
bool AllowsMuting() const
AllowsMuting.
void SetMuted(bool pMuted)
SetMuted.
bool IsMemberMuted(int pIndex) const
IsMemberMuted.
bool IsAnimated()
Is the property animated.
void SetFocus(bool pState)
Set the property's focus (keyable) state.
void KeyAt(FBTime pTime)
Key the property at time (t).
virtual void GetData(void *pData, int pSize, FBEvaluateInfo *pEvalInfo=NULL) const override
Get the value of a property.
FBColor GetColor(int pIndex)
Get the color of a particular FCurve of the property.
void KeyRemoveAt(FBTime pTime)
Remove the key at time (t).
void SetAnimated(bool pState, bool pCheckLocked=false)
Set the animation state of the property.
void Destroy()
Destruction function, for internal connectors.
virtual KDataType * GetDataType() override
Get the property datatype pointer.
FBBox * GetBox()
Get the owner box.
FBPropertyAnimatable * Init(FBBox *pOwner, const char *pName, const char *pType, double *pInit)
Initialization function (custom).
bool IsMuted() const
IsMuted.
~FBPropertyBaseAnimatableEnum()
Destructor.
FBPropertyBaseAnimatableEnum(const FBPropertyBaseAnimatableEnum< tType > &pValue)
FBPropertyBaseAnimatableEnum.
virtual const char * AsString(FBDataAsStringFlag pFlag=kFBDataAsStringUI) override
Get as string.
virtual bool SetString(const char *pString) override
Set string as enum value.
void operator=(tType pValue)
Overloaded = operator.
virtual const char * EnumList(int pIndex) override
Return the string of an enum value.
FBPropertyBaseAnimatableEnum()
Constructor.
tType ValueType
Property Value Type.
FBPropertyBaseAnimatable()
Constructors.
~FBPropertyBaseAnimatable()
Destructor.
void operator=(tType pValue)
Overloaded = operator.
virtual FBPropertyType GetPropertyType() override
Get the property's type.
FBPropertyBaseComponent()
Constructor.
void operator=(tType pValue)
Overloaded = operator.
FBPropertyBaseComponent(const FBPropertyBaseComponent< tType > &pValue)
Constructor.
~FBPropertyBaseComponent()
Destructor.
int * TypeInfo
< Type information.
virtual const char * AsString(FBDataAsStringFlag pFlag=kFBDataAsStringUI) override
Get as string.
Definition: fbproperties.h:823
virtual bool SetString(const char *pString) override
Set enum value by equivalent string.
Definition: fbproperties.h:829
void operator=(tType pValue)
Overloaded = operator.
Definition: fbproperties.h:787
virtual const char * EnumList(int pIndex) override
Return the string of an enum value.
Definition: fbproperties.h:796
FBPropertyBaseEnum(const FBPropertyBaseEnum< tType > &pValue)
FBPropertyBaseEnum.
Definition: fbproperties.h:778
~FBPropertyBaseEnum()=default
Destructor.
FBPropertyBaseEnum()=default
Constructor.
tType GetPropertyValue()
Get the value of the internal property.
Definition: fbproperties.h:702
tType ValueType
Property Value Type.
Definition: fbproperties.h:630
virtual void SetData(void *pData) override
Set value.
Definition: fbproperties.h:741
FBPropertyBase(const FBPropertyBase< tType, pPT > &pValue)
Constructor.
Definition: fbproperties.h:638
void operator=(const FBPropertyBase< tType, pPT > &pProperty)
Overloaded = operator.
Definition: fbproperties.h:674
FBPropertyBase()
Constructor.
Definition: fbproperties.h:633
void operator=(tType pValue)
Overloaded = operator.
Definition: fbproperties.h:666
virtual void SetPropertyValue(tType pValue)
Set the value of the internal property.
Definition: fbproperties.h:691
~FBPropertyBase()
Destructor.
Definition: fbproperties.h:641
virtual void GetData(void *pData, int pSize, FBEvaluateInfo *pEvalInfo=NULL) const override
Get value.
Definition: fbproperties.h:722
virtual bool IsReadOnly() override
Is this class read-only? If there is an existing set function, this class is read/write,...
Definition: fbproperties.h:717
virtual FBPropertyType GetPropertyType() override
Get the property's type.
Definition: fbproperties.h:686
FBPropertyBase * Init(void *pParent, const char *pName, tType(*pGet)(void *)=NULL, void(*pSet)(void *, tType)=NULL)
Initialization function.
Definition: fbproperties.h:652
virtual int Find(tType pItem)
Locate a property in the list.
Definition: fbproperties.h:935
~FBPropertyBaseList()
Destructor.
Definition: fbproperties.h:897
virtual tType operator[](int pIndex)=0
[] operator overload.
virtual int Remove(tType pItem)
Remove pItem from the list.
Definition: fbproperties.h:952
FBPropertyBaseList()
Constructor.
Definition: fbproperties.h:894
FBPropertyBaseList(HIObject pParent, const char *pName)
Constructor.
Definition: fbproperties.h:905
virtual int Add(tType pItem)=0
Add a property to the list.
virtual tType GetAt(int pIndex)
Get a property at pIndex.
Definition: fbproperties.h:966
virtual int GetCount()=0
Get the number of properties in the list.
FBProperty * Init(void *pParent, const char *pName)
Initialization function.
virtual bool IsList()
Is this a list?
void RemoveAll()
Remove all properties from the list.
FBPropertyBasicList()
Constructor.
virtual void RemoveAt(int pIndex)=0
Remove property at pIndex.
FBPropertyBasicList(HIObject pParent, const char *pName)
Constructor.
PropertyEvent: Global ConnectionDataNotify event.
Definition: fbproperties.h:595
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
PropertyEvent: Global KeyingNotify event.
Definition: fbproperties.h:611
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
PropertyEvent: Global ConnectionNotify event.
Definition: fbproperties.h:587
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
PropertyEvent: Global ConnectionStateNotify event.
Definition: fbproperties.h:603
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
PropertyEvent: Base event class.
Definition: fbproperties.h:513
virtual ~FBPropertyEvent()
Destructor.
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
FBPropertyEvent * InitGlobal(const char *pName, const char *pGlobalEventName)
Property initialization function, for global events.
FBPropertyEvent()
Constructor.
virtual void InvalidateParent()
Invalidate parent, removing internal register parent.
virtual FBPropertyType GetPropertyType() override
Get the property's type.
Definition: fbproperties.h:562
FBPropertyEvent * Init(FBComponent *pComponent, HIRegister pParent, const char *pName, int pType, int pSubType=K_INT_MAX)
Property initialization function.
PropertyEvent: UI idle event.
Definition: fbproperties.h:571
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
PropertyEvent: Video Frame Rendering Event
Definition: fbproperties.h:579
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
Property: Base property class.
Definition: fbproperties.h:193
FBProperty * GetReferencedProperty()
Get the referenced property, in the case of this property is a reference property (see the IsReferenc...
const char * GetPropertyTypeName()
Get the property's type name.
virtual FBPropertyType GetPropertyType()
Get the property's type.
bool OriIsAnimated() const
Get the property original animated flag status (before any modification)
bool IsAnimated() const
Get the property animated flag status.
int GetSubMemberCount() const
GetSubMemberCount.
bool HasSomethingLocked() const
HasSomethingLocked.
FBStringList * GetEnumStringList(bool pCreateIt=false)
String list for enum properties.
bool AllowsLocking() const
AllowsLocking.
virtual const char * EnumList(int pIndex)
Return the string of an enum value.
bool IsTemporaryProperty()
Indicate if a property was created on retrieve because it didn't exist.
int AsInt()
Get the property as an integer.
virtual KDataType * GetDataType()
Get the property datatype pointer.
bool IsObjectList()
Indicate if is an instance of FBPropertyListObject.
void SetMin(double pMin, bool pForceMinClamp=false)
SetMin.
FBString mName
Definition: fbproperties.h:198
virtual bool SetString(const char *pString)
Set the property value from a string.
double GetMax()
GetMax.
virtual bool IsList()
Verify if property is of this type.
void SetName(const char *pName)
Set the property's name.
bool IsLocked() const
IsLocked.
bool GetPropertyFlag(FBPropertyFlag pFlag)
GetPropertyFlag.
void SetLocked(bool pLocked)
SetLocked.
void SetEnable(bool pValue)
Set property enable status.
void SetMinMax(double pMin, double pMax, bool pForceMinClamp=false, bool pForceMaxClamp=false)
SetMinMax.
bool AcceptTemporaryProperty(const char *pEnumList[]=NULL, fbExternalGetSetHandler pGet=NULL, fbExternalGetSetHandler pSet=NULL)
Accept a temporary property as a dynamic property.
virtual void GetData(void *pData, int pSize, FBEvaluateInfo *pEvalInfo=NULL) const
Get the value of a property.
const char * GetName()
Get the property's name.
double GetMin()
GetMin.
bool IsMaxClamp()
Indicate if maximum value clamping will be applied on user input value.
bool IsMinClamp()
Indicate if minimum value clamping will be applied on user input value.
virtual const char * AsString(FBDataAsStringFlag pFlag=kFBDataAsStringUI)
Get the property value as a string.
FBPropertyFlag GetPropertyFlags()
GetPropertyFlags.
void ModifyPropertyFlag(FBPropertyFlag pFlag, bool pValue)
ModifyPropertyFlag.
void * GetParent()
Get the parent of the object.
Definition: fbproperties.h:420
void NotifyEnumStringListChanged()
Notify system that the enum list was modified.
void * mParent
Definition: fbproperties.h:200
bool SetInt(int pInt)
Set the property from an integer.
virtual bool IsReadOnly()
Is property read-only?
bool IsMemberLocked(int pIndex) const
IsMemberLocked.
FBProperty()
Constructor.
void SetMax(double pMax, bool pForceMaxClamp=false)
SetMax.
void SetMemberLocked(int pIndex, bool pLocked)
SetMemberLocked.
virtual void SetData(void *pData)
Set the value of the property, passing the type as an argument.
const char * OriValueAsString()
Get the property original value (before any modification) as string.
Property Manager.
FBProperty * operator[](int pIndex)
Overloaded [] operator.
int Add(FBProperty *Property)
Add a property to the property manager.
FBPropertyManager()
Constructor.
void FindPropertiesByName(const char *pPropertyNamePattern, FBArrayTemplate< FBProperty * > &pPropList, bool pMultilangLookup=true)
This function will query the property list for properties fulfilling a particular name pattern.
FBProperty * Find(const char *pPropertyName, bool pMultilangLookup=true)
Find a property, based on its name.
int GetCount()
Get the number of properties stored in property manager.
int Remove(FBProperty *pProperty)
Remove a property.
~FBPropertyManager()
Destructor.
Property class: const char * (String).
virtual void SetPropertyValue(const char *pValue) override
Set the value of the internal property.
void operator=(const char *pValue)
Overloaded = operator.
Property: StringList
Definition: fbproperties.h:987
virtual void RemoveAt(int pIndex)
Remove an entry at pIndex.
FBPropertyStringList()
Constructor.
virtual void InsertAt(int pIndex, const char *S, kReference pRef=0)
Insert an entry at pIndex.
kReference GetReferenceAt(int pIndex)
Get the reference at pIndex.
virtual void Clear()
Clear the list (remove all the items).
virtual const char * AsString(FBDataAsStringFlag pFlag=kFBDataAsStringUI) override
Get as string.
int Find(const char *S)
Find the index of a string.
virtual bool SetString(const char *pString) override
Set string for list.
virtual bool IsList() override
Is this class a list?
virtual int IndexOf(const char *S)
Get the index of a string.
int Find(kReference pRef)
Find the index of a reference.
virtual ~FBPropertyStringList()
Destructor.
int GetCount()
Get the number of items in the list.
virtual const char * GetAt(int pIndex)
Get the string stored at pIndex.
virtual int Add(const char *S, kReference pRef=0)
Add a string to the list.
FBPropertyStringList * Init(FBComponent *pComponent, const char *pName)
Property initialization function.
void SetReferenceAt(int pIndex, kReference pRef)
Set reference at pIndex.
const char * operator[](int pIndex)
[] operator overload.
int Remove(const char *S)
Remove a string from the list.
virtual bool SetAt(int pIndex, const char *pString)
Set the string at pIndex.
virtual FBPropertyType GetPropertyType() override
Get the property's type.
void Sort()
Sort list ascending.
Basic string class.
Definition: fbstring.h:67
String list.
Definition: fbstring.h:208
A take is a container for animation in a scene.
Definition: fbdata.h:1727
TimeCode data structure.
Definition: fbtime.h:308
Time data structure.
Definition: fbtime.h:88
TimeSpan class.
Definition: fbtime.h:410
Visual Component base class.
Definition: fbcontrols.h:324
A template class for arrays.
T * FBCast(FBObject *pObject, bool pAutoCreate=false)
Cast the SDK object using it's IObject interface into the proper class.
Definition: fbcomponent.h:904
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
#define FBClassDeclare(Name, Parent)
Class declaration.
Definition: fbdefines.h:85
Definition of the class FBPlug and related enums and utility functions.
K_DLLIMPORT HIObject FBGetFBObject(HIObject pObject, bool pAutoCreate=false)
Get the SDK object from an Internal Object.
class K_DLLIMPORT FBPropertyBaseAnimatable< FBVector3d, kFBPT_Vector3D > FBPropertyAnimatableVector3d
FBPropertyAnimatableVector3D type definition.
FBPropertyFlag
Available flags for FBProperty objects.
Definition: fbproperties.h:119
@ kFBDrivenSetByMain
Driven property can be modified, valid only when the main property is modified.
Definition: fbproperties.h:131
@ kFBLoadedUserProperty
This property is loaded from file.
Definition: fbproperties.h:132
@ kFBDynamicHidden
This flag is used to show/hide the property in the propertiview. When turn on/ff DynamicHidden flag,...
Definition: fbproperties.h:130
@ kFBPropertyFlagDrivenProperty
This is property is connected and driven by other same type of main property, and it always ask value...
Definition: fbproperties.h:124
@ kFBPropertyFlagHideProperty
This flag is used to show/hide the property in the propertiview. However, when turn on/off HideProper...
Definition: fbproperties.h:121
@ kFBPropertyFlagNotSavable
Should not be saved to or loaded from an FBX file.
Definition: fbproperties.h:126
@ kFBValueAllocated
The value has been allocated and must be delete in destructor.
Definition: fbproperties.h:129
class K_DLLIMPORT FBPropertyBaseAnimatable< unsigned long long, kFBPT_uint64 > FBPropertyAnimatableUInt64
FBPropertyAnimatableUInt64 type definition.
class K_DLLIMPORT FBPropertyBase< kReference, kFBPT_kReference > FBPropertykReference
Property: kReference
class K_DLLIMPORT FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
class K_DLLIMPORT FBPropertyBase< FBProperty *, kFBPT_Reference > FBPropertyReference
Property: FBProperty *
class K_DLLIMPORT FBPropertyBaseAnimatable< bool, kFBPT_Action > FBPropertyAnimatableAction
FBPropertyAnimatableAction type definition.
class K_DLLIMPORT FBPropertyBaseAnimatable< FBColor, kFBPT_ColorRGB > FBPropertyAnimatableColor
FBPropertyAnimatableColor type definition.
class K_DLLIMPORT FBPropertyBase< FBColorAndAlpha, kFBPT_ColorRGBA > FBPropertyColorAndAlpha
FBPropertyColorAndAlpha type definition.
class K_DLLIMPORT FBPropertyBaseAnimatable< int, kFBPT_enum > FBPropertyAnimatableEnum
FBPropertyBaseAnimatableEnum type definition.
FBPropertyType
Property types.
Definition: fbproperties.h:80
@ kFBPT_Action
action.
Definition: fbproperties.h:99
@ kFBPT_object
object.
Definition: fbproperties.h:92
@ kFBPT_event
event.
Definition: fbproperties.h:93
@ kFBPT_ColorRGB
colorrgb.
Definition: fbproperties.h:97
@ kFBPT_uint64
unsigned int 64 bits.
Definition: fbproperties.h:84
@ kFBPT_enum
enum.
Definition: fbproperties.h:89
@ kFBPT_unknown
unknow.
Definition: fbproperties.h:81
@ kFBPT_Vector4D
vector4d.
Definition: fbproperties.h:95
@ kFBPT_ColorRGBA
colorrgba.
Definition: fbproperties.h:98
@ kFBPT_kReference
kReference.
Definition: fbproperties.h:102
@ kFBPT_bool
bool.
Definition: fbproperties.h:85
@ kFBPT_float
float.
Definition: fbproperties.h:86
@ kFBPT_Time
time.
Definition: fbproperties.h:90
@ kFBPT_charptr
charptr.
Definition: fbproperties.h:88
@ kFBPT_TimeCode
timecode.
Definition: fbproperties.h:91
@ kFBPT_stringlist
stringlist.
Definition: fbproperties.h:94
@ kFBPT_double
double.
Definition: fbproperties.h:87
@ kFBPT_Vector3D
vector3d.
Definition: fbproperties.h:96
@ kFBPT_Vector2D
vector2d.
Definition: fbproperties.h:103
@ kFBPT_Reference
reference.
Definition: fbproperties.h:100
@ kFBPT_int
int.
Definition: fbproperties.h:82
@ kFBPT_TimeSpan
timespan.
Definition: fbproperties.h:101
@ kFBPT_int64
int 64 bits.
Definition: fbproperties.h:83
class K_DLLIMPORT FBPropertyBaseAnimatable< int, kFBPT_int > FBPropertyAnimatableInt
FBPropertyAnimatableInt type definition.
class K_DLLIMPORT FBPropertyBaseAnimatable< double, kFBPT_double > FBPropertyAnimatableDouble
FBPropertyBaseAnimatableDouble type definition.
class K_DLLIMPORT FBPropertyBaseAnimatable< bool, kFBPT_bool > FBPropertyAnimatableBool
FBPropertyAnimatableBool type definition.
class K_DLLIMPORT FBPropertyBase< FBVector3d, kFBPT_Vector3D > FBPropertyVector3d
FBPropertyVector3d type definition.
class K_DLLIMPORT FBPropertyBase< FBPlug *, kFBPT_object > _FBPropertyBasePlug
Property: FBPropertyBase(FBPlug*)
class K_DLLIMPORT FBPropertyBaseComponent< FBComponent * > FBPropertyComponent
Property: FBPropertyBaseComponent(FBComponent*)
class K_DLLIMPORT FBPropertyBaseAnimatable< FBColorAndAlpha, kFBPT_ColorRGBA > FBPropertyAnimatableColorAndAlpha
FBPropertyAnimatableColorAndAlpha type definition.
class K_DLLIMPORT FBPropertyBaseAnimatable< FBTimeCode, kFBPT_TimeCode > FBPropertyAnimatableTimeCode
FBPropertyBaseAnimatableTimeCode type definition.
void(* fbGetSetHandler)(void)
function pointer
Definition: fbproperties.h:165
class K_DLLIMPORT FBPropertyBase< unsigned long long, kFBPT_uint64 > FBPropertyUInt64
Property: int
class K_DLLIMPORT FBPropertyBase< long long, kFBPT_int64 > FBPropertyInt64
Property: int
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
class K_DLLIMPORT FBPropertyBase< FBVector4d, kFBPT_Vector4D > FBPropertyVector4d
FBPropertyVector4d type definition.
class K_DLLIMPORT FBPropertyBaseAnimatable< long long, kFBPT_int64 > FBPropertyAnimatableInt64
FBPropertyAnimatableInt64 type definition.
FBDataAsStringFlag
FBDataAsStringFlag.
Definition: fbproperties.h:110
@ kFBDataAsStringPersistence
Convert data to string type for storage.
Definition: fbproperties.h:112
@ kFBDataAsStringUI
Convert data to string type for UI display.
Definition: fbproperties.h:111
class K_DLLIMPORT FBPropertyBase< FBTimeCode, kFBPT_TimeCode > FBPropertyTimeCode
Property: FBTimeCode
class K_DLLIMPORT FBPropertyBase< float, kFBPT_float > FBPropertyFloat
Property: float
class K_DLLIMPORT FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
class K_DLLIMPORT FBPropertyBase< FBVector2d, kFBPT_Vector2D > FBPropertyVector2d
FBPropertyVector2d type definition.
void(* fbExternalGetSetHandler)(HIObject pObject)
function pointer
Definition: fbproperties.h:167
class FBPropertyBaseComponent< FBPlug * > FBPropertyPlug
Property: FBPropertyBaseComponent(FBPlug*)
class K_DLLIMPORT FBPropertyBaseAnimatable< FBVector2d, kFBPT_Vector2D > FBPropertyAnimatableVector2d
FBPropertyAnimatableVector2D type definition.
class K_DLLIMPORT FBPropertyBaseAnimatable< FBVector4d, kFBPT_Vector4D > FBPropertyAnimatableVector4d
FBPropertyAnimatableVector4D type definition.
class K_DLLIMPORT FBPropertyBaseEnum< enum kDefaultEnum > FBPropertyEnum
A typedef Definition.
Definition: fbproperties.h:978
class K_DLLIMPORT FBPropertyBase< FBComponent *, kFBPT_object > _FBPropertyBaseComponent
Property: FBPropertyBase(FBComponent*)
class K_DLLIMPORT FBPropertyBaseAnimatable< FBTime, kFBPT_Time > FBPropertyAnimatableTime
FBPropertyBaseAnimatableTime type definition.
class K_DLLIMPORT FBPropertyBase< FBTimeSpan, kFBPT_TimeSpan > FBPropertyTimeSpan
Property: FBTimeSpan
kDefaultEnum
Patch to use the base enum for casting values .
Definition: fbproperties.h:973
@ kDefaultItemNone
None.
Definition: fbproperties.h:974
class K_DLLIMPORT FBPropertyBase< FBColor, kFBPT_ColorRGB > FBPropertyColor
FBPropertyColor type definition.
class K_DLLIMPORT FBPropertyBase< double, kFBPT_double > FBPropertyDouble
Property: double
String class.
Time classes.
class K_DLLIMPORT FBVector2< double > FBVector2d
2D vector.
Definition: fbtypes.h:435
#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
class K_DLLIMPORT FBVector4< double > FBVector4d
4D vector
Definition: fbtypes.h:441