fbsdk/fbkeyinggroup.h Source File

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 
57  __FB_FORWARD( FBKeyingGroup );
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();
103 
107  void SetObjectType(FBComponent* pObject);
108 
112  void AddProperty(FBProperty* pProp);
116  void RemoveProperty(FBProperty* pProp);
117 
122  FBProperty* GetProperty(int pIndex);
123 
127  int GetPropertyCount();
128 
133  int FindPropertyIndex( FBProperty* pProp );
134 
138  void AddObjectDependency(FBComponent* pObj);
139 
143  void RemoveObjectDependency(FBComponent* pObj);
144 
149  bool IsObjectDependency(FBComponent* pObj);
150 
154  bool IsObjectDependencySelected();
155 
158  void RemoveAllProperties();
161  void RemoveAllObjectDependency();
162 
165  void RemoveAllSubKeyingGroup();
166 
170  int GetParentKeyingGroupCount();
175  FBKeyingGroup* GetParentKeyingGroup(int pIndex);
179  int GetSubKeyingGroupCount();
184  FBKeyingGroup* GetSubKeyingGroup(int pIndex);
188  int GetSubObjectCount();
193  FBComponent* GetSubObject(int pIndex);
194 
199  int GetCumulativePropertyCount( bool pStopAtVisible = false );
205  FBProperty* GetCumulativeProperty( int pIndex, bool pStopAtVisible = false );
206 
209  void ClearAllItems();
210 
211 
214  void SetEnabled(bool pEnable);
215 
218  void SetActive(bool pActive);
219 
222  void SetActiveAppend(bool pActive);
223 
226  static void DeselectAllAnimatableProperties();
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 */
FBKeyingGroupType
Keying group types.
Definition: fbkeyinggroup.h:62
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:132
KeyingGroup class.
Definition: fbkeyinggroup.h:87
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
Definition: fbproperties.h:139
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
Definition: fbproperties.h:161
#define NULL
Definition: kaydara.h:169
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbkeyinggroup.h:48
MotionBuilder SDK base class.
Definition: fbcomponent.h:668
Only properties of objects specified in the keying group will be keyed.
Definition: fbkeyinggroup.h:65
PropertyList: Concrete class for PropertyList of component
Definition: fbcomponent.h:553
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:68
Property: Base property class.
Definition: fbproperties.h:192
#define FBSDKNamespace
FBSDKNamespace define.
Definition: fbversion.h:64
Basic class definitions.
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:62
All selected objects of the specified type in the keying group with the same properties as those defi...
Definition: fbkeyinggroup.h:64
All selected objects with the same properties as those defined in the keying group will be keyed...
Definition: fbkeyinggroup.h:63
PropertyList: KeyingGroup.