CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
FWSimpleProxyBuilderTemplate.h
Go to the documentation of this file.
1 #ifndef Fireworks_Core_FWSimpleProxyBuilderTemplate_h
2 #define Fireworks_Core_FWSimpleProxyBuilderTemplate_h
3 // -*- C++ -*-
4 //
5 // Package: Core
6 // Class : FWSimpleProxyBuilderTemplate
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Tue Dec 2 11:20:00 EST 2008
19 //
20 
21 // system include files
22 
23 // user include files
26 
27 // forward declarations
28 
29 template <typename T>
31 public:
33 
34  //virtual ~FWSimpleProxyBuilderTemplate();
35 
36  // ---------- const member functions ---------------------
37 
38  // ---------- static member functions --------------------
39 
40  // ---------- member functions ---------------------------
41 
42 protected:
43  const T& modelData(int index) { return *reinterpret_cast<const T*>(m_helper.offsetObject(item()->modelData(index))); }
44 
46  void build(const void* iData, unsigned int iIndex, TEveElement& oItemHolder, const FWViewContext* context) override {
47  if (nullptr != iData) {
48  build(*reinterpret_cast<const T*>(iData), iIndex, oItemHolder, context);
49  }
50  }
51 
53  void buildViewType(const void* iData,
54  unsigned int iIndex,
55  TEveElement& oItemHolder,
56  FWViewType::EType viewType,
57  const FWViewContext* context) override {
58  if (nullptr != iData) {
59  buildViewType(*reinterpret_cast<const T*>(iData), iIndex, oItemHolder, viewType, context);
60  }
61  }
65  virtual void build(const T& iData, unsigned int iIndex, TEveElement& oItemHolder, const FWViewContext*) {
66  throw std::runtime_error(
67  "virtual build(const T&, unsigned int, TEveElement&, const FWViewContext*) not implemented by inherited "
68  "class.");
69  }
70 
71  virtual void buildViewType(
72  const T& iData, unsigned int iIndex, TEveElement& oItemHolder, FWViewType::EType viewType, const FWViewContext*) {
73  throw std::runtime_error(
74  "virtual buildViewType(const T&, unsigned int, TEveElement&, FWViewType::EType, const FWViewContext*) not "
75  "implemented by inherited class");
76  };
77 
78 public:
79  FWSimpleProxyBuilderTemplate(const FWSimpleProxyBuilderTemplate&) = delete; // stop default
80 
81  const FWSimpleProxyBuilderTemplate& operator=(const FWSimpleProxyBuilderTemplate&) = delete; // stop default
82 
83  // ---------- member data --------------------------------
84 };
85 
86 #endif
const fireworks::Context & context() const
void buildViewType(const void *iData, unsigned int iIndex, TEveElement &oItemHolder, FWViewType::EType viewType, const FWViewContext *context) override
virtual void buildViewType(const T &iData, unsigned int iIndex, TEveElement &oItemHolder, FWViewType::EType viewType, const FWViewContext *)
virtual void build(const T &iData, unsigned int iIndex, TEveElement &oItemHolder, const FWViewContext *)
const void * offsetObject(const void *iObj) const
const FWSimpleProxyBuilderTemplate & operator=(const FWSimpleProxyBuilderTemplate &)=delete
const FWEventItem * item() const
FWSimpleProxyHelper m_helper
void buildViewType(const FWEventItem *iItem, TEveElementList *product, FWViewType::EType viewType, const FWViewContext *) override
void build(const void *iData, unsigned int iIndex, TEveElement &oItemHolder, const FWViewContext *context) override
long double T