CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 // $Id: FWSimpleProxyBuilderTemplate.h,v 1.7 2010/05/04 13:24:40 amraktad Exp $
20 //
21 
22 // system include files
23 
24 // user include files
26 
27 // forward declarations
28 
29 template <typename T>
31 
32 public:
34  FWSimpleProxyBuilder(typeid(T)) {
35  }
36 
37  //virtual ~FWSimpleProxyBuilderTemplate();
38 
39  // ---------- const member functions ---------------------
40 
41  // ---------- static member functions --------------------
42 
43  // ---------- member functions ---------------------------
44 
45 protected:
46  const T& modelData(int index) { return *reinterpret_cast<const T*>(m_helper.offsetObject(item()->modelData(index))); }
47 
48 private:
50 
52 
53  virtual void build(const void*iData, unsigned int iIndex, TEveElement& oItemHolder, const FWViewContext* context)
54  {
55  if(0!=iData) {
56  build(*reinterpret_cast<const T*> (iData), iIndex, oItemHolder, context);
57  }
58  }
59 
60  virtual void buildViewType(const void*iData, unsigned int iIndex, TEveElement& oItemHolder, FWViewType::EType viewType, const FWViewContext* context)
61  {
62  if(0!=iData) {
63  buildViewType(*reinterpret_cast<const T*> (iData), iIndex, oItemHolder, viewType, context);
64  }
65  }
69  virtual void build(const T& iData, unsigned int iIndex,TEveElement& oItemHolder, const FWViewContext*)
70  {
71  throw std::runtime_error("virtual build(const T&, unsigned int, TEveElement&, const FWViewContext*) not implemented by inherited class.");
72  }
73 
74  virtual void buildViewType(const T& iData, unsigned int iIndex,TEveElement& oItemHolder, FWViewType::EType viewType, const FWViewContext*)
75  {
76  throw std::runtime_error("virtual buildViewType(const T&, unsigned int, TEveElement&, FWViewType::EType, const FWViewContext*) not implemented by inherited class");
77  };
78 
79  // ---------- member data --------------------------------
80 
81 };
82 
83 
84 #endif
const fireworks::Context & context() const
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 FWEventItem * item() const
const FWSimpleProxyBuilderTemplate & operator=(const FWSimpleProxyBuilderTemplate &)
FWSimpleProxyHelper m_helper
virtual void build(const void *iData, unsigned int iIndex, TEveElement &oItemHolder, const FWViewContext *context)
long double T
virtual void buildViewType(const void *iData, unsigned int iIndex, TEveElement &oItemHolder, FWViewType::EType viewType, const FWViewContext *context)