00001 #ifndef __FBSCENE_H__
00002 #define __FBSCENE_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00044 #include <kaydaradef.h>
00045 #ifndef FBSDK_DLL
00046
00049 #define FBSDK_DLL K_DLLIMPORT
00050 #endif
00051
00052 #include <fbsdk/fbcomponent.h>
00053 #include <fbsdk/fbcore.h>
00054 #include <fbsdk/fbdata.h>
00055 #include <fbsdk/fbfolder.h>
00056 #include <fbsdk/fbrenderer.h>
00057 #include <fbsdk/fbshader.h>
00058 #include <fbsdk/fbmodel.h>
00059 #include <fbsdk/fbvideo.h>
00060 #include <fbsdk/fbmotion.h>
00061 #include <fbsdk/fbgroup.h>
00062 #include <fbsdk/fbobjectpose.h>
00063
00064 #if !defined(K_NO_CHARACTER)
00065 #include <fbsdk/fbcharacter.h>
00066 #include <fbsdk/fbcharacterface.h>
00067 #include <fbsdk/fbcharacterpose.h>
00068 #include <fbsdk/fbcharacterextension.h>
00069 #endif
00070
00071 #if !defined(K_NO_DECK)
00072 #include <fbsdk/fbdeck.h>
00073 #endif
00074
00075 #if !defined(K_NO_AUDIO)
00076 #include <fbsdk/fbaudio.h>
00077 #endif
00078
00079 #if !defined(K_NO_MANIPULATOR)
00080 #include <fbsdk/fbmanipulator.h>
00081 #endif
00082
00083 #if !defined(K_NO_NOTE)
00084 #include <fbsdk/fbnote.h>
00085 #endif
00086
00087 #if !defined(K_NO_POSE)
00088 #include <fbsdk/fbpose.h>
00089 #endif
00090
00091 #if !defined(K_NO_STORY)
00092 #include <fbsdk/fbcommand.h>
00093 #endif
00094
00095 #if !defined(K_NO_PROJECTSETTINGS)
00096 #include <fbsdk/fbprojectsettings.h>
00097 #endif
00098
00099 #ifndef FBSDK_LEAN_AND_MEAN
00100 #include <fbsdk/fbuserobject.h>
00101 #endif
00102
00103 #include <fbsdk/fbconstraint.h>
00104
00105 #ifdef FBSDKUseNamespace
00106 namespace FBSDKNamespace {
00107 #endif
00108
00109
00110
00112
00115 enum FBSceneChangeType
00116 {
00117 kFBSceneChangeNone,
00118 kFBSceneChangeDestroy,
00119 kFBSceneChangeAttach,
00120 kFBSceneChangeDetach,
00121 kFBSceneChangeAddChild,
00122 kFBSceneChangeRemoveChild,
00123 kFBSceneChangeSelect,
00124 kFBSceneChangeUnselect,
00125 kFBSceneChangeRename,
00126 kFBSceneChangeRenamePrefix,
00127 kFBSceneChangeRenameUnique,
00128 kFBSceneChangeRenameUniquePrefix,
00129 kFBSceneChangeRenamed,
00130 kFBSceneChangeRenamedPrefix,
00131 kFBSceneChangeRenamedUnique,
00132 kFBSceneChangeRenamedUniquePrefix,
00133 kFBSceneChangeSoftSelect,
00134 kFBSceneChangeSoftUnselect,
00135 kFBSceneChangeHardSelect,
00136 kFBSceneChangeActivate,
00137 kFBSceneChangeDeactivate,
00138 kFBSceneChangeLoadBegin,
00139 kFBSceneChangeLoadEnd,
00140 kFBSceneChangeClearBegin,
00141 kFBSceneChangeClearEnd,
00142 kFBSceneChangeTransactionBegin,
00143 kFBSceneChangeTransactionEnd,
00144 kFBSceneChangeReSelect,
00145 kFBSceneChangeChangeName,
00146 kFBSceneChangeChangedName,
00147 kFBSceneChangePreParent,
00148 kFBSceneChangePreUnparent,
00149 kFBSceneChangeFocus,
00150 kFBSceneChangeChangedParent,
00151 kFBSceneChangeReorder,
00152 kFBSceneChangeReordered,
00153 };
00154
00155 FB_DEFINE_ENUM( FBSDK_DLL, SceneChangeType );
00156
00157 __FB_FORWARD( FBEventSceneChange );
00158
00166 class FBSDK_DLL FBEventSceneChange: public FBEvent
00167 {
00168 public:
00172 FBEventSceneChange( HKEventBase pEvent );
00173
00174 FBPropertySceneChangeType Type;
00175 FBPropertyComponent Component;
00176 FBPropertyComponent ChildComponent;
00177 };
00178
00180
00183 enum FBTakeChangeType
00184 {
00185 kFBTakeChangeAdded,
00186 kFBTakeChangeRemoved,
00187 kFBTakeChangeOpened,
00188 kFBTakeChangeClosed,
00189 kFBTakeChangeRenamed,
00190 kFBTakeChangeUpdated,
00191 kFBTakeChangeMoved,
00192 kFBTakeChangeNone
00193 };
00194
00195 FB_DEFINE_ENUM( FBSDK_DLL, TakeChangeType );
00196
00197 __FB_FORWARD( FBEventTakeChange );
00198
00206 class FBSDK_DLL FBEventTakeChange: public FBEvent
00207 {
00208 public:
00209
00213 FBEventTakeChange( HKEventBase pEvent );
00214
00215 FBPropertyTakeChangeType Type;
00216 FBPropertyTake Take;
00217 };
00218
00220
00222 FB_FORWARD ( FBPropertyListScene );
00223 __FB_FORWARD( FBScene );
00224 FB_DEFINE_LIST ( FBSDK_DLL, Scene );
00225
00228 class FBSDK_DLL FBPropertyListScene : public FBPropertyBaseList< HFBScene >
00229 {
00230 private:
00231 public:
00236 virtual int Add( HFBScene pItem );
00240 virtual void RemoveAt( int pIndex );
00245 virtual HFBScene operator[](int pIndex);
00249 virtual int GetCount();
00250 };
00251
00253
00255
00272 class FBSDK_DLL FBScene : public FBComponent {
00273 __FBClassDeclare( FBScene,FBComponent );
00274
00275
00276 FBScene( const FBScene* );
00277 FBScene( const FBScene& );
00278 FBScene& operator=( const FBScene& );
00279
00280 public:
00281
00287 FBScene(HIObject pObject);
00288
00291 virtual void FBDelete();
00292
00296 K_DEPRECATED void Clear();
00300 bool Evaluate();
00301
00305 bool EvaluateDeformations();
00306
00307 FBPropertyListTake Takes;
00308 FBPropertyModel RootModel;
00309 FBPropertyListCamera Cameras;
00310 FBPropertyListMaterial Materials;
00311 FBPropertyListTexture Textures;
00312 FBPropertyListShader Shaders;
00313 FBPropertyListDevice Devices;
00314 FBPropertyListConstraint Constraints;
00315
00316 FBPropertyListLight Lights;
00317 #if !defined(K_NO_AUDIO)
00318 FBPropertyListAudioClip AudioClips;
00319 #endif
00320 #if !defined(K_NO_VIDEO)
00321 FBPropertyListVideoClip VideoClips;
00322 #endif
00323
00324 FBPropertyListMotionClip MotionClips;
00325
00326 #if !defined(K_NO_FOLDER)
00327 FBPropertyListFolder Folders;
00328 #endif
00329
00330 #if !defined(K_NO_NOTE)
00331 FBPropertyListNote Notes;
00332 #endif
00333
00334 #if !defined(K_NO_POSE)
00335 FBPropertyListPose Poses;
00336 FBPropertyListObjectPose ObjectPoses;
00337 #endif
00338
00339 #if !defined(K_NO_ACTOR)
00340 FBPropertyListActor Actors;
00341 FBPropertyListActorFace ActorFaces;
00342 #endif
00343
00344 #if !defined(K_NO_CHARACTER)
00345 FBPropertyListMarkerSet MarkerSets;
00346 FBPropertyListControlSet ControlSets;
00347 FBPropertyListCharacter Characters;
00348 FBPropertyListCharacterFace CharacterFaces;
00349 FBPropertyListCharacterPose CharacterPoses;
00350 FBPropertyListCharacterExtension CharacterExtensions;
00351 #endif
00352
00353 #ifndef FB_KERNEL
00354 FBPropertyListUserObject UserObjects;
00355 #endif
00356
00357 #if !defined(K_NO_PROJECTSETTINGS)
00358 FBPropertyProjectSettings ProjectSettings;
00359 #endif
00360
00361 FBPropertyRenderer Renderer;
00362 FBPropertyListComponent Components;
00363 FBPropertyListGroup Groups;
00364 FBPropertyListSet Sets;
00365
00366 #ifndef FB_KERNEL
00367 FBPropertyListHandle Handles;
00368 #endif
00369
00370 FBPropertyListConstraintSolver ConstraintSolvers;
00371 FBPropertyListPhysicalProperties PhysicalProperties;
00372
00373 FBPropertyTime LocalTime;
00374
00375 FBPropertyEvent OnChange;
00376 FBPropertyEvent OnTakeChange;
00377 };
00378
00379 #ifndef __FB_COMPONENT_SCENE
00380 #define __FB_COMPONENT_SCENE
00381 FB_DEFINE_COMPONENT( FBSDK_DLL, Scene );
00382 #endif
00383
00384
00385 #ifdef FBSDKUseNamespace
00386 }
00387 #endif
00388 #endif
00389