12#ifndef ROOT7_REveManager
13#define ROOT7_REveManager
25#include <condition_variable>
28#include <unordered_map>
36namespace Experimental {
84 std::condition_variable
fCV{};
109 auto uptr = std::make_unique<Handler>();
156 std::unordered_map<std::string, std::shared_ptr<TMethodCall> >
fMethCallMap;
162 void WindowData(
unsigned connid,
const std::string &arg);
198 void EnableRedraw() { printf(
"REveManager::EnableRedraw obsolete \n"); }
202 printf(
"REveManager::Redraw3D oboslete %d %d\n",resetCameras , dropLogicals);
265 void Send(
unsigned connid,
const std::string &data);
266 void SendBinary(
unsigned connid,
const void *data, std::size_t len);
static void update(gsl_integration_workspace *workspace, double a1, double b1, double area1, double error1, double a2, double b2, double area2, double error2)
List of Scenes providing common operations on REveScene collections.
Eve representation of TGLScene.
Make sure there is a SINGLE running REveSelection for each selection type (select/highlight).
List of Viewers providing common operations on REveViewer collections.
Eve representation of a GL view.
bool Emit(const RLogEntry &entry) override
Utility to stream loggs to client.
MIR(const std::string &cmd, ElementId_t id, const std::string &ctype)
virtual ~RExceptionHandler()
virtual EStatus Handle(std::exception &exc)
Handle exceptions deriving from REveException.
std::condition_variable fCV
void SetVizDBReplace(Bool_t r)
void ClearROOTClassSaved()
Work-around uber ugly hack used in SavePrimitive and co.
REveManager(const REveManager &)=delete
ElementId_t fMaxElementIds
REveScene * GetEventScene() const
void ScheduleMIR(const std::string &cmd, ElementId_t i, const std::string &ctype)
REveSelection * GetHighlight() const
void RegisterGeometryAlias(const TString &alias, const TString &filename)
Register 'name' as an alias for geometry file 'filename'.
void PreDeleteElement(REveElement *element)
Called from REveElement prior to its destruction so the framework components (like object editor) can...
void ExecuteMIR(std::shared_ptr< MIR > mir)
ElementId_t fNumElementIds
REveSceneList * GetScenes() const
std::thread fMIRExecThread
void ClearAllSelections()
Clear all selection objects.
RExceptionHandler * fExcHandler
exception handler
void SetKeepEmptyCont(Bool_t k)
REveSelection * fSelection
void AssignElementId(REveElement *element)
Assign a unique ElementId to given element.
TGeoManager * GetDefaultGeometry()
Get the default geometry.
static void ExecuteInMainThread(std::function< void()> func)
void GetServerStatus(REveServerStatus &)
void SetDefaultHtmlPage(const std::string &path)
Set content of default window HTML page.
REveSelection * GetSelection() const
void AddLocation(const std::string &name, const std::string &path)
Register new directory to THttpServer.
void Send(unsigned connid, const std::string &data)
bool ClientConnectionsFree() const
static void Terminate()
Properly terminate global REveManager.
REveElement * FindElementById(ElementId_t id) const
Lookup ElementId in element map and return corresponding REveElement*.
void SaveVizDB(const TString &filename)
Save visualization-parameter database to file filename.
Bool_t GetVizDBReplace() const
TGeoManager * GetGeometryByAlias(const TString &alias)
Get geometry with given alias.
std::unordered_map< ElementId_t, REveElement * > fElementIdMap
static REveManager * Create()
If global REveManager* REX::gEve is not set initialize it.
std::unordered_map< std::string, std::shared_ptr< TMethodCall > > fMethCallMap
void WindowConnect(unsigned connid)
Process new connection from web window.
std::vector< Conn > fConnList
REveElement * FindVizDBEntry(const TString &tag)
Find a visualization-parameter database entry corresponding to tag.
ElementId_t fLastElementId
TGeoManager * GetGeometry(const TString &filename)
Get geometry with given filename.
REveScene * GetGlobalScene() const
std::shared_ptr< ROOT::Experimental::RWebWindow > fWebWindow
std::shared_ptr< REveGeomViewer > ShowGeometry(const RWebDisplayArgs &args="")
Show current geometry in web browser.
REveSelection * fHighlight
std::queue< std::shared_ptr< MIR > > fMIRqueue
Bool_t GetKeepEmptyCont() const
REveViewerList * fViewers
void LoadVizDB(const TString &filename, Bool_t replace, Bool_t update)
Load visualization-parameter database from file filename.
void DoRedraw3D()
Perform 3D redraw of scenes and viewers whose contents has changed.
REveManager & operator=(const REveManager &)=delete
void SetVizDBUpdate(Bool_t u)
void SendBinary(unsigned connid, const void *data, std::size_t len)
void AddElement(REveElement *element, REveElement *parent=nullptr)
Add an element.
std::shared_ptr< RWebWindow > GetWebWindow() const
void SetClientVersion(const std::string &version)
Set client version, used as prefix in scripts URL When changed, web browser will reload all related J...
void AddGlobalElement(REveElement *element, REveElement *parent=nullptr)
Add a global element, i.e.
void Redraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE)
void SceneSubscriberWaitingResponse(unsigned cinnId)
REveScene * SpawnNewScene(const char *name, const char *title="")
Create a new scene.
REveServerStatus fServerStatus
void SceneSubscriberProcessingChanges(unsigned cinnId)
void RemoveElement(REveElement *element, REveElement *parent)
Remove element from parent.
virtual ~REveManager()
Destructor.
void WindowDisconnect(unsigned connid)
Process disconnect of web window.
void FullRedraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE)
Perform 3D redraw of all scenes and viewers.
REveElement * fSelectionList
REveViewer * SpawnNewViewer(const char *name, const char *title="")
Create a new GL viewer.
Bool_t InsertVizDBEntry(const TString &tag, REveElement *model, Bool_t replace, Bool_t update)
Insert a new visualization-parameter database entry.
REveScene * GetWorld() const
RExceptionHandler * GetExcHandler() const
void BrowseElement(ElementId_t id)
Activate EVE browser (summary view) for specified element id.
Bool_t GetVizDBUpdate() const
REveViewerList * GetViewers() const
void WindowData(unsigned connid, const std::string &arg)
Process data from web window.
void Show(const RWebDisplayArgs &args="")
Show eve manager in specified browser.
REveSelection Container for selected and highlighted elements.
REveViewerList List of Viewers providing common operations on REveViewer collections.
REveViewer Reve representation of TGLViewer.
A diagnostic that can be emitted by the RLogManager.
Abstract RLogHandler base class.
std::unique_ptr< RLogHandler > Remove(RLogHandler *handler)
Remove and return the given log handler. Returns nullptr if not found.
static RLogManager & Get()
void PushFront(std::unique_ptr< RLogHandler > handler)
Add a RLogHandler in the front - to be called before all others.
Holds different arguments for starting browser with RWebDisplayHandle::Display() method.
This class stores a (key,value) pair using an external hash.
The manager class for any TGeo geometry.
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
Method or function calling interface.
virtual void Remove()
Remove std::exception handler from system handler list.
virtual void Add()
Add std::exception handler to system handler list.
R__EXTERN REveManager * gEve
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...