]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveBase/AliEveMultiView.h
From Pawel Debski.
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveMultiView.h
1 // $Id$
2 // Author: Matevz Tadel 2009
3
4 /**************************************************************************
5  * Copyright(c) 1998-2009, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #ifndef AliEveMultiView_H
11 #define AliEveMultiView_H
12
13 #include <TEveManager.h>
14
15 #include <TEveViewer.h>
16 #include <TGLViewer.h>
17
18 #include <TEveScene.h>
19 #include <TEveGeoShape.h>
20
21 #include <TEveProjectionManager.h>
22 #include <TEveProjectionAxes.h>
23
24 #include <TEveBrowser.h>
25 #include <TEveWindow.h>
26
27 //______________________________________________________________________________
28 // Short description of AliEveMultiView
29 //
30
31 class AliEveMultiView
32 {
33 public:
34   AliEveMultiView();
35   virtual ~AliEveMultiView() {}
36
37   static AliEveMultiView* Instance();
38
39   void InitGeomGentle(TEveGeoShape* g3d, TEveGeoShape* grphi, TEveGeoShape* grhoz);
40   void InitGeomGentleTrd(TEveGeoShape* gtrd);
41   void InitGeomGentleMuon(TEveGeoShape* gmuon, Bool_t showRPhi, Bool_t showRhoZ);
42
43   //-------------------------------------------------------------------------
44
45   void SetDepth(Float_t d);
46
47   //-------------------------------------------------------------------------
48
49   void ImportGeomRPhi(TEveElement* el);
50   void ImportGeomRhoZ(TEveElement* el);
51   void ImportEventRPhi(TEveElement* el);
52   void ImportEventRhoZ(TEveElement* el);
53
54   void DestroyEventRPhi();
55   void DestroyEventRhoZ();
56
57   void SetCenterRPhi(Double_t x, Double_t y, Double_t z);
58   void SetCenterRhoZ(Double_t x, Double_t y, Double_t z);
59
60   void DestroyAllGeometries();
61
62   //-------------------------------------------------------------------------
63
64   TEveViewer* Get3DView()   { return f3DView; }
65   TEveViewer* GetRPhiView() { return fRPhiView; }
66   TEveViewer* GetRhoZView() { return fRhoZView; }
67
68
69 protected:
70   TEveProjectionManager *fRPhiMgr; // Obvious meaning.
71   TEveProjectionManager *fRhoZMgr; // Obvious meaning.
72
73   TEveViewer            *f3DView;   // Obvious meaning.
74   TEveViewer            *fRPhiView; // Obvious meaning.
75   TEveViewer            *fRhoZView; // Obvious meaning.
76
77   TEveScene             *fRPhiGeomScene;  // Obvious meaning.
78   TEveScene             *fRhoZGeomScene;  // Obvious meaning.
79   TEveScene             *fRPhiEventScene; // Obvious meaning.
80   TEveScene             *fRhoZEventScene; // Obvious meaning.
81
82   TEveGeoShape          *fGeomGentle;     // Obvious meaning.
83   TEveGeoShape          *fGeomGentleRPhi; // Obvious meaning.
84   TEveGeoShape          *fGeomGentleRhoZ; // Obvious meaning.
85   TEveGeoShape          *fGeomGentleTrd;  // Obvious meaning.
86   TEveGeoShape          *fGeomGentleMuon; // Obvious meaning.
87
88   static AliEveMultiView* fgInstance;     // Obvious meaning.
89
90 private:
91   AliEveMultiView(const AliEveMultiView&);            // Not implemented
92   AliEveMultiView& operator=(const AliEveMultiView&); // Not implemented
93
94   ClassDef(AliEveMultiView, 0); // Multiple-views.
95 };
96
97 #endif