12 #ifndef ROOT_TEveProjectionBases
13 #define ROOT_TEveProjectionBases
22 class TEveProjectionManager;
37 TEveProjectable(
const TEveProjectable&);
38 TEveProjectable& operator=(
const TEveProjectable&);
41 typedef std::list<TEveProjected*> ProjList_t;
42 typedef std::list<TEveProjected*>::iterator ProjList_i;
45 ProjList_t fProjectedList;
49 virtual ~TEveProjectable();
51 virtual TClass* ProjectedClass(
const TEveProjection* p)
const = 0;
53 virtual Bool_t HasProjecteds()
const {
return ! fProjectedList.empty(); }
55 ProjList_i BeginProjecteds() {
return fProjectedList.begin(); }
56 ProjList_i EndProjecteds() {
return fProjectedList.end(); }
58 virtual void AddProjected(TEveProjected* p) { fProjectedList.push_back(p); }
59 virtual void RemoveProjected(TEveProjected* p) { fProjectedList.remove(p); }
61 virtual void AnnihilateProjecteds();
62 virtual void ClearProjectedList();
64 virtual void AddProjectedsToSet(std::set<TEveElement*>& set);
66 virtual void PropagateVizParams(TEveElement* el=0);
67 virtual void PropagateRenderState(Bool_t rnr_self, Bool_t rnr_children);
68 virtual void PropagateMainColor(Color_t color, Color_t old_color);
69 virtual void PropagateMainTransparency(Char_t t, Char_t old_t);
71 ClassDef(TEveProjectable, 0);
86 TEveProjected(
const TEveProjected&);
87 TEveProjected& operator=(
const TEveProjected&);
90 TEveProjectionManager *fManager;
91 TEveProjectable *fProjectable;
94 void SetDepthCommon(Float_t d, TEveElement* el, Float_t* bbox);
95 virtual void SetDepthLocal(Float_t d);
99 virtual ~TEveProjected();
101 TEveProjectionManager* GetManager()
const {
return fManager; }
102 TEveProjectable* GetProjectable()
const {
return fProjectable; }
103 Float_t GetDepth()
const {
return fDepth; }
105 virtual void SetProjection(TEveProjectionManager* mng, TEveProjectable* model);
106 virtual void UnRefProjectable(TEveProjectable* assumed_parent,
bool notifyParent =
true);
108 virtual void UpdateProjection() = 0;
109 virtual TEveElement* GetProjectedAsElement();
111 virtual void SetDepth(Float_t d);
113 ClassDef(TEveProjected, 0);