ROOT logo
// @(#)root/eve:$Id: TEveCaloLegoOverlay.h 27643 2009-02-27 16:13:24Z matevz $
// Author: Alja Mrak-Tadel 2007

/*************************************************************************
 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TEveCaloLegoOverlay
#define ROOT_TEveCaloLegoOverlay

#include "TGLCameraOverlay.h"
#include "TEveElement.h"

class TEveCaloLego;

class TEveCaloLegoOverlay : public TGLCameraOverlay,
                        public TEveElementList
{
private:
   TEveCaloLegoOverlay(const TEveCaloLegoOverlay&);            // Not implemented
   TEveCaloLegoOverlay& operator=(const TEveCaloLegoOverlay&); // Not implemented

   void DrawSlider(TGLRnrCtx& rnrCtx);

   Bool_t SetSliderVal(Event_t* event,TGLRnrCtx& rnrCtx );

   TString        fHeaderTxt;
   Bool_t         fHeaderSelected;

protected:
   TEveCaloLego*  fCalo;
   TAxis         *fSliderAxis;

   Color_t        fMainColor;

   Bool_t         fShowCamera;
   Bool_t         fShowPlane;

   // plane-value
   Float_t        fMenuW;
   Float_t        fButtonW;
   Float_t        fSliderH;    // slider height in % of viewport
   Float_t        fSliderPosY; // y position of slider bottom up
   Bool_t         fShowSlider;
   Float_t        fSliderVal;

   // event handling
   Int_t           fActiveID;
   Color_t         fActiveCol;

   virtual  void   RenderPlaneInterface(TGLRnrCtx& rnrCtx);
   virtual  void   RenderHeader(TGLRnrCtx& rnrCtx);

public:
   TEveCaloLegoOverlay();
   virtual ~TEveCaloLegoOverlay(){}

   // event handling
   virtual  Bool_t MouseEnter(TGLOvlSelectRecord& selRec);
   virtual  Bool_t Handle(TGLRnrCtx& rnrCtx, TGLOvlSelectRecord& selRec, Event_t* event);
   virtual  void   MouseLeave();

   //rendering
   virtual  void   Render(TGLRnrCtx& rnrCtx);

   TEveCaloLego* GetCaloLego() {return fCalo;}
   void SetCaloLego(TEveCaloLego* c) {fCalo = c;}

   void SetShowCamera (Bool_t x) { fShowCamera = x; }
   Bool_t GetShowCamera() const { return fShowCamera; }
   void SetShowPlane (Bool_t x) { fShowPlane = x; }
   Bool_t GetShowPlane() const { return fShowPlane; }

   void  SetHeaderTxt(const char *txt) {fHeaderTxt = txt; }
   const char* GetHeaderTxt() const { return fHeaderTxt; }

   ClassDef(TEveCaloLegoOverlay, 0); // GL-overaly control GUI for TEveCaloLego.
};

#endif
 TEveCaloLegoOverlay.h:1
 TEveCaloLegoOverlay.h:2
 TEveCaloLegoOverlay.h:3
 TEveCaloLegoOverlay.h:4
 TEveCaloLegoOverlay.h:5
 TEveCaloLegoOverlay.h:6
 TEveCaloLegoOverlay.h:7
 TEveCaloLegoOverlay.h:8
 TEveCaloLegoOverlay.h:9
 TEveCaloLegoOverlay.h:10
 TEveCaloLegoOverlay.h:11
 TEveCaloLegoOverlay.h:12
 TEveCaloLegoOverlay.h:13
 TEveCaloLegoOverlay.h:14
 TEveCaloLegoOverlay.h:15
 TEveCaloLegoOverlay.h:16
 TEveCaloLegoOverlay.h:17
 TEveCaloLegoOverlay.h:18
 TEveCaloLegoOverlay.h:19
 TEveCaloLegoOverlay.h:20
 TEveCaloLegoOverlay.h:21
 TEveCaloLegoOverlay.h:22
 TEveCaloLegoOverlay.h:23
 TEveCaloLegoOverlay.h:24
 TEveCaloLegoOverlay.h:25
 TEveCaloLegoOverlay.h:26
 TEveCaloLegoOverlay.h:27
 TEveCaloLegoOverlay.h:28
 TEveCaloLegoOverlay.h:29
 TEveCaloLegoOverlay.h:30
 TEveCaloLegoOverlay.h:31
 TEveCaloLegoOverlay.h:32
 TEveCaloLegoOverlay.h:33
 TEveCaloLegoOverlay.h:34
 TEveCaloLegoOverlay.h:35
 TEveCaloLegoOverlay.h:36
 TEveCaloLegoOverlay.h:37
 TEveCaloLegoOverlay.h:38
 TEveCaloLegoOverlay.h:39
 TEveCaloLegoOverlay.h:40
 TEveCaloLegoOverlay.h:41
 TEveCaloLegoOverlay.h:42
 TEveCaloLegoOverlay.h:43
 TEveCaloLegoOverlay.h:44
 TEveCaloLegoOverlay.h:45
 TEveCaloLegoOverlay.h:46
 TEveCaloLegoOverlay.h:47
 TEveCaloLegoOverlay.h:48
 TEveCaloLegoOverlay.h:49
 TEveCaloLegoOverlay.h:50
 TEveCaloLegoOverlay.h:51
 TEveCaloLegoOverlay.h:52
 TEveCaloLegoOverlay.h:53
 TEveCaloLegoOverlay.h:54
 TEveCaloLegoOverlay.h:55
 TEveCaloLegoOverlay.h:56
 TEveCaloLegoOverlay.h:57
 TEveCaloLegoOverlay.h:58
 TEveCaloLegoOverlay.h:59
 TEveCaloLegoOverlay.h:60
 TEveCaloLegoOverlay.h:61
 TEveCaloLegoOverlay.h:62
 TEveCaloLegoOverlay.h:63
 TEveCaloLegoOverlay.h:64
 TEveCaloLegoOverlay.h:65
 TEveCaloLegoOverlay.h:66
 TEveCaloLegoOverlay.h:67
 TEveCaloLegoOverlay.h:68
 TEveCaloLegoOverlay.h:69
 TEveCaloLegoOverlay.h:70
 TEveCaloLegoOverlay.h:71
 TEveCaloLegoOverlay.h:72
 TEveCaloLegoOverlay.h:73
 TEveCaloLegoOverlay.h:74
 TEveCaloLegoOverlay.h:75
 TEveCaloLegoOverlay.h:76
 TEveCaloLegoOverlay.h:77
 TEveCaloLegoOverlay.h:78
 TEveCaloLegoOverlay.h:79
 TEveCaloLegoOverlay.h:80
 TEveCaloLegoOverlay.h:81
 TEveCaloLegoOverlay.h:82
 TEveCaloLegoOverlay.h:83
 TEveCaloLegoOverlay.h:84