Open Reality Reference Guide
fbkeyinggroup.h
Go to the documentation of this file.
1 #ifndef __FBKEYINGGROUP_H__
2 #define __FBKEYINGGROUP_H__
3 /**************************************************************************
4 Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
5 All Rights Reserved.
6 
7 The coded instructions, statements, computer programs, and/or related
8 material (collectively the "Data") in these files contain unpublished
9 information proprietary to Autodesk, Inc. and/or its licensors, which is
10 protected by Canada and United States of America federal copyright law
11 and by international treaties.
12 
13 The Data may not be disclosed or distributed to third parties, in whole
14 or in part, without the prior written consent of Autodesk, Inc.
15 ("Autodesk").
16 
17 THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
18 ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
19 WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR
20 ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES
21 OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
22 PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT
23 WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR
24 FREE.
25 
26 IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
27 OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR
28 EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE
29 DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS
30 OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR
31 DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF
32 LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT
33 LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE
34 DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS
35 BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
36 
37 **************************************************************************/
38 
43 #include <kaydaradef.h>
44 #ifndef FBSDK_DLL
48 #define FBSDK_DLL K_DLLIMPORT
49 #endif
50 
51 #include <fbsdk/fbcomponent.h>
52 
53 #ifdef FBSDKUseNamespace
54 namespace FBSDKNamespace {
55 #endif
56 
58  FB_DEFINE_COMPONENT( FBSDK_DLL, KeyingGroup );
59  FB_DEFINE_LIST( FBSDK_DLL, KeyingGroup );
60 
66  };
67 
69  // FBKeyingGroup
71 
88  {
89  //--- Open Reality declaration.
91  public:
92 
98  FBKeyingGroup(const char* pName, FBKeyingGroupType pType, HIObject pObject=NULL);
99 
102  virtual void FBDelete() override;
103 
107  void SetObjectType(FBComponent* pObject);
108 
112  void AddProperty(FBProperty* pProp);
116  void RemoveProperty(FBProperty* pProp);
117 
122  FBProperty* GetProperty(int pIndex);
123 
128 
134 
139 
144 
150 
155 
162 
166 
193  FBComponent* GetSubObject(int pIndex);
194 
199  int GetCumulativePropertyCount( bool pStopAtVisible = false );
205  FBProperty* GetCumulativeProperty( int pIndex, bool pStopAtVisible = false );
206 
210 
211 
214  void SetEnabled(bool pEnable);
215 
218  void SetActive(bool pActive);
219 
222  void SetActiveAppend(bool pActive);
223 
227  };
228 
230  // FBPropertyListKeyingGroup
232  FB_DEFINE_LIST( FBSDK_DLL, KeyingGroup );
234 
237  {
238  public:
244  FBKeyingGroup* operator[](int pIndex);
245  };
246 
248 
249 #ifdef FBSDKUseNamespace
250 }
251 #endif
252 #endif /* this must be the last line of this file */
MotionBuilder SDK base class.
Definition: fbcomponent.h:651
KeyingGroup class.
Definition: fbkeyinggroup.h:88
bool IsObjectDependency(FBComponent *pObj)
IsObjectDependency determine if the pObj is a dependency.
bool IsObjectDependencySelected()
IsObjectDependencySelected.
int GetParentKeyingGroupCount()
GetParentKeyingGroupCount.
void SetEnabled(bool pEnable)
SetEnabled, makes the keying group available in keying group list of the key control UI.
static void DeselectAllAnimatableProperties()
FBDeselectAllAnimatableProperties, deselect all animatable properties in the scene.
void RemoveAllProperties()
IsObjectDependencySelected empty the property list.
void ClearAllItems()
ClearAllItems clear object dependency, properties and child keying group.
void RemoveAllSubKeyingGroup()
RemoveAllSubKeyingGroup empty the child keying group.
void AddProperty(FBProperty *pProp)
Add property to be keyed when current keying group is active.
virtual void FBDelete() override
Virtual FBDelete function.
int GetSubObjectCount()
GetSubObjectCount.
int FindPropertyIndex(FBProperty *pProp)
FindPropertyIndex.
FBProperty * GetProperty(int pIndex)
GetProperty from the keyinggroup list.
void SetActive(bool pActive)
SetActive, activate the keying group, replacing the other keying group.
int GetPropertyCount()
GetPropertyCount.
void SetObjectType(FBComponent *pObject)
Set the object type filter for and object type keying group.
FBProperty * GetCumulativeProperty(int pIndex, bool pStopAtVisible=false)
GetCumulativeProperty Same as GetSubKeyingGroup but recursive in child keying group.
void RemoveProperty(FBProperty *pProp)
RemoveProperty from the keyinggroup list.
FBKeyingGroup * GetParentKeyingGroup(int pIndex)
GetParentKeyingGroup.
void SetActiveAppend(bool pActive)
SetActiveAppend, activate and append the keying group to the other keying groups.
int GetSubKeyingGroupCount()
GetSubKeyingGroupCount.
void RemoveAllObjectDependency()
IsObjectDependencySelected empty the content list.
FBKeyingGroup(const char *pName, FBKeyingGroupType pType, HIObject pObject=NULL)
Constructor.
int GetCumulativePropertyCount(bool pStopAtVisible=false)
GetCumulativePropertyCount Same as GetSubKeyingGroupCount but recursive in child keying group.
FBKeyingGroup * GetSubKeyingGroup(int pIndex)
GetSubKeyingGroup.
void RemoveObjectDependency(FBComponent *pObj)
RemoveObjectDependency An object dependency is the content of a keying group and will activate keying...
FBComponent * GetSubObject(int pIndex)
GetSubObject.
void AddObjectDependency(FBComponent *pObj)
AddObjectDependency An object dependency is the content of a keying group and will activate keying gr...
Property: Base property class.
Definition: fbproperties.h:195
PropertyList: Concrete class for PropertyList of component
Definition: fbcomponent.h:536
PropertyList: KeyingGroup.
FBKeyingGroup * operator[](int pIndex)
Get the KeyingGroup at pIndex.
Basic class definitions.
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:131
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbkeyinggroup.h:48
FBKeyingGroupType
Keying group types.
Definition: fbkeyinggroup.h:62
@ kFBKeyingGroupObjectType
All selected objects of the specified type in the keying group with the same properties as those defi...
Definition: fbkeyinggroup.h:64
@ kFBKeyingGroupGlobal
All selected objects with the same properties as those defined in the keying group will be keyed.
Definition: fbkeyinggroup.h:63
@ kFBKeyingGroupLocal
Only properties of objects specified in the keying group will be keyed.
Definition: fbkeyinggroup.h:65
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
Definition: fbproperties.h:163
#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