#ifndef ROOT_TEveManager
#define ROOT_TEveManager
#include "TGeoManager.h"
#include "TSysEvtHandler.h"
#include "TTimer.h"
#include "TVirtualPad.h"
#include <list>
#include <map>
class TMacro;
class TFolder;
class TCanvas;
class TGTab;
class TGStatusBar;
class TGListTree;
class TGListTreeItem;
class TGStatusBar;
class TGWindow;
class TGLViewer;
class TEveGListTreeEditorFrame;
class TEveBrowser;
class TEveGedEditor;
class TEveElement;
class PadPrimitive;
class TEveViewer; class TEveViewerList;
class TEveScene; class TEveSceneList;
class TEveEventManager;
class TEveManager
{
TEveManager(const TEveManager&);
TEveManager& operator=(const TEveManager&);
public:
class TRedrawDisabler
{
private:
TRedrawDisabler(const TRedrawDisabler&);
TRedrawDisabler& operator=(const TRedrawDisabler&);
TEveManager* fMgr;
public:
TRedrawDisabler(TEveManager* m) : fMgr(m)
{ if (fMgr) fMgr->DisableRedraw(); }
~TRedrawDisabler()
{ if (fMgr) fMgr->EnableRedraw(); }
};
class TExceptionHandler : public TStdExceptionHandler
{
public:
TExceptionHandler() : TStdExceptionHandler() { Add(); }
virtual ~TExceptionHandler() { Remove(); }
virtual EStatus Handle(std::exception& exc);
ClassDef(TExceptionHandler, 0);
};
private:
TExceptionHandler *fExcHandler;
TEveBrowser *fBrowser;
TEveGListTreeEditorFrame *fLTEFrame;
TEveGedEditor *fEditor;
TGStatusBar *fStatusBar;
TFolder *fMacroFolder;
TEveViewerList *fViewers;
TEveSceneList *fScenes;
TEveViewer *fViewer;
TEveScene *fGlobalScene;
TEveScene *fEventScene;
TEveEventManager *fCurrentEvent;
Int_t fRedrawDisabled;
Bool_t fFullRedraw;
Bool_t fResetCameras;
Bool_t fDropLogicals;
Bool_t fKeepEmptyCont;
Bool_t fTimerActive;
TTimer fRedrawTimer;
protected:
std::map<TString, TGeoManager*> fGeometries;
std::map<TString, TString> fGeometryAliases;
public:
TEveManager(UInt_t w, UInt_t h);
virtual ~TEveManager();
TExceptionHandler* GetExcHandler() const { return fExcHandler; }
TEveBrowser* GetBrowser() const { return fBrowser; }
TEveGListTreeEditorFrame* GetLTEFrame() const { return fLTEFrame; }
TEveGedEditor* GetEditor() const { return fEditor; }
TGStatusBar* GetStatusBar() const { return fStatusBar; }
TEveSceneList* GetScenes() const { return fScenes; }
TEveViewerList* GetViewers() const { return fViewers; }
TEveViewer* GetDefViewer() const { return fViewer; }
TEveScene* GetGlobalScene() const { return fGlobalScene; }
TEveScene* GetEventScene() const { return fEventScene; }
TEveEventManager* GetCurrentEvent() const { return fCurrentEvent; }
TCanvas* AddCanvasTab(const char* name);
TGWindow* GetMainWindow() const;
TGLViewer* GetGLViewer() const;
TEveViewer* SpawnNewViewer(const Text_t* name, const Text_t* title="", Bool_t embed=kTRUE);
TEveScene* SpawnNewScene(const Text_t* name, const Text_t* title="");
TFolder* GetMacroFolder() const { return fMacroFolder; }
TMacro* GetMacro(const Text_t* name) const;
void EditElement(TEveElement* element);
void DisableRedraw() { ++fRedrawDisabled; }
void EnableRedraw() { --fRedrawDisabled; if (fRedrawDisabled <= 0) Redraw3D(); }
void Redraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE)
{
if (fRedrawDisabled <= 0 && !fTimerActive) RegisterRedraw3D();
if (resetCameras) fResetCameras = kTRUE;
if (dropLogicals) fDropLogicals = kTRUE;
}
void RegisterRedraw3D();
void DoRedraw3D();
void FullRedraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE);
Bool_t GetKeepEmptyCont() const { return fKeepEmptyCont; }
void SetKeepEmptyCont(Bool_t k) { fKeepEmptyCont = k; }
void ElementChanged(TEveElement* element, Bool_t update_scenes=kTRUE, Bool_t redraw=kFALSE);
void ScenesChanged(std::list<TEveElement*>& scenes);
TGListTree* GetListTree() const;
TGListTreeItem* AddToListTree(TEveElement* re, Bool_t open, TGListTree* lt=0);
void RemoveFromListTree(TEveElement* element, TGListTree* lt, TGListTreeItem* lti);
TGListTreeItem* AddEvent(TEveEventManager* event);
TGListTreeItem* AddElement(TEveElement* element,
TEveElement* parent=0);
TGListTreeItem* AddGlobalElement(TEveElement* element,
TEveElement* parent=0);
void RemoveElement(TEveElement* element, TEveElement* parent);
void PreDeleteElement(TEveElement* element);
void ElementSelect(TEveElement* element);
Bool_t ElementPaste(TEveElement* element);
void ElementChecked(TEveElement* element, Bool_t state);
TGeoManager* GetGeometry(const TString& filename);
TGeoManager* GetGeometryByAlias(const TString& alias);
TGeoManager* GetDefaultGeometry();
void RegisterGeometryAlias(const TString& alias, const TString& filename);
void SetStatusLine(const char* text);
static TEveManager* Create();
ClassDef(TEveManager, 0);
};
R__EXTERN TEveManager* gEve;
#endif
Last update: Thu Jan 17 08:48:51 2008
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.