/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Fireworks/Core/interface/FWDetailViewGL.icc
78 строк
2 KB
Shahzad Malik Muzaffar
[Fireworks] Move public headers in to interface directory
16 авг 2021, 19:47
16 авг 2021, 19:47
51ca82e
Код
Авторство
О чём код?
#include "TCanvas.h" #include "RVersion.h" #include "TRootEmbeddedCanvas.h" #include "TGLViewer.h" #include "TEveWindow.h" #include "TEveViewer.h" #include "TEveScene.h" #include "TEveManager.h" #include "TSystem.h" #include "Fireworks/Core/interface/FWColorManager.h" #include "Fireworks/Core/interface/FWGLEventHandler.h" template <typename T> FWDetailViewGL<T>::FWDetailViewGL() : m_infoCanvas(nullptr), m_guiFrame(nullptr), m_eveViewer(nullptr), m_eveScene(nullptr) {} template <typename T> FWDetailViewGL<T>::~FWDetailViewGL() { m_eveScene->Destroy(); } template <typename T> void FWDetailViewGL<T>::init(TEveWindowSlot* slot) { TEveWindowPack* pack = slot->MakePack(); pack->SetHorizontal(); pack->SetShowTitleBar(kFALSE); pack->SetElementNameTitle("DetalView pack", "DetailViewPack"); // canvas & widgets TEveWindowFrame* frame = pack->NewSlotWithWeight(1)->MakeFrame(); frame->SetShowTitleBar(kFALSE); TGCompositeFrame* cf = frame->GetGUICompositeFrame(); TGCompositeFrame* hf = new TGVerticalFrame(cf); hf->SetCleanup(kLocalCleanup); cf->AddFrame(hf, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY)); { m_guiFrame = new TGVerticalFrame(hf); hf->AddFrame(m_guiFrame, new TGLayoutHints(kLHintsExpandX)); m_guiFrame->SetCleanup(kDeepCleanup); // legend TRootEmbeddedCanvas* ec = new TRootEmbeddedCanvas("Embeddedcanvas", hf, 100, 100, 0); hf->AddFrame(ec, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY)); m_infoCanvas = ec->GetCanvas(); m_infoCanvas->SetHighLightColor(-1); } cf->MapSubwindows(); cf->Layout(); cf->MapWindow(); // viewer GL m_eveViewer = new TEveViewer("DetailView"); #if ROOT_VERSION_CODE >= ROOT_VERSION(5, 25, 4) m_eveViewer->SpawnGLEmbeddedViewer(nullptr); #else m_eveViewer->SpawnGLEmbeddedViewer(); #endif pack->NewSlotWithWeight(3)->ReplaceWindow(m_eveViewer); m_eveViewer->SetShowTitleBar(kFALSE); gEve->GetViewers()->AddElement(m_eveViewer); m_eveScene = gEve->SpawnNewScene("Detailed view"); m_eveViewer->AddScene(m_eveScene); // override event handling TGLViewer* glv = m_eveViewer->GetGLViewer(); FWGLEventHandler* eh = new FWGLEventHandler((TGWindow*)glv->GetGLWidget(), (TObject*)glv); glv->SetEventHandler(eh); } template <typename T> void FWDetailViewGL<T>::setBackgroundColor(Color_t col) { FWColorManager::setColorSetViewer(viewerGL(), col); }