From e943b3c10ab8aececabca0570c16cbeb448210f2 Mon Sep 17 00:00:00 2001 From: quark Date: Tue, 19 Jun 2012 13:05:50 +0000 Subject: [PATCH] Adding ALICE specific implementations of Eve --- EVE/EveBase/AliEveApplication.cxx | 54 +++++++++++++++++++++ EVE/EveBase/AliEveApplication.h | 30 ++++++++++++ EVE/EveBase/AliEveManager.cxx | 81 +++++++++++++++++++++++++++++++ EVE/EveBase/AliEveManager.h | 31 ++++++++++++ 4 files changed, 196 insertions(+) create mode 100644 EVE/EveBase/AliEveApplication.cxx create mode 100644 EVE/EveBase/AliEveApplication.h create mode 100644 EVE/EveBase/AliEveManager.cxx create mode 100644 EVE/EveBase/AliEveManager.h diff --git a/EVE/EveBase/AliEveApplication.cxx b/EVE/EveBase/AliEveApplication.cxx new file mode 100644 index 00000000000..9cce3e843fc --- /dev/null +++ b/EVE/EveBase/AliEveApplication.cxx @@ -0,0 +1,54 @@ +// Author: Mihai Niculescu 2012 + +/************************************************************************** + * Copyright(c) 1998-2012, ALICE Experiment at CERN, all rights reserved. * + * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * + * full copyright notice. * + **************************************************************************/ + +#include +#include +#include +#include + +#include + +#include +#include + + +ClassImp(AliEveApplication) + +AliEveApplication::AliEveApplication(const char* appClassName, int* argc, char** argv, void* options, int numOptions, Bool_t noLogo) + : TRint(appClassName, argc, argv, options, numOptions, noLogo) +{ + Init(); +} + +AliEveApplication::~AliEveApplication() +{} + +void AliEveApplication::Init() +{ + + static const TEveException kEH("alieve::main"); + + TString evedir(Form("%s/EVE", gSystem->Getenv("ALICE_ROOT"))); + + TString macPath(gROOT->GetMacroPath()); + macPath += Form(":%s/macros", evedir.Data()); + gInterpreter->AddIncludePath(evedir); + + macPath += Form(":%s/alice-macros", evedir.Data()); + gInterpreter->AddIncludePath(Form("%s/EVE", gSystem->Getenv("ALICE_ROOT"))); + gInterpreter->AddIncludePath(Form("%s/PWG0", gSystem->Getenv("ALICE_ROOT"))); + gInterpreter->AddIncludePath(Form("%s/include", gSystem->Getenv("ALICE_ROOT"))); + gInterpreter->AddIncludePath(gSystem->Getenv("ALICE_ROOT")); + + gROOT->SetMacroPath(macPath); + + // make sure logger is instantiated + AliLog::GetRootLogger(); + + +} diff --git a/EVE/EveBase/AliEveApplication.h b/EVE/EveBase/AliEveApplication.h new file mode 100644 index 00000000000..db1b5f8593c --- /dev/null +++ b/EVE/EveBase/AliEveApplication.h @@ -0,0 +1,30 @@ +// Author: Mihai Niculescu 2012 + +/************************************************************************** + * Copyright(c) 1998-2012, ALICE Experiment at CERN, all rights reserved. * + * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * + * full copyright notice. * + **************************************************************************/ + +#ifndef AliEveApplication_H +#define AliEveApplication_H + +#include + +class AliEveApplication : public TRint +{ +public: + AliEveApplication(const char* appClassName, Int_t* argc, char** argv, void* options = 0, Int_t numOptions = 0, Bool_t noLogo = kFALSE); + virtual ~AliEveApplication(); + + void Init(); // Initialize AliEve & Rint Environment + +private: + AliEveApplication(const AliEveApplication&); // not implemented + AliEveApplication& operator=(const AliEveApplication&); // not implemented + +public: + + ClassDef(AliEveApplication, 0); // AliEve application +}; +#endif diff --git a/EVE/EveBase/AliEveManager.cxx b/EVE/EveBase/AliEveManager.cxx new file mode 100644 index 00000000000..d92918aa643 --- /dev/null +++ b/EVE/EveBase/AliEveManager.cxx @@ -0,0 +1,81 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "AliEveManager.h" + +//______________________________________________________________________________ +// AliEveManager +// +// Central aplication manager for AliEve. +// Manages environment, gEve, elements, GUI, GL scenes and GL viewers. +// +// ALICE_ROOT must be defined prior creating this object +ClassImp(AliEveManager); + +AliEveManager::AliEveManager(UInt_t w, UInt_t h, Bool_t map_window, Option_t* opt) + : TEveManager(w, h, map_window, opt) +{ + + Init(); + +} + +AliEveManager* AliEveManager::Create(Bool_t map_window, Option_t* opt) +{ + Int_t w = 1024; + Int_t h = 768; + + if(gEve == 0){ + gEve = new AliEveManager(w, h, map_window, opt); + } + + return (AliEveManager*)gEve; +} + +AliEveManager::~AliEveManager() +{ + AliEveMultiView* mv = AliEveMultiView::Instance(); + + delete mv; + mv = 0; +} + +void AliEveManager::Init() +{ + GetDefaultViewer()->SetElementName("3D View"); + GetSelection()->SetPickToSelect(TEveSelection::kPS_PableCompound); + GetHighlight()->SetPickToSelect(TEveSelection::kPS_PableCompound); + + RegisterGeometryAlias("Default", Form("%s/EVE/alice-data/default_geo.root", gSystem->Getenv("ALICE_ROOT")) ); + + AliEveConfigManager::InitializeMaster(); // initializes menus +} + +void AliEveManager::CloseEveWindow() +{ + // Close button haas been clicked on EVE main window (browser). + // Cleanup and terminate application. + + TEveBrowser *eb = dynamic_cast( GetMainWindow() ); + eb->DontCallClose(); + + TEveGedEditor::DestroyEditors(); + +} + +void AliEveManager::Terminate() +{ + +} diff --git a/EVE/EveBase/AliEveManager.h b/EVE/EveBase/AliEveManager.h new file mode 100644 index 00000000000..5e4b3103370 --- /dev/null +++ b/EVE/EveBase/AliEveManager.h @@ -0,0 +1,31 @@ +// Author: Mihai Niculescu 2012 + +/************************************************************************** + * Copyright(c) 1998-2012, ALICE Experiment at CERN, all rights reserved. * + * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * + * full copyright notice. * + **************************************************************************/ + +#ifndef AliEveManager_H +#define AliEveManager_H + +#include + +class AliEveManager : public TEveManager +{ +public: + AliEveManager(UInt_t w, UInt_t h, Bool_t map_window=kTRUE, Option_t* opt="FI"); + ~AliEveManager(); + + static AliEveManager* Create(Bool_t map_window=kTRUE, Option_t* opt="FIV"); + + void CloseEveWindow(); + void Terminate(); +protected: + void Init(); + +public: + + ClassDef(AliEveManager, 0); // Eve application manager +}; +#endif -- 2.39.3