00001 #ifndef _SIGNSTATEMANAGER_H_ 00002 #define _SIGNSTATEMANAGER_H_ 00003 00014 #include <vector> 00015 #include <string> 00016 #include <map> 00017 #include <SignDLL.h> 00018 00019 00020 class SignState; 00021 class SignContext; 00022 class vtkKWFrame; 00023 00024 typedef std::map<std::string,SignState*> StateMap; 00025 00026 class SIGN_EXPORT SignStateManager 00027 { 00028 public: 00031 SignStateManager(SignContext* newSignContext); 00032 00034 ~SignStateManager(); 00035 00042 SignState* SaveState(std::string name,vtkKWFrame* frame); 00043 00048 SignState* RestoreState(std::string name); 00049 00053 void DeleteState(std::string name); 00054 00058 bool CheckState(std::string name); 00059 00062 SignState* GetCurrentState(); 00063 00064 private: 00065 StateMap states; 00066 SignState* currentState; 00067 SignContext* signContext; 00068 00070 void RestoreFiducials(SignState* state); 00072 void RestoreViewers(SignState* state); 00074 void RestoreTransferFunctions(SignState* state); 00075 00076 SignStateManager(); // reserves the name 00077 }; 00078 00079 #endif
1.4.6