Web-based ROOT geometry viewer.
Definition at line 27 of file RGeomViewer.hxx.
Public Member Functions | |
RGeomViewer (TGeoManager *mgr=nullptr, const std::string &volname="") | |
constructor | |
virtual | ~RGeomViewer () |
destructor | |
void | ClearOnClose (const std::shared_ptr< void > &handle) |
Set handle which will be cleared when connection is closed Must be called after window is shown. | |
RGeomDescription & | Description () |
bool | GetShowColumns () const |
bool | GetShowHierarchy () const |
Returns default hierarchy browser visibility. | |
const std::string & | GetTitle () const |
std::string | GetWindowAddr () const |
Return web window address (name) used for geometry viewer. | |
std::string | GetWindowUrl (bool remote) |
Return web window URL which can be used for connection See ROOT::RWebWindow::GetUrl docu for more details. | |
void | SaveAsMacro (const std::string &fname) |
Save viewer configuration as macro. | |
void | SaveImage (const std::string &fname="geometry.png", int width=0, int height=0) |
Produce PNG image of the geometry If web-browser is shown and drawing completed, image is requested from the browser. | |
void | SelectVolume (const std::string &volname) |
Select visible top volume, all other volumes will be disabled. | |
void | SetDrawOptions (const std::string &opt) |
Configures draw option for geometry Normally has effect before first drawing of the geometry When geometry displayed, only "axis" and "rotate" options are updated. | |
void | SetGeometry (TGeoManager *mgr, const std::string &volname="") |
assign new geometry to the viewer | |
void | SetLimits (int nnodes=5000, int nfaces=100000) |
Configures maximal number of visible nodes and faces. | |
void | SetOnlyVolume (TGeoVolume *vol) |
Draw only specified volume, special case when volume stored without valid geomanager. | |
void | SetShowColumns (bool on=true) |
void | SetShowHierarchy (bool on=true) |
Configures default hierarchy browser visibility, only has effect before showing web window. | |
void | SetTitle (const std::string &title) |
void | SetTopVisible (bool on=true) |
void | SetVisLevel (int lvl=3) |
Configures maximal visible level. | |
void | Show (const RWebDisplayArgs &args="", bool always_start_new_browser=false) |
Show or update geometry in web window If web browser already started - just refresh drawing like "reload" button does If no web window exists or. | |
void | Update () |
Update geometry drawings in all web displays. | |
Protected Member Functions | |
std::vector< int > | GetStackFromJson (const std::string &json, bool node_ids=false) |
convert JSON into stack array | |
void | ProcessSignal (const std::string &) |
Process signal from geom description when it changed by any means. | |
void | SendGeometry (unsigned connid=0, bool first_time=false) |
Send data for principal geometry draw Should be used when essential settings were changed in geometry description. | |
void | WebWindowCallback (unsigned connid, const std::string &arg) |
Process data from client. | |
void | WebWindowDisconnect (unsigned connid) |
Process disconnect event Clear cache data and dependent connections. | |
Protected Attributes | |
RGeomDescription | fDesc |
! geometry description, send to the client as first message | |
TGeoManager * | fGeoManager {nullptr} |
! geometry to show | |
bool | fInfoActive {false} |
! true when info page active and node info need to be provided | |
std::string | fSelectedVolume |
! name of selected volume | |
bool | fShowColumns {true} |
! show columns in hierarchy | |
bool | fShowHierarchy {true} |
! if hierarchy visible by default | |
std::string | fTitle |
! title of geometry viewer | |
std::shared_ptr< RGeomHierarchy > | fWebHierarchy |
! web handle for hierarchy part | |
std::shared_ptr< RWebWindow > | fWebWindow |
! web window to show geometry | |
#include <ROOT/RGeomViewer.hxx>
RGeomViewer::RGeomViewer | ( | TGeoManager * | mgr = nullptr , |
const std::string & | volname = "" |
||
) |
constructor
Definition at line 43 of file RGeomViewer.cxx.
|
virtual |
destructor
Definition at line 71 of file RGeomViewer.cxx.
void RGeomViewer::ClearOnClose | ( | const std::shared_ptr< void > & | handle | ) |
Set handle which will be cleared when connection is closed Must be called after window is shown.
Definition at line 452 of file RGeomViewer.cxx.
|
inline |
Definition at line 107 of file RGeomViewer.hxx.
|
inline |
Definition at line 97 of file RGeomViewer.hxx.
|
inline |
Returns default hierarchy browser visibility.
Definition at line 93 of file RGeomViewer.hxx.
|
protected |
convert JSON into stack array
Definition at line 172 of file RGeomViewer.cxx.
|
inline |
Definition at line 59 of file RGeomViewer.hxx.
std::string RGeomViewer::GetWindowAddr | ( | ) | const |
Return web window address (name) used for geometry viewer.
Definition at line 141 of file RGeomViewer.cxx.
std::string RGeomViewer::GetWindowUrl | ( | bool | remote | ) |
Return web window URL which can be used for connection See ROOT::RWebWindow::GetUrl docu for more details.
Definition at line 150 of file RGeomViewer.cxx.
|
protected |
Process signal from geom description when it changed by any means.
Definition at line 373 of file RGeomViewer.cxx.
void RGeomViewer::SaveAsMacro | ( | const std::string & | fname | ) |
Save viewer configuration as macro.
Definition at line 405 of file RGeomViewer.cxx.
void RGeomViewer::SaveImage | ( | const std::string & | fname = "geometry.png" , |
int | width = 0 , |
||
int | height = 0 |
||
) |
Produce PNG image of the geometry If web-browser is shown and drawing completed, image is requested from the browser.
In this case method executed asynchronously - it returns immediately and image will stored shortly afterwards when received from the client Height and width parameters are ignored in that case and derived from actual drawing size in the browser. Another possibility is to invoke headless browser, providing positive width and height parameter explicitely
Definition at line 239 of file RGeomViewer.cxx.
void RGeomViewer::SelectVolume | ( | const std::string & | volname | ) |
Select visible top volume, all other volumes will be disabled.
Definition at line 92 of file RGeomViewer.cxx.
|
protected |
Send data for principal geometry draw Should be used when essential settings were changed in geometry description.
Definition at line 193 of file RGeomViewer.cxx.
void RGeomViewer::SetDrawOptions | ( | const std::string & | opt | ) |
Configures draw option for geometry Normally has effect before first drawing of the geometry When geometry displayed, only "axis" and "rotate" options are updated.
Definition at line 221 of file RGeomViewer.cxx.
void RGeomViewer::SetGeometry | ( | TGeoManager * | mgr, |
const std::string & | volname = "" |
||
) |
assign new geometry to the viewer
Definition at line 79 of file RGeomViewer.cxx.
Configures maximal number of visible nodes and faces.
Definition at line 72 of file RGeomViewer.hxx.
void RGeomViewer::SetOnlyVolume | ( | TGeoVolume * | vol | ) |
Draw only specified volume, special case when volume stored without valid geomanager.
Definition at line 101 of file RGeomViewer.cxx.
|
inline |
Definition at line 95 of file RGeomViewer.hxx.
|
inline |
Configures default hierarchy browser visibility, only has effect before showing web window.
Definition at line 90 of file RGeomViewer.hxx.
|
inline |
Definition at line 58 of file RGeomViewer.hxx.
|
inline |
Definition at line 84 of file RGeomViewer.hxx.
|
inline |
Configures maximal visible level.
Definition at line 79 of file RGeomViewer.hxx.
void RGeomViewer::Show | ( | const RWebDisplayArgs & | args = "" , |
bool | always_start_new_browser = false |
||
) |
Show or update geometry in web window If web browser already started - just refresh drawing like "reload" button does If no web window exists or.
always_start_new_browser | configured, starts new window |
args | arguments to display |
Definition at line 117 of file RGeomViewer.cxx.
void RGeomViewer::Update | ( | ) |
Update geometry drawings in all web displays.
Definition at line 158 of file RGeomViewer.cxx.
|
protected |
Process data from client.
Definition at line 268 of file RGeomViewer.cxx.
|
protected |
Process disconnect event Clear cache data and dependent connections.
Definition at line 361 of file RGeomViewer.cxx.
|
protected |
! geometry description, send to the client as first message
Definition at line 33 of file RGeomViewer.hxx.
|
protected |
! geometry to show
Definition at line 31 of file RGeomViewer.hxx.
|
protected |
! true when info page active and node info need to be provided
Definition at line 37 of file RGeomViewer.hxx.
|
protected |
! name of selected volume
Definition at line 32 of file RGeomViewer.hxx.
|
protected |
! show columns in hierarchy
Definition at line 35 of file RGeomViewer.hxx.
|
protected |
! if hierarchy visible by default
Definition at line 34 of file RGeomViewer.hxx.
|
protected |
! title of geometry viewer
Definition at line 36 of file RGeomViewer.hxx.
|
protected |
! web handle for hierarchy part
Definition at line 41 of file RGeomViewer.hxx.
|
protected |
! web window to show geometry
Definition at line 39 of file RGeomViewer.hxx.