Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TEveScene.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

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_TEveScene
0013 #define ROOT_TEveScene
0014 
0015 #include "TEveElement.h"
0016 
0017 class TEvePad;
0018 class TGLScenePad;
0019 
0020 class TExMap;
0021 
0022 /******************************************************************************/
0023 // TEveScene
0024 /******************************************************************************/
0025 
0026 class TEveScene : public TEveElementList
0027 {
0028 private:
0029    TEveScene(const TEveScene&);            // Not implemented
0030    TEveScene& operator=(const TEveScene&); // Not implemented
0031 
0032 protected:
0033    TEvePad     *fPad;
0034    TGLScenePad *fGLScene;
0035 
0036    Bool_t       fChanged;
0037    Bool_t       fSmartRefresh;
0038    Bool_t       fHierarchical;
0039 
0040    void RetransHierarchicallyRecurse(TEveElement* el, const TEveTrans& tp);
0041 
0042 public:
0043    TEveScene(const char* n="TEveScene", const char* t="");
0044    TEveScene(TGLScenePad* gl_scene, const char* n="TEveScene", const char* t="");
0045    ~TEveScene() override;
0046 
0047    void CollectSceneParents(List_t& scenes) override;
0048 
0049    Bool_t SingleRnrState() const override { return kTRUE; }
0050 
0051    void   Changed()         { fChanged = kTRUE; }
0052    Bool_t IsChanged() const { return fChanged;  }
0053 
0054    void   SetHierarchical(Bool_t h) { fHierarchical = h;    }
0055    Bool_t GetHierarchical()   const { return fHierarchical; }
0056 
0057    void   Repaint(Bool_t dropLogicals=kFALSE);
0058    void   RetransHierarchically();
0059 
0060    TGLScenePad* GetGLScene() const { return fGLScene; }
0061    void SetGLScene(TGLScenePad* s) { fGLScene = s; }
0062 
0063    void SetName(const char* n) override;
0064    void Paint(Option_t* option = "") override;
0065 
0066    void DestroyElementRenderers(TEveElement* element);
0067    void DestroyElementRenderers(TObject* rnrObj);
0068 
0069    const TGPicture* GetListTreeIcon(Bool_t open=kFALSE) override;
0070 
0071    ClassDefOverride(TEveScene, 0); // Reve representation of TGLScene.
0072 };
0073 
0074 
0075 /******************************************************************************/
0076 // TEveSceneList
0077 /******************************************************************************/
0078 
0079 class TEveSceneList : public TEveElementList
0080 {
0081 private:
0082    TEveSceneList(const TEveSceneList&);            // Not implemented
0083    TEveSceneList& operator=(const TEveSceneList&); // Not implemented
0084 
0085 protected:
0086 
0087 public:
0088    TEveSceneList(const char* n="TEveSceneList", const char* t="");
0089    ~TEveSceneList() override {}
0090 
0091    void DestroyScenes();
0092 
0093    void RepaintChangedScenes(Bool_t dropLogicals);
0094    void RepaintAllScenes(Bool_t dropLogicals);
0095 
0096    void DestroyElementRenderers(TEveElement* element);
0097 
0098    void ProcessSceneChanges(Bool_t dropLogicals, TExMap* stampMap);
0099 
0100    ClassDefOverride(TEveSceneList, 0); // List of Scenes providing common operations on TEveScene collections.
0101 };
0102 
0103 #endif