Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
geom_cms_stereo.C File Reference

Detailed Description

Shows CMS geometry in stereo mode.

This requires quad-buffer support in the OpenGL hardware / driver, otherwise a fatal error occurs.

void geom_cms_stereo(Bool_t quad_buf = kTRUE)
{
gGeoManager = gEve->GetGeometry("http://root.cern/files/cms.root");
gGeoManager->DefaultColors();
auto top = gGeoManager->GetTopVolume()->FindNode("CMSE_1")->GetVolume();
auto trk = new TEveGeoTopNode(gGeoManager, top->FindNode("TRAK_1"));
trk->SetVisLevel(6);
gEve->AddGlobalElement(trk);
auto calo = new TEveGeoTopNode(gGeoManager, top->FindNode("CALO_1"));
calo->SetVisLevel(3);
gEve->AddGlobalElement(calo);
auto muon = new TEveGeoTopNode(gGeoManager, top->FindNode("MUON_1"));
muon->SetVisLevel(4);
gEve->AddGlobalElement(muon);
// --- Stereo ---
TEveWindowSlot *slot = 0;
slot = TEveWindow::CreateWindowInTab(gEve->GetBrowser()->GetTabRight());
auto sv = new TEveViewer("Stereo GL", "Stereoscopic view");
sv->SpawnGLViewer(gEve->GetEditor(), kTRUE, quad_buf);
sv->AddScene(gEve->GetGlobalScene());
slot->ReplaceWindow(sv);
gEve->GetViewers()->AddElement(sv);
gEve->GetBrowser()->GetTabRight()->SetTab(1);
// --- Redraw ---
gEve->FullRedraw3D(kTRUE);
gEve->EditElement(sv);
// --- Fix editor ---
// EClipType not exported to CINT (see TGLUtil.h):
// 0 - no clip, 1 - clip plane, 2 - clip box
auto v = gEve->GetDefaultGLViewer();
v->GetClipSet()->SetClipType(TGLClip::EType(1));
v->ColorSet().Background().SetColor(kMagenta + 4);
v->SetGuideState(TGLUtil::kAxesEdge, kTRUE, kFALSE, 0);
v->RefreshPadEditor(v);
v->CurrentCamera().RotateRad(-1.2, 0.5);
v->DoDraw();
}
bool Bool_t
Boolean (0=false, 1=true) (bool).
Definition RtypesCore.h:77
constexpr Bool_t kFALSE
Definition RtypesCore.h:108
constexpr Bool_t kTRUE
Definition RtypesCore.h:107
@ kMagenta
Definition Rtypes.h:67
externTEveManager * gEve
externTGeoManager * gGeoManager
A wrapper over a TGeoNode, possibly displaced with a global trasformation stored in TEveElement.
Definition TEveGeoNode.h:90
static TEveManager * Create(Bool_t map_window=kTRUE, Option_t *opt="FIV")
If global TEveManager* gEve is not set initialize it.
Eve representation of TGLViewer.
Definition TEveViewer.h:31
Description of TEveWindowSlot.
Definition TEveWindow.h:302
void ReplaceWindow(TEveWindow *w)
Replace this window with the passed one.
static TEveWindowSlot * CreateWindowInTab(TGTab *tab, TEveWindow *eve_parent=nullptr)
Create a new tab in a given tab-widget and populate it with a default window-slot.
static Bool_t SetCacheFileDir(std::string_view cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE)
Sets the directory where to locally stage/cache remote files.
Definition TFile.cxx:4328
@ kAxesEdge
Definition TGLUtil.h:952
Author
Matevz Tadel

Definition in file geom_cms_stereo.C.