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
45 
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 */
FBKeyingGroup::GetParentKeyingGroup
FBKeyingGroup * GetParentKeyingGroup(int pIndex)
GetParentKeyingGroup.
kFBKeyingGroupGlobal
@ kFBKeyingGroupGlobal
All selected objects with the same properties as those defined in the keying group will be keyed.
Definition: fbkeyinggroup.h:63
FBKeyingGroup::AddProperty
void AddProperty(FBProperty *pProp)
Add property to be keyed when current keying group is active.
FBKeyingGroup::RemoveProperty
void RemoveProperty(FBProperty *pProp)
RemoveProperty from the keyinggroup list.
FBKeyingGroup::FBKeyingGroup
FBKeyingGroup(const char *pName, FBKeyingGroupType pType, HIObject pObject=NULL)
Constructor.
kFBKeyingGroupLocal
@ kFBKeyingGroupLocal
Only properties of objects specified in the keying group will be keyed.
Definition: fbkeyinggroup.h:65
FBKeyingGroup::SetActiveAppend
void SetActiveAppend(bool pActive)
SetActiveAppend, activate and append the keying group to the other keying groups.
FBKeyingGroup::IsObjectDependencySelected
bool IsObjectDependencySelected()
IsObjectDependencySelected.
FBKeyingGroup::IsObjectDependency
bool IsObjectDependency(FBComponent *pObj)
IsObjectDependency determine if the pObj is a dependency.
FBKeyingGroup::RemoveAllObjectDependency
void RemoveAllObjectDependency()
IsObjectDependencySelected empty the content list.
FBKeyingGroup::GetCumulativePropertyCount
int GetCumulativePropertyCount(bool pStopAtVisible=false)
GetCumulativePropertyCount Same as GetSubKeyingGroupCount but recursive in child keying group.
FBKeyingGroupType
FBKeyingGroupType
Keying group types.
Definition: fbkeyinggroup.h:62
FBKeyingGroup
KeyingGroup class.
Definition: fbkeyinggroup.h:88
FBKeyingGroup::GetSubObject
FBComponent * GetSubObject(int pIndex)
GetSubObject.
FBKeyingGroup::AddObjectDependency
void AddObjectDependency(FBComponent *pObj)
AddObjectDependency An object dependency is the content of a keying group and will activate keying gr...
FBKeyingGroup::SetActive
void SetActive(bool pActive)
SetActive, activate the keying group, replacing the other keying group.
kFBKeyingGroupObjectType
@ kFBKeyingGroupObjectType
All selected objects of the specified type in the keying group with the same properties as those defi...
Definition: fbkeyinggroup.h:64
FBSDK_DLL
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbkeyinggroup.h:48
FBKeyingGroup::GetPropertyCount
int GetPropertyCount()
GetPropertyCount.
__FBClassDeclare
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:131
FBProperty
Property: Base property class.
Definition: fbproperties.h:195
__FB_FORWARD
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:68
FBKeyingGroup::GetProperty
FBProperty * GetProperty(int pIndex)
GetProperty from the keyinggroup list.
FBKeyingGroup::GetSubKeyingGroup
FBKeyingGroup * GetSubKeyingGroup(int pIndex)
GetSubKeyingGroup.
FBKeyingGroup::RemoveAllProperties
void RemoveAllProperties()
IsObjectDependencySelected empty the property list.
FBKeyingGroup::ClearAllItems
void ClearAllItems()
ClearAllItems clear object dependency, properties and child keying group.
FBKeyingGroup::GetParentKeyingGroupCount
int GetParentKeyingGroupCount()
GetParentKeyingGroupCount.
FBKeyingGroup::GetSubObjectCount
int GetSubObjectCount()
GetSubObjectCount.
FBKeyingGroup::GetSubKeyingGroupCount
int GetSubKeyingGroupCount()
GetSubKeyingGroupCount.
FBPropertyListKeyingGroup
PropertyList: KeyingGroup.
Definition: fbkeyinggroup.h:237
FBKeyingGroup::FindPropertyIndex
int FindPropertyIndex(FBProperty *pProp)
FindPropertyIndex.
fbcomponent.h
Basic class definitions.
FB_DEFINE_LIST
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
Definition: fbproperties.h:163
FBKeyingGroup::SetEnabled
void SetEnabled(bool pEnable)
SetEnabled, makes the keying group available in keying group list of the key control UI.
FBPropertyListComponent
PropertyList: Concrete class for PropertyList of component
Definition: fbcomponent.h:536
FBKeyingGroup::RemoveObjectDependency
void RemoveObjectDependency(FBComponent *pObj)
RemoveObjectDependency An object dependency is the content of a keying group and will activate keying...
FBKeyingGroup::GetCumulativeProperty
FBProperty * GetCumulativeProperty(int pIndex, bool pStopAtVisible=false)
GetCumulativeProperty Same as GetSubKeyingGroup but recursive in child keying group.
FB_FORWARD
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:62
FB_DEFINE_COMPONENT
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
FBPropertyListKeyingGroup::operator[]
FBKeyingGroup * operator[](int pIndex)
Get the KeyingGroup at pIndex.
FBKeyingGroup::SetObjectType
void SetObjectType(FBComponent *pObject)
Set the object type filter for and object type keying group.
FBKeyingGroup::DeselectAllAnimatableProperties
static void DeselectAllAnimatableProperties()
FBDeselectAllAnimatableProperties, deselect all animatable properties in the scene.
FBComponent
MotionBuilder SDK base class.
Definition: fbcomponent.h:651
FBKeyingGroup::RemoveAllSubKeyingGroup
void RemoveAllSubKeyingGroup()
RemoveAllSubKeyingGroup empty the child keying group.
FBKeyingGroup::FBDelete
virtual void FBDelete() override
Virtual FBDelete function.