Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
REveDataSimpleProxyBuilder.hxx
Go to the documentation of this file.
1// @(#)root/eve7:$Id$
2// Authors: Matevz Tadel & Alja Mrak-Tadel, 2019
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_REveDataProxySimpleBuilder
13#define ROOT7_REveDataProxySimpleBuilder
14
15#include<list>
17
18namespace ROOT {
19namespace Experimental {
20
21class REveDataCollection;
22class REveElement;
23
25{
26private:
28public:
31 virtual REveElement *GetSelectionMaster() override;
32
33 bool fUsed{false};
34};
35
36//
37//____________________________________________________________________________________
38//
40{
41
42public:
45
46 struct SPBProduct {
47 std::map<int, REveCollectionCompound*> map;
48 };
49
50 typedef std::map<REveElement*, std::unique_ptr<SPBProduct*> > EProductMap_t;
51
52 virtual REveElement* CreateProduct(const std::string& viewType, const REveViewContext*) override;
53
54protected:
55 void BuildProduct(const REveDataCollection* iCollection, REveElement* product, const REveViewContext*) override;
56
57 void BuildProductViewType(const REveDataCollection* iCollection, REveElement* product, const std::string& viewType, const REveViewContext*) override;
58
59 // Called once for every item in collection, the void* points to the
60 // item properly offset in memory.
61 virtual void BuildItem(const void* data, int index, REveElement* iCollectionHolder, const REveViewContext*) = 0;
62 virtual void BuildItemViewType(const void* data, int index, REveElement* iCollectionHolder, const std::string& viewType, const REveViewContext*) = 0;
63
64 void ModelChanges(const REveDataCollection::Ids_t& iIds, Product* p) override;
65 void FillImpliedSelected(REveElement::Set_t& impSet, Product* p) override;
66 void Clean() override; // Utility
67 REveCollectionCompound* CreateCompound(bool set_color=true, bool propagate_color_to_all_children=false);
68
69 //int GetItemIdxForCompound() const;
70 bool VisibilityModelChanges(int idx, REveElement*, const std::string& viewType, const REveViewContext*) override;
71
72 std::map<REveElement*, SPBProduct*> fProductMap;
73 REveCompound* GetHolder(REveElement *product, int idx);
74
75private:
77
79};
80//==============================================================================
81
82
83} // namespace Experimental
84} // namespace ROOT
85
86#endif
#define c(i)
Definition RSha256.hxx:101
Base class for REveUtil visualization elements, providing hierarchy management, rendering control and...
virtual REveElement * GetSelectionMaster() override
Returns the master element - that is:
virtual REveElement * CreateProduct(const std::string &viewType, const REveViewContext *) override
void FillImpliedSelected(REveElement::Set_t &impSet, Product *p) override
virtual void BuildItem(const void *data, int index, REveElement *iCollectionHolder, const REveViewContext *)=0
REveCompound * GetHolder(REveElement *product, int idx)
void BuildProduct(const REveDataCollection *iCollection, REveElement *product, const REveViewContext *) override
std::map< REveElement *, std::unique_ptr< SPBProduct * > > EProductMap_t
bool VisibilityModelChanges(int idx, REveElement *, const std::string &viewType, const REveViewContext *) override
REveDataSimpleProxyBuilder(const REveDataSimpleProxyBuilder &)
std::map< REveElement *, SPBProduct * > fProductMap
virtual void BuildItemViewType(const void *data, int index, REveElement *iCollectionHolder, const std::string &viewType, const REveViewContext *)=0
void ModelChanges(const REveDataCollection::Ids_t &iIds, Product *p) override
REveCollectionCompound * CreateCompound(bool set_color=true, bool propagate_color_to_all_children=false)
void BuildProductViewType(const REveDataCollection *iCollection, REveElement *product, const std::string &viewType, const REveViewContext *) override
const REveDataSimpleProxyBuilder & operator=(const REveDataSimpleProxyBuilder &)
std::set< REveElement * > Set_t
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...