Logo ROOT   6.19/01
Reference Guide
REveCompound.hxx
Go to the documentation of this file.
1 // @(#)root/eve7:$Id$
2 // Author: Matevz Tadel 2007
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2019, 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 ROOT7_REveCompound
13 #define ROOT7_REveCompound
14 
15 #include <ROOT/REveElement.hxx>
17 
18 namespace ROOT {
19 namespace Experimental {
20 
21 //==============================================================================
22 // REveCompound
23 // Container for managing compounds of EveElements.
24 //==============================================================================
25 
26 class REveCompound : public REveElement,
27  public REveProjectable
28 {
29 private:
30  REveCompound(const REveCompound &); // Not implemented
31  REveCompound &operator=(const REveCompound &); // Not implemented
32 
33 protected:
34  Short_t fCompoundOpen{0}; // If more than zero, tag new children as compound members.
37 
38 public:
39  REveCompound(const std::string& n = "REveCompound", const std::string& t = "",
40  Bool_t doColor = kTRUE, Bool_t doTransparency = kFALSE);
41  virtual ~REveCompound() {}
42 
45  Bool_t IsCompoundOpen() const { return fCompoundOpen > 0; }
46 
47  void SetMainColor(Color_t color) override;
48  void SetMainTransparency(Char_t t) override;
49 
50  void AddElement(REveElement *el) override;
51  void RemoveElementLocal(REveElement *el) override;
52  void RemoveElementsLocal() override;
53 
54  void FillImpliedSelectedSet(Set_t &impSelSet) override;
55 
56  TClass *ProjectedClass(const REveProjection *p) const override;
57 };
58 
59 //==============================================================================
60 // REveCompoundProjected
61 // Projected EveCompund container.
62 //==============================================================================
63 
65  public REveProjected
66 {
67 private:
68  REveCompoundProjected(const REveCompoundProjected &); // Not implemented
69  REveCompoundProjected &operator=(const REveCompoundProjected &); // Not implemented
70 
71 public:
74 
75  virtual void SetMainColor(Color_t color);
76 
77  virtual void UpdateProjection() {}
78  virtual REveElement *GetProjectedAsElement() { return this; }
79 };
80 
81 } // namespace Experimental
82 } // namespace ROOT
83 
84 #endif
VSD Structures.
Definition: StringConv.hxx:21
void RemoveElementsLocal() override
Decompoundofy children, call base-class version.
bool Bool_t
Definition: RtypesCore.h:59
void AddElement(REveElement *el) override
Call base-class implementation.
REveCompound & operator=(const REveCompound &)
void SetMainColor(Color_t color) override
SetMainColor for the compound.
REveProjection Base for specific classes that implement non-linear projections.
short Color_t
Definition: RtypesCore.h:79
REveCompound(const REveCompound &)
void RemoveElementLocal(REveElement *el) override
Decompoundofy el, call base-class version.
short Short_t
Definition: RtypesCore.h:35
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:75
TClass * ProjectedClass(const REveProjection *p) const override
Virtual from REveProjectable, returns REveCompoundProjected class.
REveCompoundProjected & operator=(const REveCompoundProjected &)
const Bool_t kFALSE
Definition: RtypesCore.h:88
virtual void SetMainColor(Color_t color)
Revert back to the behaviour of REveElement as color is propagated:
std::set< REveElement * > Set_t
Definition: REveElement.hxx:79
virtual REveElement * GetProjectedAsElement()
Returns this projected dynamic-casted to REveElement.
char Char_t
Definition: RtypesCore.h:29
void SetMainTransparency(Char_t t) override
SetMainTransparency for the compound.
const Bool_t kTRUE
Definition: RtypesCore.h:87
const Int_t n
Definition: legend1.C:16
void FillImpliedSelectedSet(Set_t &impSelSet) override
Recurse on all children that are in this compound and call the base-class version.