ISceneStateManager.h

Go to the documentation of this file.
00001  /**********************************************************************
00002  
00003     FILE:           ISceneStateManager.h
00004 
00005     DESCRIPTION:    Public interface to the scene state manager
00006 
00007     CREATED BY:     Christer Janson, Autodesk, Inc.
00008 
00009     HISTORY:        Created November 2004
00010 
00011  *> Copyright (c) 2004, All Rights Reserved.
00012  **********************************************************************/
00013 
00014 #pragma once
00015 
00016 #include "iFnPub.h"
00017 #include "FileEnumConstants.h"
00018 #include "GetCOREInterface.h"
00019 
00020 class AssetEnumCallback;
00021 
00022 #define SCENESTATE_PARTS_COUNT  10
00023 
00025 class ISceneStateManager : public FPStaticInterface 
00026 {
00027 public:
00029 
00030     enum SceneStatePart {
00031         eIncludeLightProperties = 0,
00032         eIncludeLightTM = 1,
00033         eIncludeObjectProperties = 2,
00034         eIncludeCameraTM = 3,
00035         eIncludeCameraProperties = 4,
00036         eIncludeLayerProperties = 5,
00037         eIncludeLayerAssignment = 6,
00038         eIncludeMaterials = 7,
00039         eIncludeEnvironment = 8,
00040         eIncludeAnimationLayerProperties =9,
00041     };
00042 
00044 
00045     virtual int GetSceneStateCount() = 0;
00047 
00049     virtual const MCHAR*    GetSceneState(int index) = 0;
00051 
00053     virtual int FindSceneState(const MCHAR* name) = 0;
00055 
00057     virtual bool CaptureState(const MCHAR* name) = 0;
00059 
00063     virtual bool CaptureState(const MCHAR* name, BitArray parts) = 0;
00065 
00067     virtual bool RestoreState(const MCHAR* name) = 0;
00069 
00073     virtual bool RestoreState(const MCHAR* name, BitArray parts) = 0;
00075 
00077     virtual bool DeleteState(const MCHAR* name) = 0;
00079 
00082     virtual bool RenameState(const MCHAR* oldName, const MCHAR* newName) = 0;
00084 
00087     virtual BitArray GetSceneStateParts(const MCHAR* name) = 0;
00089     virtual void DoManageDialog() = 0;
00091 
00093     virtual void EnumAuxFiles(AssetEnumCallback& assetEnum, DWORD flags = FILE_ENUM_ALL) = 0;
00094 
00095     // Function IDs for function publishing
00096     enum 
00097     { 
00098         E_GET_COUNT,
00099         E_GET,
00100         E_FIND,
00101         E_CAPTURE,
00102         E_RESTORE,
00103         E_DELETE,
00104         E_RENAME,
00105         E_GET_PARTS,
00106         E_GET_NUM_PARTS,
00107         E_PART_TO_INDEX,
00108         E_INDEX_TO_PART,
00109         E_CAPTURE_ALL_PARTS,
00110         E_RESTORE_ALL_PARTS
00111     }; 
00112 };
00113 
00115 #define IID_ISceneStateManager Interface_ID(0xECA7BD8E, 0xD3934669)
00116 
00118 inline ISceneStateManager* GetSceneStateManager() { return static_cast<ISceneStateManager*>(GetCOREInterface(IID_ISceneStateManager)); }
00119