TEveCalo2DGL.h

Go to the documentation of this file.
00001 // @(#)root/eve:$Id: TEveCalo2DGL.h 33198 2010-04-26 08:40:04Z matevz $
00002 // Author: Matevz Tadel 2007
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 #ifndef ROOT_TEveCalo2DGL
00013 #define ROOT_TEveCalo2DGL
00014 
00015 #include "TGLObject.h"
00016 #include "TEveCaloData.h"
00017 #include "TEveCalo.h"
00018 
00019 class TGLViewer;
00020 class TGLScene;
00021 
00022 class TEveCalo2D;
00023 class TEveProjection;
00024 
00025 class TEveCalo2DGL : public TGLObject
00026 {
00027 private:
00028    TEveCalo2DGL(const TEveCalo2DGL&);            // Not implemented
00029    TEveCalo2DGL& operator=(const TEveCalo2DGL&); // Not implemented
00030 
00031 protected:
00032    TEveCalo2D   *fM;  // Model object.
00033 
00034    void      MakeRhoZCell(Float_t thetaMin, Float_t thetaMax, Float_t& offset, Bool_t isBarrel, Bool_t phiPlus, Float_t towerH) const;
00035 
00036    void      MakeRPhiCell(Float_t phiMin, Float_t phiMax, Float_t towerH, Float_t offset) const;
00037 
00038    void      DrawRPhi(TGLRnrCtx & rnrCtx, TEveCalo2D::vBinCells_t&) const;
00039    void      DrawRPhiHighlighted(std::vector<TEveCaloData::vCellId_t*>& cellLists) const;
00040    void      DrawRhoZ(TGLRnrCtx & rnrCtx, TEveCalo2D::vBinCells_t&) const;
00041    void      DrawRhoZHighlighted(std::vector<TEveCaloData::vCellId_t*>& cellLists) const;
00042 
00043    Bool_t    IsRPhi() const;
00044 
00045 public:
00046    TEveCalo2DGL();
00047    virtual ~TEveCalo2DGL() {}
00048 
00049    virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0);
00050    virtual void   SetBBox();
00051 
00052    virtual void DirectDraw(TGLRnrCtx & rnrCtx) const;
00053    virtual void DrawHighlight(TGLRnrCtx& rnrCtx, const TGLPhysicalShape* ps, Int_t lvl=-1) const;
00054 
00055    // To support two-level selection
00056    virtual Bool_t SupportsSecondarySelect() const { return kTRUE; }
00057    virtual Bool_t AlwaysSecondarySelect()   const { return kTRUE; }
00058    virtual void ProcessSelection(TGLRnrCtx & rnrCtx, TGLSelectRecord & rec);
00059 
00060    ClassDef(TEveCalo2DGL, 0); // GL renderer class for TEveCalo2D.
00061 };
00062 
00063 #endif

Generated on Tue Jul 5 14:14:48 2011 for ROOT_528-00b_version by  doxygen 1.5.1