12 #ifndef ROOT7_REveCompound
13 #define ROOT7_REveCompound
19 namespace Experimental {
26 class REveCompound :
public REveElement,
27 public REveProjectable
30 REveCompound(
const REveCompound &);
31 REveCompound &operator=(
const REveCompound &);
34 Short_t fCompoundOpen{0};
35 Bool_t fDoColor{kFALSE};
36 Bool_t fDoTransparency{kFALSE};
39 REveCompound(
const std::string& n =
"REveCompound",
const std::string& t =
"",
40 Bool_t doColor = kTRUE, Bool_t doTransparency = kFALSE);
41 virtual ~REveCompound() {}
43 void OpenCompound() { ++fCompoundOpen; }
44 void CloseCompound() { --fCompoundOpen; }
45 Bool_t IsCompoundOpen()
const {
return fCompoundOpen > 0; }
47 void SetMainColor(Color_t color)
override;
48 void SetMainTransparency(Char_t t)
override;
50 void AddElement(REveElement *el)
override;
51 void RemoveElementLocal(REveElement *el)
override;
52 void RemoveElementsLocal()
override;
54 void FillImpliedSelectedSet(Set_t &impSelSet)
override;
56 TClass *ProjectedClass(
const REveProjection *p)
const override;
64 class REveCompoundProjected :
public REveCompound,
68 REveCompoundProjected(
const REveCompoundProjected &);
69 REveCompoundProjected &operator=(
const REveCompoundProjected &);
72 REveCompoundProjected();
73 virtual ~REveCompoundProjected() {}
75 virtual void SetMainColor(Color_t color);
77 virtual void UpdateProjection() {}
78 virtual REveElement *GetProjectedAsElement() {
return this; }