00001 // @(#)root/eve:$Id: TEveBoxSetGL.h 36816 2010-11-20 22:41:48Z matevz $ 00002 // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 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_TEveBoxSetGL 00013 #define ROOT_TEveBoxSetGL 00014 00015 #include "TEveDigitSetGL.h" 00016 #include "TEveBoxSet.h" 00017 00018 class TEveBoxSetGL : public TEveDigitSetGL 00019 { 00020 TEveBoxSetGL(const TEveBoxSetGL&); // Not implemented 00021 TEveBoxSetGL& operator=(const TEveBoxSetGL&); // Not implemented 00022 00023 protected: 00024 TEveBoxSet *fM; // Model object. 00025 00026 mutable UInt_t fBoxDL; // Display-list id for a box atom. 00027 00028 Int_t PrimitiveType() const; 00029 void MakeOriginBox(Float_t p[8][3], Float_t dx, Float_t dy, Float_t dz) const; 00030 void RenderBoxStdNorm(const Float_t p[8][3]) const; 00031 void RenderBoxAutoNorm(const Float_t p[8][3]) const; 00032 void MakeDisplayList() const; 00033 00034 void RenderBoxes(TGLRnrCtx& rnrCtx) const; 00035 00036 public: 00037 TEveBoxSetGL(); 00038 virtual ~TEveBoxSetGL(); 00039 00040 virtual Bool_t ShouldDLCache(const TGLRnrCtx& rnrCtx) const; 00041 virtual void DLCacheDrop(); 00042 virtual void DLCachePurge(); 00043 00044 virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0); 00045 virtual void DirectDraw(TGLRnrCtx& rnrCtx) const; 00046 00047 virtual void Render(TGLRnrCtx& rnrCtx); 00048 00049 ClassDef(TEveBoxSetGL, 0); // GL-renderer for TEveBoxSet class. 00050 }; 00051 00052 #endif