00001 #ifndef Fireworks_Core_FWDigitSetProxyBuilder_h 00002 #define Fireworks_Core_FWDigitSetProxyBuilder_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Core 00006 // Class : FWDigitSetProxyBuilder 00007 // 00016 // 00017 // Original Author: Alja Mrak-Tadel 00018 // Created: Tue Oct 19 12:00:57 CEST 2010 00019 // $Id: FWDigitSetProxyBuilder.h,v 1.3 2010/12/03 20:38:57 amraktad Exp $ 00020 // 00021 00022 // system include files 00023 00024 // user include files 00025 #include "Fireworks/Core/interface/FWProxyBuilderBase.h" 00026 00027 // forward declarations 00028 class TEveDigitSet; 00029 class TEveBoxSet; 00030 class FWDisplayProperties; 00031 00032 class FWDigitSetProxyBuilder : public FWProxyBuilderBase 00033 { 00034 00035 public: 00036 FWDigitSetProxyBuilder(); 00037 virtual ~FWDigitSetProxyBuilder(); 00038 00039 // ---------- const member functions --------------------- 00040 00041 virtual bool willHandleInteraction() const { return true; } 00042 00043 // ---------- static member functions -------------------- 00044 00045 // ---------- member functions --------------------------- 00046 00047 protected: 00048 00049 // AMT: temproary structure since TEveBoxSet::BFreeBox_t is protected 00050 // this workaround should be removed in next root patch 00051 struct BFreeBox_t 00052 { 00053 Int_t fValue; 00054 void *fUserData; 00055 Float_t fVertices[8][3]; 00056 BFreeBox_t(Int_t v=0) : fValue(v), fUserData(0) {} 00057 }; 00058 00059 00060 TEveBoxSet* addBoxSetToProduct(TEveElementList* product); 00061 void addBox(TEveBoxSet* set, const float* pnts, const FWDisplayProperties& dp); 00062 00063 private: 00064 FWDigitSetProxyBuilder(const FWDigitSetProxyBuilder&); // stop default 00065 00066 const FWDigitSetProxyBuilder& operator=(const FWDigitSetProxyBuilder&); // stop default 00067 00068 // ---------- member data -------------------------------- 00069 00070 virtual void modelChanges(const FWModelIds&, Product*); 00071 00072 static TString getTooltip(TEveDigitSet* set, int idx); 00073 00074 TEveDigitSet* digitSet(TEveElement* product); 00075 00076 }; 00077 00078 00079 #endif