Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TEveElement.h
Go to the documentation of this file.
1// @(#)root/eve:$Id$
2// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4/*************************************************************************
5 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TEveElement
13#define ROOT_TEveElement
14
15#include "TEveUtil.h"
16#include "TEveProjectionBases.h"
17
18#include "TNamed.h"
19#include "TRef.h"
20#include <list>
21#include <set>
22
23class TGListTree;
24class TGListTreeItem;
25class TGPicture;
26
27class TEveCompound;
28class TEveTrans;
29class TGeoMatrix;
30
31/******************************************************************************/
32// TEveElement
33/******************************************************************************/
34
36{
37 friend class TEveManager;
38
40
41public:
43 {
44 public:
47
48 TEveListTreeInfo() : fTree(nullptr), fItem(nullptr) {}
51 virtual ~TEveListTreeInfo() {}
52
54 { fTree = l.fTree; fItem = l.fItem; return *this; }
55
56 bool operator==(const TEveListTreeInfo& x) const
57 { return fTree == x.fTree && fItem == x.fItem; }
58 bool operator<(const TEveListTreeInfo& x) const
59 { return fTree == x.fTree ? fItem < x.fItem : fTree < x.fTree; }
60
61 ClassDef(TEveListTreeInfo, 0); // Structure agregating data for a render element image in a list tree.
62 };
63
64 static const TGPicture* fgRnrIcons[4];
65 static const TGPicture* fgListTreeIcons[9];
66
67 typedef std::set<TEveListTreeInfo> sLTI_t;
68 typedef sLTI_t::iterator sLTI_i;
69 typedef sLTI_t::reverse_iterator sLTI_ri;
70
71 typedef std::list<TEveElement*> List_t;
72 typedef List_t::iterator List_i;
73 typedef List_t::const_iterator List_ci;
74
75 typedef std::set<TEveElement*> Set_t;
76 typedef Set_t::iterator Set_i;
77 typedef Set_t::const_iterator Set_ci;
78
79protected:
80 List_t fParents; // List of parents.
81 List_t fChildren; // List of children.
82 TEveCompound *fCompound; // Compound this object belongs to.
83 TEveElement *fVizModel; ///<! Element used as model from VizDB.
84 TString fVizTag; // Tag used to query VizDB for model element.
85
87 Int_t fParentIgnoreCnt; ///<! Counter for parents that are ignored in ref-counting.
88 Int_t fTopItemCnt; ///<! Counter for top-level list-tree items that prevent automatic destruction.
89 Int_t fDenyDestroy; ///<! Deny-destroy count.
90 Bool_t fDestroyOnZeroRefCnt; // Auto-destruct when ref-count reaches zero.
91
92 Bool_t fRnrSelf; // Render this element.
93 Bool_t fRnrChildren; // Render children of this element.
94 Bool_t fCanEditMainColor; // Allow editing of main color.
95 Bool_t fCanEditMainTransparency; // Allow editing of main transparency.
96 Bool_t fCanEditMainTrans; // Allow editing of main transformation.
97
98 Char_t fMainTransparency; // Main-transparency variable.
99 Color_t *fMainColorPtr; // Pointer to main-color variable.
100 TEveTrans *fMainTrans; // Pointer to main transformation matrix.
101
102 sLTI_t fItems; ///<! Set of list-tree-items.
103
104 TRef fSource; // External object that is represented by this element.
105 void *fUserData; ///<! Externally assigned and controlled user data.
106
107 virtual void PreDeleteElement();
108 virtual void RemoveElementsInternal();
109 virtual void AnnihilateRecursively();
110
111 static const char* ToString(Bool_t b);
112
113public:
114 TEveElement();
116 TEveElement(const TEveElement& e);
117 virtual ~TEveElement();
118
119 virtual TEveElement* CloneElement() const;
120 virtual TEveElement* CloneElementRecurse(Int_t level=0) const;
121 virtual void CloneChildrenRecurse(TEveElement* dest, Int_t level=0) const;
122
123 virtual const char* GetElementName() const;
124 virtual const char* GetElementTitle() const;
126 virtual void SetElementName (const char* name);
127 virtual void SetElementTitle(const char* title);
128 virtual void SetElementNameTitle(const char* name, const char* title);
129 virtual void NameTitleChanged();
130
131 const TString& GetVizTag() const { return fVizTag; }
132 void SetVizTag(const TString& tag) { fVizTag = tag; }
133
134 TEveElement* GetVizModel() const { return fVizModel; }
135 void SetVizModel(TEveElement* model);
137
138 Bool_t ApplyVizTag(const TString& tag, const TString& fallback_tag="");
139
140 virtual void PropagateVizParamsToProjecteds();
141 virtual void PropagateVizParamsToElements(TEveElement* el=nullptr);
142 virtual void CopyVizParams(const TEveElement* el);
143 virtual void CopyVizParamsFromDB();
144 void SaveVizParams (std::ostream& out, const TString& tag, const TString& var);
145 virtual void WriteVizParams(std::ostream& out, const TString& var);
146
150
151 virtual void AddParent(TEveElement* re);
152 virtual void RemoveParent(TEveElement* re);
153 virtual void CheckReferenceCount(const TEveException& eh="TEveElement::CheckReferenceCount ");
154 virtual void CollectSceneParents(List_t& scenes);
155 virtual void CollectSceneParentsFromChildren(List_t& scenes,
156 TEveElement* parent);
157
158 List_i BeginParents() { return fParents.begin(); }
159 List_i EndParents() { return fParents.end(); }
160 List_ci BeginParents() const { return fParents.begin(); }
161 List_ci EndParents() const { return fParents.end(); }
162 Int_t NumParents() const { return fParents.size(); }
163 Bool_t HasParents() const { return !fParents.empty(); }
164
165 const List_t& RefChildren() const { return fChildren; }
166 List_i BeginChildren() { return fChildren.begin(); }
167 List_i EndChildren() { return fChildren.end(); }
168 List_ci BeginChildren() const { return fChildren.begin(); }
169 List_ci EndChildren() const { return fChildren.end(); }
170 Int_t NumChildren() const { return fNumChildren; }
171 Bool_t HasChildren() const { return fNumChildren != 0; }
172
174 TEveElement* FindChild(const TString& name, const TClass* cls=nullptr);
175 TEveElement* FindChild(TPRegexp& regexp, const TClass* cls=nullptr);
176 Int_t FindChildren(List_t& matches, const TString& name, const TClass* cls=nullptr);
177 Int_t FindChildren(List_t& matches, TPRegexp& regexp, const TClass* cls=nullptr);
178 TEveElement* FirstChild() const;
179 TEveElement* LastChild () const;
180
183
186
187 Int_t GetDenyDestroy() const;
188 void IncDenyDestroy();
189 void DecDenyDestroy();
190
192 void IncParentIgnoreCnt();
193 void DecParentIgnoreCnt();
194
195 virtual void PadPaint(Option_t* option);
196 virtual void PaintStandard(TObject* id);
197
198 virtual TObject* GetObject (const TEveException& eh) const;
199 virtual TObject* GetEditorObject(const TEveException& eh) const { return GetObject(eh); }
200 virtual TObject* GetRenderObject(const TEveException& eh) const { return GetObject(eh); }
201
202 // --------------------------------
203
204 virtual void ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* parent);
205 virtual void DestroyListSubTree(TGListTree* ltree, TGListTreeItem* parent);
206
210 TEveElement* parent);
212
215 virtual Int_t RemoveFromListTrees(TEveElement* parent);
216
223
224 virtual Int_t GetNItems() const { return fItems.size(); }
225
226 void SpawnEditor(); // *MENU*
227 virtual void ExportToCINT(char* var_name); // *MENU*
228
229 void DumpSourceObject() const; // *MENU*
230 void PrintSourceObject() const; // *MENU*
231 void ExportSourceObjectToCINT(char* var_name) const; // *MENU*
232
234
235 virtual void AddElement(TEveElement* el);
236 virtual void RemoveElement(TEveElement* el);
237 virtual void RemoveElementLocal(TEveElement* el);
238 virtual void RemoveElements();
239 virtual void RemoveElementsLocal();
240
241 virtual void AnnihilateElements();
242 virtual void Annihilate();
243
246
247 virtual void Destroy(); // *MENU*
248 virtual void DestroyOrWarn();
249 virtual void DestroyElements(); // *MENU*
250
253
254 virtual Bool_t CanEditElement() const { return kTRUE; }
255 virtual Bool_t SingleRnrState() const { return kFALSE; }
256 virtual Bool_t GetRnrSelf() const { return fRnrSelf; }
257 virtual Bool_t GetRnrChildren() const { return fRnrChildren; }
258 virtual Bool_t GetRnrState() const { return fRnrSelf && fRnrChildren; }
259 virtual Bool_t GetRnrAnything() const { return fRnrSelf || (fRnrChildren && HasChildren()); }
260 virtual Bool_t SetRnrSelf(Bool_t rnr);
263 virtual Bool_t SetRnrState(Bool_t rnr);
264 virtual void PropagateRnrStateToProjecteds();
265
266 virtual Bool_t CanEditMainColor() const { return fCanEditMainColor; }
269 void SetMainColorPtr(Color_t* color) { fMainColorPtr = color; }
270
271 virtual Bool_t HasMainColor() const { return fMainColorPtr != nullptr; }
272 virtual Color_t GetMainColor() const { return fMainColorPtr ? *fMainColorPtr : 0; }
273 virtual void SetMainColor(Color_t color);
278
281 virtual Char_t GetMainTransparency() const { return fMainTransparency; }
282 virtual void SetMainTransparency(Char_t t);
283 void SetMainAlpha(Float_t alpha);
285
286 virtual Bool_t CanEditMainTrans() const { return fCanEditMainTrans; }
287 virtual Bool_t HasMainTrans() const { return fMainTrans != nullptr; }
288 virtual TEveTrans* PtrMainTrans(Bool_t create=kTRUE);
289 virtual TEveTrans& RefMainTrans();
290 virtual void InitMainTrans(Bool_t can_edit=kTRUE);
291 virtual void DestroyMainTrans();
292
293 virtual void SetTransMatrix(Double_t* carr);
294 virtual void SetTransMatrix(const TGeoMatrix& mat);
295
296 TRef& GetSource() { return fSource; }
299 /*
300 void DumpSourceObject(); // *MENU*
301 void InspectSourceObject(); // *MENU*
302 */
303
304 void* GetUserData() const { return fUserData; }
305 void SetUserData(void* ud) { fUserData = ud; }
306
307
308 // Selection state and management
309 //--------------------------------
310
311protected:
317
319 {
320 kCSCBImplySelectAllChildren = BIT(0), // compound will select all children
321 kCSCBTakeAnyParentAsMaster = BIT(1), // element will take any compound parent as master
322 kCSCBApplyMainColorToAllChildren = BIT(2), // compound will apply color change to all children
323 kCSCBApplyMainColorToMatchingChildren = BIT(3), // compound will apply color change to all children with matching color
324 kCSCBApplyMainTransparencyToAllChildren = BIT(4), // compound will apply transparency change to all children
325 kCSCBApplyMainTransparencyToMatchingChildren = BIT(5) // compound will apply transparency change to all children with matching color
326 };
327
329 {
330// clang++ <v20 (-Wshadow) complains about shadowing GuiTypes.h global variable kNone. Let's silence warning:
331#if defined(__clang__) && __clang_major__ < 20
332#pragma clang diagnostic push
333#pragma clang diagnostic ignored "-Wshadow"
334#endif
336#if defined(__clang__) && __clang_major__ < 20
337#pragma clang diagnostic pop
338#endif
341 };
342
344
345public:
346 typedef void (TEveElement::* Select_foo) (Bool_t);
347 typedef void (TEveElement::* ImplySelect_foo) ();
348
349 Bool_t IsPickable() const { return fPickable; }
352
353 virtual TEveElement* ForwardSelection();
354 virtual TEveElement* ForwardEdit();
355
356 virtual void SelectElement(Bool_t state);
357 virtual void IncImpliedSelected();
358 virtual void DecImpliedSelected();
359 virtual void UnSelected();
360
361 virtual void HighlightElement(Bool_t state);
362 virtual void IncImpliedHighlighted();
363 virtual void DecImpliedHighlighted();
364 virtual void UnHighlighted();
365
366 virtual void FillImpliedSelectedSet(Set_t& impSelSet);
367
368 virtual UChar_t GetSelectedLevel() const;
369
371
374 Bool_t TestCSCBits(UChar_t f) const { return (fCSCBits & f) != 0; }
375
376 void ResetAllCSCBits() { fCSCBits = 0; }
383
384
385 // Change-stamping and change bits
386 //---------------------------------
387
389 {
390 kCBColorSelection = BIT(0), // Main color or select/hilite state changed.
391 kCBTransBBox = BIT(1), // Transformation matrix or bounding-box changed.
392 kCBObjProps = BIT(2), // Object changed, requires dropping its display-lists.
393 kCBVisibility = BIT(3) // Rendering of self/children changed.
394 // kCBElementAdded = BIT(), // Element was added to a new parent.
395 // kCBElementRemoved = BIT() // Element was removed from a parent.
396
397 // Deletions are handled in a special way in TEveManager::PreDeleteElement().
398 };
399
400protected:
403
404public:
409 // void StampElementAdded() { AddStamp(kCBElementAdded); }
410 // void StampElementRemoved() { AddStamp(kCBElementRemoved); }
411 virtual void AddStamp(UChar_t bits);
412 virtual void ClearStamps() { fChangeBits = 0; }
413
415
416
417 // List-tree icons
418 //-----------------
419
420 virtual const TGPicture* GetListTreeIcon(Bool_t open=kFALSE);
421 virtual const TGPicture* GetListTreeCheckBoxIcon();
422
423 // Menu entries for VizDB communication (here so they are last in the menu).
424
425 void VizDB_Apply(const char* tag); // *MENU*
426 void VizDB_Reapply(); // *MENU*
427 void VizDB_UpdateModel(Bool_t update=kTRUE); // *MENU*
428 void VizDB_Insert(const char* tag, Bool_t replace=kTRUE, Bool_t update=kTRUE); // *MENU*
429
430 ClassDef(TEveElement, 0); // Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and list-tree item management.
431};
432
433
434/******************************************************************************/
435// TEveElementList
436/******************************************************************************/
437
439 public TNamed,
440 public TEveProjectable
441{
442private:
443 TEveElementList& operator=(const TEveElementList&); // Not implemented
444
445protected:
446 Color_t fColor; // Color of the object.
447 TClass *fChildClass; // Class of acceptable children, others are rejected.
448
449public:
450 TEveElementList(const char* n="TEveElementList", const char* t="",
453 ~TEveElementList() override {}
454
455 TObject* GetObject(const TEveException& /*eh*/="TEveElementList::GetObject ") const override
456 { const TObject* obj = this; return const_cast<TObject*>(obj); }
457
458 TEveElementList* CloneElement() const override;
459
460 const char* GetElementName() const override { return GetName(); }
461 const char* GetElementTitle() const override { return GetTitle(); }
462
463 void SetElementName (const char* name) override
465
466 void SetElementTitle(const char* title) override
468
469 void SetElementNameTitle(const char* name, const char* title) override
471
472 TClass* GetChildClass() const { return fChildClass; }
474
476
477 TClass* ProjectedClass(const TEveProjection* p) const override;
478
479 ClassDefOverride(TEveElementList, 0); // List of TEveElement objects with a possibility to limit the class of accepted elements.
480};
481
482
483/******************************************************************************/
484// TEveElementListProjected
485/******************************************************************************/
486
488 public TEveProjected
489{
490private:
493
494public:
497
498 void UpdateProjection() override;
499 TEveElement* GetProjectedAsElement() override { return this; }
500
501 ClassDefOverride(TEveElementListProjected, 0); // Projected TEveElementList.
502};
503
504#endif
ULong_t Pixel_t
Pixel value.
Definition GuiTypes.h:40
#define d(i)
Definition RSha256.hxx:102
#define b(i)
Definition RSha256.hxx:100
#define f(i)
Definition RSha256.hxx:104
#define c(i)
Definition RSha256.hxx:101
#define g(i)
Definition RSha256.hxx:105
#define e(i)
Definition RSha256.hxx:103
static void update(gsl_integration_workspace *workspace, double a1, double b1, double area1, double error1, double a2, double b2, double area2, double error2)
bool Bool_t
Boolean (0=false, 1=true) (bool)
Definition RtypesCore.h:77
int Int_t
Signed integer 4 bytes (int)
Definition RtypesCore.h:59
short Color_t
Color number (short)
Definition RtypesCore.h:99
unsigned char UChar_t
Unsigned Character 1 byte (unsigned char)
Definition RtypesCore.h:52
char Char_t
Character 1 byte (char)
Definition RtypesCore.h:51
float Float_t
Float 4 bytes (float)
Definition RtypesCore.h:71
short Short_t
Signed Short integer 2 bytes (short)
Definition RtypesCore.h:53
constexpr Bool_t kFALSE
Definition RtypesCore.h:108
double Double_t
Double 8 bytes.
Definition RtypesCore.h:73
constexpr Bool_t kTRUE
Definition RtypesCore.h:107
const char Option_t
Option string (const char)
Definition RtypesCore.h:80
#define ClassDef(name, id)
Definition Rtypes.h:344
#define BIT(n)
Definition Rtypes.h:91
#define ClassDefOverride(name, id)
Definition Rtypes.h:348
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t option
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t dest
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void pixel
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
char name[80]
Definition TGX11.cxx:110
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition TClass.h:84
Description of TEveCompound.
A projected element list – required for proper propagation of render state to projected views.
TEveElement * GetProjectedAsElement() override
Returns this projected dynamic-casted to TEveElement.
~TEveElementListProjected() override
TEveElementListProjected(const TEveElementListProjected &)
void UpdateProjection() override
This is abstract method from base-class TEveProjected.
TEveElementListProjected & operator=(const TEveElementListProjected &)
TEveElementListProjected()
Constructor.
A list of TEveElements.
TEveElementList(const char *n="TEveElementList", const char *t="", Bool_t doColor=kFALSE, Bool_t doTransparency=kFALSE)
Constructor.
void SetElementNameTitle(const char *name, const char *title) override
Virtual function for setting of name and title of render element.
TEveElementList & operator=(const TEveElementList &)
void SetElementName(const char *name) override
Virtual function for setting of name of an element.
TClass * GetChildClass() const
TClass * ProjectedClass(const TEveProjection *p) const override
Virtual from TEveProjectable, returns TEveCompoundProjected class.
Bool_t AcceptElement(TEveElement *el) override
Check if TEveElement el is inherited from fChildClass.
~TEveElementList() override
void SetChildClass(TClass *c)
const char * GetElementName() const override
Virtual function for retrieving name of the element.
TClass * fChildClass
TEveElementList * CloneElement() const override
Clone the element via copy constructor.
void SetElementTitle(const char *title) override
Virtual function for setting of title of an element.
const char * GetElementTitle() const override
Virtual function for retrieving title of the render-element.
TObject * GetObject(const TEveException &="TEveElementList::GetObject ") const override
Get a TObject associated with this render-element.
Structure holding information about TGListTree and TGListTreeItem that represents given TEveElement.
Definition TEveElement.h:43
bool operator==(const TEveListTreeInfo &x) const
Definition TEveElement.h:56
TEveListTreeInfo & operator=(const TEveListTreeInfo &l)
Definition TEveElement.h:53
bool operator<(const TEveListTreeInfo &x) const
Definition TEveElement.h:58
TEveListTreeInfo(TGListTree *lt, TGListTreeItem *lti)
Definition TEveElement.h:49
TEveListTreeInfo(const TEveListTreeInfo &l)
Definition TEveElement.h:50
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
Definition TEveElement.h:36
virtual void AnnihilateRecursively()
Protected member function called from TEveElement::Annihilate().
virtual void ExportToCINT(char *var_name)
Export render-element to Cling with variable name var_name.
virtual void AddStamp(UChar_t bits)
Add (bitwise or) given stamps to fChangeBits.
virtual TEveTrans * PtrMainTrans(Bool_t create=kTRUE)
Return pointer to main transformation.
virtual Bool_t SingleRnrState() const
void SaveVizParams(std::ostream &out, const TString &tag, const TString &var)
Save visualization parameters for this element with given tag.
void SetSourceObject(TObject *o)
virtual void SelectElement(Bool_t state)
Set element's selection state. Stamp appropriately.
virtual void InitMainTrans(Bool_t can_edit=kTRUE)
Initialize the main transformation to identity matrix.
virtual void AddElement(TEveElement *el)
Add el to the list of children.
virtual TObject * GetEditorObject(const TEveException &eh) const
void SetMainColorPixel(Pixel_t pixel)
Convert pixel to Color_t and call SetMainColor().
virtual Bool_t SetRnrSelfChildren(Bool_t rnr_self, Bool_t rnr_children)
Set state for rendering of this element and its children.
virtual void FillImpliedSelectedSet(Set_t &impSelSet)
Populate set impSelSet with derived / dependant elements.
void DumpSourceObject() const
Call Dump() on source object.
Bool_t TestCSCBits(UChar_t f) const
List_i BeginParents()
Char_t fDestructing
!
virtual void CloneChildrenRecurse(TEveElement *dest, Int_t level=0) const
Clone children and attach them to the dest element.
Int_t fNumChildren
!
Definition TEveElement.h:86
void SetEditMainColor(Bool_t x)
virtual void ProjectAllChildren(Bool_t same_depth=kTRUE)
If this is a projectable, loop over all projected replicas and add the projected image of all childre...
virtual void SetElementNameTitle(const char *name, const char *title)
Virtual function for setting of name and title of render element.
virtual TEveElement * ForwardSelection()
Returns element to be selected on click.
virtual TGListTreeItem * AddIntoListTrees(TEveElement *parent)
Add this render element into all list-trees and all items belonging to parent.
virtual void SetMainTransparency(Char_t t)
Set main-transparency.
virtual void PropagateVizParamsToElements(TEveElement *el=nullptr)
Propagate visualization parameters from element el (defaulting to this) to all elements (children).
Bool_t fRnrChildren
Definition TEveElement.h:93
List_ci BeginParents() const
void StampObjProps()
List_t fChildren
Definition TEveElement.h:81
Bool_t fDestroyOnZeroRefCnt
Definition TEveElement.h:90
TEveElement * GetVizModel() const
void StampColorSelection()
void SpawnEditor()
Show GUI editor for this object.
static const TGPicture * fgRnrIcons[4]
Definition TEveElement.h:53
virtual UChar_t GetSelectedLevel() const
Get selection level, needed for rendering selection and highlight feedback.
virtual TString GetHighlightTooltip()
virtual Bool_t CanEditMainTransparency() const
virtual sLTI_i FindItem(TGListTree *ltree)
Find any list-tree-item of this element in list-tree 'ltree'.
virtual void HighlightElement(Bool_t state)
Set element's highlight state. Stamp appropriately.
virtual void NameTitleChanged()
Virtual function called when a name or title of the element has been changed.
virtual void DestroyMainTrans()
Destroy the main transformation matrix, it will always be taken as identity.
virtual void DestroyListSubTree(TGListTree *ltree, TGListTreeItem *parent)
Destroy sub-tree under item 'parent' in list-tree 'ltree'.
Bool_t fHighlighted
!
Int_t fParentIgnoreCnt
! Counter for parents that are ignored in ref-counting.
Definition TEveElement.h:87
Char_t fMainTransparency
Definition TEveElement.h:98
UChar_t fCSCBits
void VizDB_UpdateModel(Bool_t update=kTRUE)
Copy visual parameters from this element to viz-db model.
virtual void ProjectChild(TEveElement *el, Bool_t same_depth=kTRUE)
If this is a projectable, loop over all projected replicas and add the projected image of child 'el' ...
UChar_t fChangeBits
!
sLTI_t fItems
! Set of list-tree-items.
void SetCSCBits(UChar_t f)
void SetEditMainTransparency(Bool_t x)
void VizDB_Insert(const char *tag, Bool_t replace=kTRUE, Bool_t update=kTRUE)
Create a replica of element and insert it into VizDB with given tag.
void * fUserData
! Externally assigned and controlled user data.
virtual void CheckReferenceCount(const TEveException &eh="TEveElement::CheckReferenceCount ")
Check external references to this and eventually auto-destruct the render-element.
TEveElement * FirstChild() const
Returns the first child element or 0 if the list is empty.
void DecDenyDestroy()
Decreases the deny-destroy count of the element.
Bool_t fRnrSelf
Definition TEveElement.h:92
Bool_t GetDestroyOnZeroRefCnt() const
Returns state of flag determining if the element will be destroyed when reference count reaches zero.
virtual TEveTrans & RefMainTrans()
Return reference to main transformation.
std::set< TEveListTreeInfo > sLTI_t
Definition TEveElement.h:67
void VizDB_Reapply()
Reset visual parameters for this object from VizDB.
void CSCApplyMainTransparencyToMatchingChildren()
virtual Int_t GetNItems() const
Bool_t IsPickable() const
virtual void RemoveElements()
Remove all elements.
Set_t::iterator Set_i
Definition TEveElement.h:76
Int_t NumParents() const
void PrintSourceObject() const
Call Print() on source object.
void CSCTakeAnyParentAsMaster()
void ExportSourceObjectToCINT(char *var_name) const
Export source object to Cling with given name for the variable.
Color_t * GetMainColorPtr() const
void StampTransBBox()
TEveTrans * fMainTrans
Set_t::const_iterator Set_ci
Definition TEveElement.h:77
Bool_t fCanEditMainTransparency
Definition TEveElement.h:95
virtual void RemoveParent(TEveElement *re)
Remove re from the list of parents.
virtual TEveElement * CloneElement() const
Clone the element via copy constructor.
List_i EndChildren()
virtual Bool_t CanEditElement() const
virtual void IncImpliedHighlighted()
Increase element's implied-highlight count. Stamp appropriately.
Bool_t HasChildren() const
List_t fParents
Definition TEveElement.h:80
Short_t fImpliedHighlighted
!
Bool_t ApplyVizTag(const TString &tag, const TString &fallback_tag="")
Set the VizTag, find model-element from the VizDB and copy visualization-parameters from it.
virtual void ExpandIntoListTree(TGListTree *ltree, TGListTreeItem *parent)
Populates parent with elements.
virtual void PropagateVizParamsToProjecteds()
Propagate visualization parameters to dependent elements.
virtual TGListTreeItem * FindListTreeItem(TGListTree *ltree)
Find any list-tree-item of this element in list-tree 'ltree'.
virtual Bool_t CanEditMainColor() const
virtual void CollectSceneParents(List_t &scenes)
Collect all parents of class TEveScene.
std::list< TEveElement * > List_t
Definition TEveElement.h:71
virtual void SetMainColor(Color_t color)
Set main color of the element.
void * GetUserData() const
void IncDenyDestroy()
Increases the deny-destroy count of the element.
virtual Bool_t CanEditMainTrans() const
void SetUserData(void *ud)
TEveElement * GetMaster()
Returns the master element - that is:
Int_t NumChildren() const
ECompoundSelectionColorBits
@ kCSCBApplyMainTransparencyToAllChildren
@ kCSCBApplyMainColorToAllChildren
@ kCSCBImplySelectAllChildren
@ kCSCBApplyMainColorToMatchingChildren
@ kCSCBTakeAnyParentAsMaster
@ kCSCBApplyMainTransparencyToMatchingChildren
virtual const char * GetElementTitle() const
Virtual function for retrieving title of the render-element.
List_ci EndChildren() const
virtual TEveElement * CloneElementRecurse(Int_t level=0) const
Clone elements and recurse 'level' deep over children.
virtual void SetElementTitle(const char *title)
Virtual function for setting of title of an element.
void DecParentIgnoreCnt()
Decrease number of parents ignored in reference-counting.
virtual void DecImpliedHighlighted()
Decrease element's implied-highlight count. Stamp appropriately.
virtual Int_t RemoveFromListTrees(TEveElement *parent)
Remove element from all list-trees where 'parent' is the user-data of the parent list-tree-item.
virtual Bool_t SetRnrChildren(Bool_t rnr)
Set render state of this element's children, i.e.
void SetMainColorRGB(UChar_t r, UChar_t g, UChar_t b)
Convert RGB values to Color_t and call SetMainColor.
Bool_t FindVizModel()
Find model element in VizDB that corresponds to previously assigned fVizTag and set fVizModel accordi...
TEveElement * FindChild(const TString &name, const TClass *cls=nullptr)
Find the first child with given name.
Color_t * fMainColorPtr
Definition TEveElement.h:99
virtual ~TEveElement()
Destructor.
virtual Bool_t GetRnrState() const
TEveCompound * GetCompound()
void SetPickableRecursively(Bool_t p)
Set pickable state on the element and all its children.
List_i EndParents()
virtual void RemoveElementsInternal()
Remove all elements.
Bool_t fSelected
!
Short_t fImpliedSelected
!
void DisableListElements(Bool_t rnr_self=kFALSE, Bool_t rnr_children=kFALSE)
Disable rendering of children and their list contents.
void VizDB_Apply(const char *tag)
Set visual parameters for this object for given tag.
Bool_t HasParents() const
virtual void Destroy()
Destroy this element.
void CSCImplySelectAllChildren()
virtual void PreDeleteElement()
Called before the element is deleted, thus offering the last chance to detach from acquired resources...
virtual void SetElementName(const char *name)
Virtual function for setting of name of an element.
Int_t GetDenyDestroy() const
Returns the number of times deny-destroy has been requested on the element.
void RecheckImpliedSelections()
Call this if it is possible that implied-selection or highlight has changed for this element or for i...
const List_t & RefChildren() const
virtual void DestroyElements()
Destroy all children of this element.
TString fVizTag
Definition TEveElement.h:84
std::set< TEveElement * > Set_t
Definition TEveElement.h:75
void SetCompound(TEveCompound *c)
void StampVisibility()
void SetVizTag(const TString &tag)
virtual void PropagateMainColorToProjecteds(Color_t color, Color_t old_color)
Propagate color to projected elements.
virtual void UnHighlighted()
Virtual function called when both fHighlighted is false and fImpliedHighlighted is 0.
void SetMainAlpha(Float_t alpha)
Set main-transparency via float alpha variable.
List_ci EndParents() const
virtual Color_t GetMainColor() const
virtual void SetTransMatrix(Double_t *carr)
Set transformation matrix from column-major array.
virtual Bool_t HasMainColor() const
void SetMainColorPtr(Color_t *color)
TEveElement * fVizModel
! Element used as model from VizDB.
Definition TEveElement.h:83
Int_t fTopItemCnt
! Counter for top-level list-tree items that prevent automatic destruction.
Definition TEveElement.h:88
virtual TObject * GetRenderObject(const TEveException &eh) const
virtual Bool_t SetRnrState(Bool_t rnr)
Set render state of this element and of its children to the same value.
const TString & GetVizTag() const
virtual void ElementChanged(Bool_t update_scenes=kTRUE, Bool_t redraw=kFALSE)
Call this after an element has been changed so that the state can be propagated around the framework.
List_t::const_iterator List_ci
Definition TEveElement.h:73
virtual TGListTreeItem * AddIntoListTree(TGListTree *ltree, TGListTreeItem *parent_lti)
Add this element into ltree to an already existing item parent_lti.
virtual void Annihilate()
Optimized destruction without check of reference-count.
void ResetCSCBits(UChar_t f)
TObject * GetSourceObject() const
void SetVizModel(TEveElement *model)
Set visualization-parameter model element.
virtual void RemoveElement(TEveElement *el)
Remove el from the list of children.
virtual Bool_t GetRnrChildren() const
virtual Bool_t HandleElementPaste(TEveElement *el)
React to element being pasted or dnd-ed.
void CSCApplyMainColorToMatchingChildren()
virtual void DecImpliedSelected()
Decrease element's implied-selection count. Stamp appropriately.
virtual void CollectSceneParentsFromChildren(List_t &scenes, TEveElement *parent)
Collect scene-parents from all children.
virtual const char * GetElementName() const
Virtual function for retrieving name of the element.
TEveElement()
Default constructor.
void CSCApplyMainColorToAllChildren()
Int_t GetParentIgnoreCnt() const
Get number of parents that should be ignored in doing reference-counting.
TEveElement & operator=(const TEveElement &)=delete
virtual Bool_t AcceptElement(TEveElement *el)
Check if el can be added to this element.
Bool_t HasChild(TEveElement *el)
Check if element el is a child of this element.
virtual void CopyVizParams(const TEveElement *el)
Copy visualization parameters from element el.
void SetPickable(Bool_t p)
static const char * ToString(Bool_t b)
Convert Bool_t to string - kTRUE or kFALSE.
virtual void PropagateRnrStateToProjecteds()
Propagate render state to the projected replicas of this element.
void ResetAllCSCBits()
virtual void PadPaint(Option_t *option)
Paint self and/or children into currently active pad.
Bool_t fCanEditMainColor
Definition TEveElement.h:94
virtual void RemoveElementLocal(TEveElement *el)
Perform additional local removal of el.
virtual void PropagateMainTransparencyToProjecteds(Char_t t, Char_t old_t)
Propagate transparency to projected elements.
static const TGPicture * fgListTreeIcons[9]
Definition TEveElement.h:54
TEveCompound * fCompound
Definition TEveElement.h:82
virtual Char_t GetMainTransparency() const
virtual void DestroyOrWarn()
Destroy this element. Prints a warning if deny-destroy is in force.
TRef & GetSource()
virtual void IncImpliedSelected()
Increase element's implied-selection count. Stamp appropriately.
virtual void AnnihilateElements()
Annihilate elements.
virtual Bool_t GetRnrSelf() const
virtual void ClearStamps()
Int_t FindChildren(List_t &matches, const TString &name, const TClass *cls=nullptr)
Find all children with given name and append them to matches list.
virtual const TGPicture * GetListTreeCheckBoxIcon()
Returns list-tree-item check-box picture appropriate for given rendering state.
virtual void WriteVizParams(std::ostream &out, const TString &var)
Write-out visual parameters for this object.
List_ci BeginChildren() const
virtual void CopyVizParamsFromDB()
Copy visualization parameters from the model-element fVizModel.
void SetDestroyOnZeroRefCnt(Bool_t d)
Sets the state of flag determining if the element will be destroyed when reference count reaches zero...
List_i BeginChildren()
sLTI_t::reverse_iterator sLTI_ri
Definition TEveElement.h:69
List_t::iterator List_i
Definition TEveElement.h:72
virtual TObject * GetObject(const TEveException &eh) const
Get a TObject associated with this render-element.
virtual const TGPicture * GetListTreeIcon(Bool_t open=kFALSE)
Returns pointer to first listtreeicon.
Int_t fDenyDestroy
! Deny-destroy count.
Definition TEveElement.h:89
virtual Bool_t RemoveFromListTree(TGListTree *ltree, TGListTreeItem *parent_lti)
Remove element from list-tree 'ltree' where its parent item is 'parent_lti'.
TEveElement * LastChild() const
Returns the last child element or 0 if the list is empty.
virtual void RemoveElementsLocal()
Perform additional local removal of all elements.
void IncParentIgnoreCnt()
Increase number of parents ignored in reference-counting.
virtual TEveElement * ForwardEdit()
Returns element to be displayed in GUI editor on click.
Bool_t fCanEditMainTrans
Definition TEveElement.h:96
virtual void PaintStandard(TObject *id)
Paint object – a generic implementation for EVE elements.
virtual Bool_t SetRnrSelf(Bool_t rnr)
Set render state of this element, i.e.
void EnableListElements(Bool_t rnr_self=kTRUE, Bool_t rnr_children=kTRUE)
Enable rendering of children and their list contents.
Bool_t fPickable
sLTI_t::iterator sLTI_i
Definition TEveElement.h:68
void CSCApplyMainTransparencyToAllChildren()
virtual void AddParent(TEveElement *re)
Add re into the list parents.
UChar_t GetChangeBits() const
virtual void UnSelected()
Virtual function called when both fSelected is false and fImpliedSelected is 0.
virtual Bool_t GetRnrAnything() const
virtual Bool_t HasMainTrans() const
Exception class thrown by TEve classes and macros.
Definition TEveUtil.h:102
Central application manager for Eve.
Definition TEveManager.h:50
Abstract base-class for non-linear projectable objects.
Abstract base class for classes that hold results of a non-linear projection transformation.
Base-class for non-linear projections.
TEveTrans is a 4x4 transformation matrix for homogeneous coordinates stored internally in a column-ma...
Definition TEveTrans.h:27
A list tree is a widget that can contain a number of items arranged in a tree structure.
Definition TGListTree.h:197
The TGPicture class implements pictures and icons used in the different GUI elements and widgets.
Definition TGPicture.h:25
Geometrical transformation package.
Definition TGeoMatrix.h:39
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
Definition TNamed.cxx:173
const char * GetName() const override
Returns name of object.
Definition TNamed.h:49
const char * GetTitle() const override
Returns title of object.
Definition TNamed.h:50
virtual void SetName(const char *name)
Set the name of the TNamed.
Definition TNamed.cxx:149
virtual void SetNameTitle(const char *name, const char *title)
Set all the TNamed parameters (name and title).
Definition TNamed.cxx:163
Mother of all ROOT objects.
Definition TObject.h:42
Persistent Reference link to a TObject A TRef is a lightweight object pointing to any TObject.
Definition TRef.h:32
TObject * GetObject() const
Return a pointer to the referenced object.
Definition TRef.cxx:376
Basic string class.
Definition TString.h:138
Double_t x[n]
Definition legend1.C:17
const Int_t n
Definition legend1.C:16
TLine l
Definition textangle.C:4