geom_cms_stereo.C

Go to the documentation of this file.
00001 // @(#)root/eve:$Id: geom_cms_stereo.C 31843 2009-12-11 10:33:59Z matevz $
00002 // Author: Matevz Tadel
00003 
00004 // Shows CMS geometry in stereo mode.
00005 // This requires quad-buffer support in the OpenGL hardware / driver,
00006 // otheriwse a fatal error occurs.
00007 
00008 void geom_cms_stereo()
00009 {
00010    TEveManager::Create();
00011 
00012    TFile::SetCacheFileDir(".");
00013    gGeoManager = gEve->GetGeometry("http://root.cern.ch/files/cms.root");
00014    gGeoManager->DefaultColors();
00015 
00016    TGeoVolume* top = gGeoManager->GetTopVolume()->FindNode("CMSE_1")->GetVolume();
00017 
00018    TEveGeoTopNode* trk = new TEveGeoTopNode(gGeoManager, top->FindNode("TRAK_1"));
00019    trk->SetVisLevel(6);
00020    gEve->AddGlobalElement(trk);
00021 
00022    TEveGeoTopNode* calo = new TEveGeoTopNode(gGeoManager, top->FindNode("CALO_1"));
00023    calo->SetVisLevel(3);
00024    gEve->AddGlobalElement(calo);
00025 
00026    TEveGeoTopNode* muon = new TEveGeoTopNode(gGeoManager, top->FindNode("MUON_1"));
00027    muon->SetVisLevel(4);
00028    gEve->AddGlobalElement(muon);
00029 
00030    // --- Stereo ---
00031 
00032    TEveWindowSlot* slot = 0;
00033    slot = TEveWindow::CreateWindowInTab(gEve->GetBrowser()->GetTabRight());
00034 
00035    TEveViewer* sv = new TEveViewer("Stereo GL", "Stereoscopic view");
00036    sv->SpawnGLViewer(gEve->GetEditor(), kTRUE);
00037    sv->AddScene(gEve->GetGlobalScene());
00038 
00039    slot->ReplaceWindow(sv);
00040 
00041    gEve->GetViewers()->AddElement(sv);
00042 
00043    gEve->GetBrowser()->GetTabRight()->SetTab(1);
00044 
00045    // --- Redraw ---
00046 
00047    gEve->FullRedraw3D(kTRUE);
00048    gEve->EditElement(sv);
00049 
00050    // --- Fix editor ---
00051 
00052    // EClipType not exported to CINT (see TGLUtil.h):
00053    // 0 - no clip, 1 - clip plane, 2 - clip box
00054    TGLViewer *v = gEve->GetDefaultGLViewer();
00055    v->GetClipSet()->SetClipType(1);
00056    v->ColorSet().Background().SetColor(kMagenta+4);
00057    v->SetGuideState(TGLUtil::kAxesEdge, kTRUE, kFALSE, 0);
00058    v->RefreshPadEditor(v);
00059 
00060    v->CurrentCamera().RotateRad(-1.2, 0.5);
00061    v->DoDraw();
00062 }

Generated on Tue Jul 5 15:43:50 2011 for ROOT_528-00b_version by  doxygen 1.5.1