Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:11:42

0001 // @(#)root/eve:$Id$
0002 // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TEvePolygonSetProjectedGL
0013 #define ROOT_TEvePolygonSetProjectedGL
0014 
0015 #include "TGLObject.h"
0016 
0017 class TEvePolygonSetProjected;
0018 
0019 class TEvePolygonSetProjectedGL : public TGLObject
0020 {
0021 protected:
0022    struct Edge_t
0023    {
0024       Int_t fI, fJ;
0025       Edge_t(Int_t i, Int_t j)
0026       {
0027          if (i <= j) { fI = i; fJ = j; }
0028          else        { fI = j; fJ = i; }
0029       }
0030 
0031       bool operator<(const Edge_t& e) const
0032       {
0033          if (fI == e.fI)
0034             return fJ < e.fJ;
0035          else
0036             return fI < e.fI;
0037       }
0038    };
0039 
0040    TEvePolygonSetProjected *fM;
0041 
0042 public:
0043    TEvePolygonSetProjectedGL();
0044     ~TEvePolygonSetProjectedGL() override {}
0045 
0046    Bool_t SetModel(TObject* obj, const Option_t *opt = nullptr) override;
0047    void   SetBBox() override;
0048    void   Draw(TGLRnrCtx& rnrCtx) const override;
0049    void   DirectDraw(TGLRnrCtx& rnrCtx) const override;
0050 
0051    void   DrawHighlight(TGLRnrCtx& rnrCtx, const TGLPhysicalShape* pshp, Int_t lvl=-1) const override;
0052 
0053    Bool_t IgnoreSizeForOfInterest() const override { return kTRUE; }
0054 
0055 private:
0056    void DrawOutline() const;
0057 
0058    ClassDefOverride(TEvePolygonSetProjectedGL,0);  // GL-renderer for TEvePolygonSetProjected class.
0059 };
0060 
0061 #endif