00001 // @(#)root/eve:$Id: TEveJetConeGL.h 35221 2010-09-10 11:46:37Z matevz $ 00002 // Author: Matevz Tadel, Jochen Thaeder 2009 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_TEveJetConeGL 00013 #define ROOT_TEveJetConeGL 00014 00015 #include "TGLObject.h" 00016 #include "TEveVector.h" 00017 00018 class TGLViewer; 00019 class TGLScene; 00020 00021 class TEveJetCone; 00022 class TEveJetConeProjected; 00023 00024 //------------------------------------------------------------------------------ 00025 // TEveJetCone 00026 //------------------------------------------------------------------------------ 00027 00028 class TEveJetConeGL : public TGLObject 00029 { 00030 private: 00031 TEveJetConeGL(const TEveJetConeGL&); // Not implemented 00032 TEveJetConeGL& operator=(const TEveJetConeGL&); // Not implemented 00033 00034 protected: 00035 TEveJetCone *fC; // Model object. 00036 mutable std::vector<TEveVector> fP; 00037 00038 virtual void CalculatePoints() const; 00039 00040 public: 00041 TEveJetConeGL(); 00042 virtual ~TEveJetConeGL() {} 00043 00044 virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0); 00045 virtual void SetBBox(); 00046 00047 virtual void DLCacheClear(); 00048 virtual void Draw(TGLRnrCtx& rnrCtx) const; 00049 virtual void DirectDraw(TGLRnrCtx & rnrCtx) const; 00050 00051 ClassDef(TEveJetConeGL, 0); // GL renderer class for TEveJetCone. 00052 }; 00053 00054 00055 //------------------------------------------------------------------------------ 00056 // TEveJetConeProjectedGL 00057 //------------------------------------------------------------------------------ 00058 00059 class TEveJetConeProjectedGL : public TEveJetConeGL 00060 { 00061 private: 00062 TEveJetConeProjectedGL(const TEveJetConeProjectedGL&); // Not implemented 00063 TEveJetConeProjectedGL& operator=(const TEveJetConeProjectedGL&); // Not implemented 00064 00065 protected: 00066 TEveJetConeProjected *fM; // Model object. 00067 00068 virtual void CalculatePoints() const; 00069 00070 void RenderOutline() const; 00071 void RenderPolygon() const; 00072 00073 public: 00074 TEveJetConeProjectedGL(); 00075 virtual ~TEveJetConeProjectedGL() {} 00076 00077 virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0); 00078 virtual void SetBBox(); 00079 00080 virtual void Draw(TGLRnrCtx& rnrCtx) const; 00081 virtual void DirectDraw(TGLRnrCtx & rnrCtx) const; 00082 00083 ClassDef(TEveJetConeProjectedGL, 0); // GL renderer class for TEveJetCone. 00084 }; 00085 00086 #endif