ROOT logo

From $ROOTSYS/tutorials/eve/geom_cms_stereo.C

// @(#)root/eve:$Id: geom_cms_stereo.C 31843 2009-12-11 10:33:59Z matevz $
// Author: Matevz Tadel

// Shows CMS geometry in stereo mode.
// This requires quad-buffer support in the OpenGL hardware / driver,
// otheriwse a fatal error occurs.

void geom_cms_stereo()
{
   TEveManager::Create();

   TFile::SetCacheFileDir(".");
   gGeoManager = gEve->GetGeometry("http://root.cern.ch/files/cms.root");
   gGeoManager->DefaultColors();

   TGeoVolume* top = gGeoManager->GetTopVolume()->FindNode("CMSE_1")->GetVolume();

   TEveGeoTopNode* trk = new TEveGeoTopNode(gGeoManager, top->FindNode("TRAK_1"));
   trk->SetVisLevel(6);
   gEve->AddGlobalElement(trk);

   TEveGeoTopNode* calo = new TEveGeoTopNode(gGeoManager, top->FindNode("CALO_1"));
   calo->SetVisLevel(3);
   gEve->AddGlobalElement(calo);

   TEveGeoTopNode* muon = new TEveGeoTopNode(gGeoManager, top->FindNode("MUON_1"));
   muon->SetVisLevel(4);
   gEve->AddGlobalElement(muon);

   // --- Stereo ---

   TEveWindowSlot* slot = 0;
   slot = TEveWindow::CreateWindowInTab(gEve->GetBrowser()->GetTabRight());

   TEveViewer* sv = new TEveViewer("Stereo GL", "Stereoscopic view");
   sv->SpawnGLViewer(gEve->GetEditor(), kTRUE);
   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
   TGLViewer *v = gEve->GetDefaultGLViewer();
   v->GetClipSet()->SetClipType(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();
}
 geom_cms_stereo.C:1
 geom_cms_stereo.C:2
 geom_cms_stereo.C:3
 geom_cms_stereo.C:4
 geom_cms_stereo.C:5
 geom_cms_stereo.C:6
 geom_cms_stereo.C:7
 geom_cms_stereo.C:8
 geom_cms_stereo.C:9
 geom_cms_stereo.C:10
 geom_cms_stereo.C:11
 geom_cms_stereo.C:12
 geom_cms_stereo.C:13
 geom_cms_stereo.C:14
 geom_cms_stereo.C:15
 geom_cms_stereo.C:16
 geom_cms_stereo.C:17
 geom_cms_stereo.C:18
 geom_cms_stereo.C:19
 geom_cms_stereo.C:20
 geom_cms_stereo.C:21
 geom_cms_stereo.C:22
 geom_cms_stereo.C:23
 geom_cms_stereo.C:24
 geom_cms_stereo.C:25
 geom_cms_stereo.C:26
 geom_cms_stereo.C:27
 geom_cms_stereo.C:28
 geom_cms_stereo.C:29
 geom_cms_stereo.C:30
 geom_cms_stereo.C:31
 geom_cms_stereo.C:32
 geom_cms_stereo.C:33
 geom_cms_stereo.C:34
 geom_cms_stereo.C:35
 geom_cms_stereo.C:36
 geom_cms_stereo.C:37
 geom_cms_stereo.C:38
 geom_cms_stereo.C:39
 geom_cms_stereo.C:40
 geom_cms_stereo.C:41
 geom_cms_stereo.C:42
 geom_cms_stereo.C:43
 geom_cms_stereo.C:44
 geom_cms_stereo.C:45
 geom_cms_stereo.C:46
 geom_cms_stereo.C:47
 geom_cms_stereo.C:48
 geom_cms_stereo.C:49
 geom_cms_stereo.C:50
 geom_cms_stereo.C:51
 geom_cms_stereo.C:52
 geom_cms_stereo.C:53
 geom_cms_stereo.C:54
 geom_cms_stereo.C:55
 geom_cms_stereo.C:56
 geom_cms_stereo.C:57
 geom_cms_stereo.C:58
 geom_cms_stereo.C:59
 geom_cms_stereo.C:60
 geom_cms_stereo.C:61
 geom_cms_stereo.C:62
 geom_cms_stereo.C:63