// @(#)root/eve:$Id$
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 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_TEvePolygonSetProjectedGL
#define ROOT_TEvePolygonSetProjectedGL

#include "TGLObject.h"

class TEvePolygonSetProjected;

class TEvePolygonSetProjectedGL : public TGLObject
{
protected:
   struct Edge_t
   {
      Int_t fI, fJ;
      Edge_t(Int_t i, Int_t j)
      {
         if (i <= j) { fI = i; fJ = j; }
         else        { fI = j; fJ = i; }
      }

      bool operator<(const Edge_t& e) const
      {
         if (fI == e.fI)
            return fJ < e.fJ;
         else
            return fI < e.fI;
      }
   };

   TEvePolygonSetProjected *fM;

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

   virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0);
   virtual void   SetBBox();
   virtual void   Draw(TGLRnrCtx& rnrCtx) const;
   virtual void   DirectDraw(TGLRnrCtx& rnrCtx) const;

   virtual void   DrawHighlight(TGLRnrCtx& rnrCtx, const TGLPhysicalShape* pshp, Int_t lvl=-1) const;

   virtual Bool_t IgnoreSizeForOfInterest() const { return kTRUE; }

private:
   void DrawOutline() const;

   ClassDef(TEvePolygonSetProjectedGL,0);  // GL-renderer for TEvePolygonSetProjected class.
};

#endif
 TEvePolygonSetProjectedGL.h:1
 TEvePolygonSetProjectedGL.h:2
 TEvePolygonSetProjectedGL.h:3
 TEvePolygonSetProjectedGL.h:4
 TEvePolygonSetProjectedGL.h:5
 TEvePolygonSetProjectedGL.h:6
 TEvePolygonSetProjectedGL.h:7
 TEvePolygonSetProjectedGL.h:8
 TEvePolygonSetProjectedGL.h:9
 TEvePolygonSetProjectedGL.h:10
 TEvePolygonSetProjectedGL.h:11
 TEvePolygonSetProjectedGL.h:12
 TEvePolygonSetProjectedGL.h:13
 TEvePolygonSetProjectedGL.h:14
 TEvePolygonSetProjectedGL.h:15
 TEvePolygonSetProjectedGL.h:16
 TEvePolygonSetProjectedGL.h:17
 TEvePolygonSetProjectedGL.h:18
 TEvePolygonSetProjectedGL.h:19
 TEvePolygonSetProjectedGL.h:20
 TEvePolygonSetProjectedGL.h:21
 TEvePolygonSetProjectedGL.h:22
 TEvePolygonSetProjectedGL.h:23
 TEvePolygonSetProjectedGL.h:24
 TEvePolygonSetProjectedGL.h:25
 TEvePolygonSetProjectedGL.h:26
 TEvePolygonSetProjectedGL.h:27
 TEvePolygonSetProjectedGL.h:28
 TEvePolygonSetProjectedGL.h:29
 TEvePolygonSetProjectedGL.h:30
 TEvePolygonSetProjectedGL.h:31
 TEvePolygonSetProjectedGL.h:32
 TEvePolygonSetProjectedGL.h:33
 TEvePolygonSetProjectedGL.h:34
 TEvePolygonSetProjectedGL.h:35
 TEvePolygonSetProjectedGL.h:36
 TEvePolygonSetProjectedGL.h:37
 TEvePolygonSetProjectedGL.h:38
 TEvePolygonSetProjectedGL.h:39
 TEvePolygonSetProjectedGL.h:40
 TEvePolygonSetProjectedGL.h:41
 TEvePolygonSetProjectedGL.h:42
 TEvePolygonSetProjectedGL.h:43
 TEvePolygonSetProjectedGL.h:44
 TEvePolygonSetProjectedGL.h:45
 TEvePolygonSetProjectedGL.h:46
 TEvePolygonSetProjectedGL.h:47
 TEvePolygonSetProjectedGL.h:48
 TEvePolygonSetProjectedGL.h:49
 TEvePolygonSetProjectedGL.h:50
 TEvePolygonSetProjectedGL.h:51
 TEvePolygonSetProjectedGL.h:52
 TEvePolygonSetProjectedGL.h:53
 TEvePolygonSetProjectedGL.h:54
 TEvePolygonSetProjectedGL.h:55
 TEvePolygonSetProjectedGL.h:56
 TEvePolygonSetProjectedGL.h:57
 TEvePolygonSetProjectedGL.h:58
 TEvePolygonSetProjectedGL.h:59
 TEvePolygonSetProjectedGL.h:60
 TEvePolygonSetProjectedGL.h:61