12 #ifndef ROOT7_REveProjectionManager
13 #define ROOT7_REveProjectionManager
20 namespace Experimental {
27 class REveProjectionManager :
public REveElement,
28 public REveAuntAsList,
32 REveProjectionManager(
const REveProjectionManager &);
33 REveProjectionManager &operator=(
const REveProjectionManager &);
36 REveProjection *fProjections[REveProjection::kPT_End];
38 REveProjection *fProjection{
nullptr};
40 Float_t fCurrentDepth{0.};
44 Bool_t fImportEmpty{kFALSE};
46 virtual Bool_t ShouldImport(REveElement *el);
47 virtual void UpdateDependentElsAndScenes(REveElement *root);
50 REveProjectionManager(REveProjection::EPType_e type = REveProjection::kPT_Unknown);
51 virtual ~REveProjectionManager();
53 void AddDependent(REveElement *el);
54 void RemoveDependent(REveElement *el);
56 void SetProjection(REveProjection::EPType_e type);
57 REveProjection *GetProjection() {
return fProjection; }
59 virtual void UpdateName();
61 void SetCenter(Float_t x, Float_t y, Float_t z);
62 REveVector &GetCenter() {
return fCenter; }
64 void SetCurrentDepth(Float_t d) { fCurrentDepth = d; }
65 Float_t GetCurrentDepth()
const {
return fCurrentDepth; }
67 void SetImportEmpty(Bool_t ie) { fImportEmpty = ie; }
68 Bool_t GetImportEmpty()
const {
return fImportEmpty; }
70 virtual REveElement *ImportElementsRecurse(REveElement *el, REveElement *parent);
71 virtual REveElement *ImportElements(REveElement *el, REveElement *ext_list =
nullptr);
73 virtual REveElement *SubImportElements(REveElement *el, REveElement *proj_parent);
74 virtual Int_t SubImportChildren(REveElement *el, REveElement *proj_parent);
76 virtual void ProjectChildren();
77 virtual void ProjectChildrenRecurse(REveElement *el);
79 void ComputeBBox()
override;