CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/Fireworks/Core/interface/FWDigitSetProxyBuilder.h

Go to the documentation of this file.
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    TEveBoxSet* getBoxSet() const { return m_boxSet; } 
00063 
00064 private:
00065    FWDigitSetProxyBuilder(const FWDigitSetProxyBuilder&); // stop default
00066 
00067    const FWDigitSetProxyBuilder& operator=(const FWDigitSetProxyBuilder&); // stop default
00068 
00069    // ---------- member data --------------------------------
00070 
00071    virtual void modelChanges(const FWModelIds&, Product*);
00072  
00073    static TString getTooltip(TEveDigitSet* set, int idx);
00074 
00075    TEveDigitSet* digitSet(TEveElement* product);
00076 
00077    TEveBoxSet* m_boxSet;        
00078 };
00079 
00080 
00081 #endif