TEveScene.h

Go to the documentation of this file.
00001 // @(#)root/eve:$Id: TEveScene.h 35074 2010-08-30 15:18:02Z 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_TEveScene
00013 #define ROOT_TEveScene
00014 
00015 #include "TEveElement.h"
00016 
00017 class TEvePad;
00018 class TGLScenePad;
00019 
00020 class TExMap;
00021 
00022 /******************************************************************************/
00023 // TEveScene
00024 /******************************************************************************/
00025 
00026 class TEveScene : public TEveElementList
00027 {
00028 private:
00029    TEveScene(const TEveScene&);            // Not implemented
00030    TEveScene& operator=(const TEveScene&); // Not implemented
00031 
00032 protected:
00033    TEvePad     *fPad;
00034    TGLScenePad *fGLScene;
00035 
00036    Bool_t       fChanged;
00037    Bool_t       fSmartRefresh;
00038    Bool_t       fHierarchical;
00039 
00040    void RetransHierarchicallyRecurse(TEveElement* el, const TEveTrans& tp);
00041 
00042 public:
00043    TEveScene(const char* n="TEveScene", const char* t="");
00044    virtual ~TEveScene();
00045 
00046    virtual void CollectSceneParents(List_t& scenes);
00047 
00048    virtual Bool_t SingleRnrState() const { return kTRUE; }
00049 
00050    void   Changed()         { fChanged = kTRUE; }
00051    Bool_t IsChanged() const { return fChanged;  }
00052 
00053    void   SetHierarchical(Bool_t h) { fHierarchical = h;    }
00054    Bool_t GetHierarchical()   const { return fHierarchical; }
00055 
00056    void   Repaint(Bool_t dropLogicals=kFALSE);
00057    void   RetransHierarchically();
00058 
00059    TGLScenePad* GetGLScene() const { return fGLScene; }
00060    void SetGLScene(TGLScenePad* s) { fGLScene = s; }
00061 
00062    virtual void SetName(const char* n);
00063    virtual void Paint(Option_t* option = "");
00064 
00065    void DestroyElementRenderers(TEveElement* element);
00066    void DestroyElementRenderers(TObject* rnrObj);
00067 
00068    virtual const TGPicture* GetListTreeIcon(Bool_t open=kFALSE);
00069 
00070    ClassDef(TEveScene, 0); // Reve representation of TGLScene.
00071 };
00072 
00073 
00074 /******************************************************************************/
00075 // TEveSceneList
00076 /******************************************************************************/
00077 
00078 class TEveSceneList : public TEveElementList
00079 {
00080 private:
00081    TEveSceneList(const TEveSceneList&);            // Not implemented
00082    TEveSceneList& operator=(const TEveSceneList&); // Not implemented
00083 
00084 protected:
00085 
00086 public:
00087    TEveSceneList(const char* n="TEveSceneList", const char* t="");
00088    virtual ~TEveSceneList() {}
00089 
00090    void DestroyScenes();
00091 
00092    void RepaintChangedScenes(Bool_t dropLogicals);
00093    void RepaintAllScenes(Bool_t dropLogicals);
00094 
00095    void DestroyElementRenderers(TEveElement* element);
00096 
00097    void ProcessSceneChanges(Bool_t dropLogicals, TExMap* stampMap);
00098 
00099    ClassDef(TEveSceneList, 0); // List of Scenes providing common operations on TEveScene collections.
00100 };
00101 
00102 #endif

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