Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
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 
16 
17 namespace ROOT {
18 namespace Experimental {
19 
20 class REveDataCollection;
21 class REveElement;
22 
23 class REveDataSimpleProxyBuilder : public REveDataProxyBuilderBase
24 {
25 public:
26  REveDataSimpleProxyBuilder(const std::string &type);
27  virtual ~REveDataSimpleProxyBuilder();
28 
29 protected:
30  void Build(const REveDataCollection* iCollection, REveElement* product, const REveViewContext*) override;
31 
32  void BuildViewType(const REveDataCollection* iCollection, REveElement* product, std::string viewType, const REveViewContext*) override;
33 
34  // Called once for every item in collection, the void* points to the
35  // item properly offset in memory.
36  virtual void Build(const void* data, int index, REveElement* iCollectionHolder, const REveViewContext*) = 0;
37  virtual void BuildViewType(const void* data, int index, REveElement* iCollectionHolder, std::string viewType, const REveViewContext*) = 0;
38 
39  void Clean() override;
40 
41 private:
42  REveDataSimpleProxyBuilder(const REveDataSimpleProxyBuilder&); // stop default
43 
44  const REveDataSimpleProxyBuilder& operator=(const REveDataSimpleProxyBuilder&); // stop default
45 
46  bool VisibilityModelChanges(int idx, REveElement*, const REveViewContext*) override;
47 
48 };
49 
50 } // namespace Experimental
51 } // namespace ROOT
52 
53 #endif