12 #ifndef ROOT_TEveManager
13 #define ROOT_TEveManager
38 class TEveGListTreeEditorFrame;
42 class TEveViewer;
class TEveViewerList;
43 class TEveScene;
class TEveSceneList;
45 class TEveEventManager;
46 class TEveWindowManager;
51 TEveManager(
const TEveManager&);
52 TEveManager& operator=(
const TEveManager&);
58 TRedrawDisabler(
const TRedrawDisabler&);
59 TRedrawDisabler& operator=(
const TRedrawDisabler&);
63 TRedrawDisabler(TEveManager* m) : fMgr(m)
64 {
if (fMgr) fMgr->DisableRedraw(); }
65 virtual ~TRedrawDisabler()
66 {
if (fMgr) fMgr->EnableRedraw(); }
68 ClassDef(TRedrawDisabler, 0);
71 class TExceptionHandler :
public TStdExceptionHandler
74 TExceptionHandler() : TStdExceptionHandler() { Add(); }
75 virtual ~TExceptionHandler() { Remove(); }
77 virtual EStatus Handle(std::exception& exc);
79 ClassDef(TExceptionHandler, 0);
83 TExceptionHandler *fExcHandler;
90 TMap *fGeometryAliases;
92 TEveBrowser *fBrowser;
93 TEveGListTreeEditorFrame *fLTEFrame;
95 TFolder *fMacroFolder;
97 TEveWindowManager *fWindowManager;
98 TEveViewerList *fViewers;
99 TEveSceneList *fScenes;
101 TEveScene *fGlobalScene;
102 TEveScene *fEventScene;
103 TEveEventManager *fCurrentEvent;
105 Int_t fRedrawDisabled;
107 Bool_t fResetCameras;
108 Bool_t fDropLogicals;
109 Bool_t fKeepEmptyCont;
114 TExMap *fStampedElements;
117 TEveSelection *fSelection;
118 TEveSelection *fHighlight;
120 TEveElementList *fOrphanage;
121 Bool_t fUseOrphanage;
124 TEveManager(UInt_t w, UInt_t h, Bool_t map_window=kTRUE, Option_t* opt=
"FI");
125 virtual ~TEveManager();
127 TExceptionHandler* GetExcHandler()
const {
return fExcHandler; }
129 TEveSelection* GetSelection()
const {
return fSelection; }
130 TEveSelection* GetHighlight()
const {
return fHighlight; }
132 TEveElementList* GetOrphanage()
const {
return fOrphanage; }
133 Bool_t GetUseOrphanage()
const {
return fUseOrphanage; }
134 void SetUseOrphanage(Bool_t o) { fUseOrphanage = o; }
135 void ClearOrphanage();
137 TEveBrowser* GetBrowser()
const {
return fBrowser; }
138 TEveGListTreeEditorFrame* GetLTEFrame()
const {
return fLTEFrame; }
139 TEveGedEditor* GetEditor()
const;
140 TGStatusBar* GetStatusBar()
const;
142 TEveWindowManager* GetWindowManager()
const {
return fWindowManager; }
144 TEveSceneList* GetScenes()
const {
return fScenes; }
145 TEveViewerList* GetViewers()
const {
return fViewers; }
147 TEveScene* GetGlobalScene()
const {
return fGlobalScene; }
148 TEveScene* GetEventScene()
const {
return fEventScene; }
149 TEveEventManager* GetCurrentEvent()
const {
return fCurrentEvent; }
151 void SetCurrentEvent(TEveEventManager* mgr) { fCurrentEvent = mgr; }
153 TCanvas* AddCanvasTab(
const char* name);
154 TGWindow* GetMainWindow()
const;
155 TEveViewer* GetDefaultViewer()
const;
156 TGLViewer* GetDefaultGLViewer()
const;
157 TEveViewer* SpawnNewViewer(
const char* name,
const char* title=
"", Bool_t embed=kTRUE);
158 TEveScene* SpawnNewScene(
const char* name,
const char* title=
"");
160 TFolder* GetMacroFolder()
const {
return fMacroFolder; }
161 TMacro* GetMacro(
const char* name)
const;
163 void EditElement(TEveElement* element);
165 void DisableRedraw() { ++fRedrawDisabled; }
166 void EnableRedraw() { --fRedrawDisabled;
if (fRedrawDisabled <= 0) Redraw3D(); }
168 void Redraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE)
170 if (fRedrawDisabled <= 0 && !fTimerActive) RegisterRedraw3D();
171 if (resetCameras) fResetCameras = kTRUE;
172 if (dropLogicals) fDropLogicals = kTRUE;
174 void RegisterRedraw3D();
176 void FullRedraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE);
178 Bool_t GetKeepEmptyCont()
const {
return fKeepEmptyCont; }
179 void SetKeepEmptyCont(Bool_t k) { fKeepEmptyCont = k; }
181 void ElementChanged(TEveElement* element, Bool_t update_scenes=kTRUE, Bool_t redraw=kFALSE);
182 void ScenesChanged(TEveElement::List_t& scenes);
185 void ElementStamped(TEveElement* element);
188 TGListTree* GetListTree()
const;
189 TGListTreeItem* AddToListTree(TEveElement* re, Bool_t open, TGListTree* lt=0);
190 void RemoveFromListTree(TEveElement* element, TGListTree* lt, TGListTreeItem* lti);
192 TGListTreeItem* AddEvent(TEveEventManager* event);
194 void AddElement(TEveElement* element, TEveElement* parent=0);
195 void AddGlobalElement(TEveElement* element, TEveElement* parent=0);
197 void RemoveElement(TEveElement* element, TEveElement* parent);
198 void PreDeleteElement(TEveElement* element);
200 void ElementSelect(TEveElement* element);
201 Bool_t ElementPaste(TEveElement* element);
204 Bool_t InsertVizDBEntry(
const TString& tag, TEveElement* model,
205 Bool_t replace, Bool_t update);
206 Bool_t InsertVizDBEntry(
const TString& tag, TEveElement* model);
207 TEveElement* FindVizDBEntry (
const TString& tag);
209 void LoadVizDB(
const TString& filename, Bool_t replace, Bool_t update);
210 void LoadVizDB(
const TString& filename);
211 void SaveVizDB(
const TString& filename);
213 Bool_t GetVizDBReplace()
const {
return fVizDBReplace; }
214 Bool_t GetVizDBUpdate ()
const {
return fVizDBUpdate; }
215 void SetVizDBReplace(Bool_t r) { fVizDBReplace = r; }
216 void SetVizDBUpdate (Bool_t u) { fVizDBUpdate = u; }
220 TGeoManager* GetGeometry(
const TString& filename);
221 TGeoManager* GetGeometryByAlias(
const TString& alias);
222 TGeoManager* GetDefaultGeometry();
223 void RegisterGeometryAlias(
const TString& alias,
const TString& filename);
225 void SetStatusLine(
const char* text);
226 void ClearROOTClassSaved();
228 void CloseEveWindow();
230 static TEveManager* Create(Bool_t map_window=kTRUE, Option_t* opt=
"FIV");
231 static void Terminate();
236 void EnforceTimerActive (Bool_t ta) { fTimerActive = ta; }
238 TExMap* PtrToStampedElements() {
return fStampedElements; }
240 ClassDef(TEveManager, 0);
243 R__EXTERN TEveManager* gEve;