Logo ROOT  
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
18namespace ROOT {
19namespace Experimental {
20
21//==============================================================================
22// REveCompound
23// Container for managing compounds of EveElements.
24//==============================================================================
25
27 public REveProjectable
28{
29private:
30 REveCompound(const REveCompound &) = delete;
32
33protected:
34 Short_t fCompoundOpen{0}; // If more than zero, tag new children as compound members.
37
38public:
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{
67private:
70
71public:
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
char Char_t
Definition: RtypesCore.h:33
const Bool_t kFALSE
Definition: RtypesCore.h:101
bool Bool_t
Definition: RtypesCore.h:63
short Short_t
Definition: RtypesCore.h:39
short Color_t
Definition: RtypesCore.h:92
const Bool_t kTRUE
Definition: RtypesCore.h:100
REveCompoundProjected(const REveCompoundProjected &)=delete
virtual REveElement * GetProjectedAsElement()
Returns this projected dynamic-casted to REveElement.
REveCompoundProjected & operator=(const REveCompoundProjected &)=delete
virtual void SetMainColor(Color_t color)
Revert back to the behaviour of REveElement as color is propagated:
void AddElement(REveElement *el) override
Call base-class implementation.
void FillImpliedSelectedSet(Set_t &impSelSet) override
Recurse on all children that are in this compound and call the base-class version.
REveCompound(const REveCompound &)=delete
void RemoveElementsLocal() override
Decompoundofy children, call base-class version.
TClass * ProjectedClass(const REveProjection *p) const override
Virtual from REveProjectable, returns REveCompoundProjected class.
REveCompound & operator=(const REveCompound &)=delete
void RemoveElementLocal(REveElement *el) override
Decompoundofy el, call base-class version.
void SetMainTransparency(Char_t t) override
SetMainTransparency for the compound.
void SetMainColor(Color_t color) override
SetMainColor for the compound.
std::set< REveElement * > Set_t
Definition: REveElement.hxx:54
REveProjection Base for specific classes that implement non-linear projections.
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:80
const Int_t n
Definition: legend1.C:16
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...