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 FBPropertyListDeformer Deformers;
00314 FBPropertyListDevice Devices;
00315 FBPropertyListConstraint Constraints;
00316
00317 FBPropertyListLight Lights;
00318 #if !defined(K_NO_AUDIO)
00319 FBPropertyListAudioClip AudioClips;
00320 #endif
00321 #if !defined(K_NO_VIDEO)
00322 FBPropertyListVideoClip VideoClips;
00323 #endif
00324
00325 FBPropertyListMotionClip MotionClips;
00326
00327 #if !defined(K_NO_FOLDER)
00328 FBPropertyListFolder Folders;
00329 #endif
00330
00331 #if !defined(K_NO_NOTE)
00332 FBPropertyListNote Notes;
00333 #endif
00334
00335 #if !defined(K_NO_POSE)
00336 FBPropertyListPose Poses;
00337 FBPropertyListObjectPose ObjectPoses;
00338 #endif
00339
00340 #if !defined(K_NO_ACTOR)
00341 FBPropertyListActor Actors;
00342 FBPropertyListActorFace ActorFaces;
00343 #endif
00344
00345 #if !defined(K_NO_CHARACTER)
00346 FBPropertyListMarkerSet MarkerSets;
00347 FBPropertyListControlSet ControlSets;
00348 FBPropertyListCharacter Characters;
00349 FBPropertyListCharacterFace CharacterFaces;
00350 FBPropertyListCharacterPose CharacterPoses;
00351 FBPropertyListCharacterExtension CharacterExtensions;
00352 #endif
00353
00354 #ifndef FB_KERNEL
00355 FBPropertyListUserObject UserObjects;
00356 #endif
00357
00358 #if !defined(K_NO_PROJECTSETTINGS)
00359 FBPropertyProjectSettings ProjectSettings;
00360 #endif
00361
00362 FBPropertyRenderer Renderer;
00363 FBPropertyListComponent Components;
00364 FBPropertyListGroup Groups;
00365 FBPropertyListSet Sets;
00366
00367 #ifndef FB_KERNEL
00368 FBPropertyListHandle Handles;
00369 #endif
00370
00371 FBPropertyListConstraintSolver ConstraintSolvers;
00372 FBPropertyListPhysicalProperties PhysicalProperties;
00373
00374 FBPropertyTime LocalTime;
00375
00376 FBPropertyEvent OnChange;
00377 FBPropertyEvent OnTakeChange;
00378 };
00379
00380 #ifndef __FB_COMPONENT_SCENE
00381 #define __FB_COMPONENT_SCENE
00382 FB_DEFINE_COMPONENT( FBSDK_DLL, Scene );
00383 #endif
00384
00385
00386 #ifdef FBSDKUseNamespace
00387 }
00388 #endif
00389 #endif
00390