CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_7_hltpatch1/src/Fireworks/Core/src/FWGeometryTableView.h

Go to the documentation of this file.
00001 #ifndef Fireworks_Core_FWGeometryTableView_h
00002 #define Fireworks_Core_FWGeometryTableView_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Core
00006 // Class  :     FWGeometryTableView
00007 // 
00016 //
00017 // Original Author:  
00018 //         Created:  Wed Jan  4 00:05:38 CET 2012
00019 // $Id: FWGeometryTableView.h,v 1.11 2012/05/09 04:51:05 amraktad Exp $
00020 //
00021 
00022 #include "Fireworks/Core/interface/FWGeometryTableViewBase.h"
00023 class FWGeometryTableManagerBase;
00024 class FWGeometryTableManager;
00025 class FWGUIValidatingTextEntry;
00026 class FWGeoMaterialValidator;
00027 class FWEveDetectorGeo;
00028 
00029 class FWGeometryTableView : public FWGeometryTableViewBase
00030 {
00031 public:
00032    enum EMode          { kNode, kVolume };
00033    enum EProximityAlgo { kBBoxCenter, kBBoxSurface };
00034    enum EFiterType     { kFilterMaterialName, kFilterMaterialTitle, kFilterShapeName, kFilterShapeClassName };
00035 
00036 public:
00037    FWGeometryTableView(TEveWindowSlot* iParent, FWColorManager* colMng);
00038    virtual ~FWGeometryTableView();
00039    virtual void populateController(ViewerParameterGUI&) const;
00040    virtual  FWGeometryTableManagerBase*  getTableManager();
00041 
00042    void filterListCallback();
00043    void filterTextEntryCallback();
00044    void updateFilter(std::string&);
00045 
00046    bool getVolumeMode()      const { return m_mode.value() == kVolume; }
00047    std::string getFilter()   const { return m_filter.value(); }
00048    int  getAutoExpand()      const { return m_autoExpand.value(); }
00049    int  getVisLevel()        const { return m_visLevel.value(); }
00050    bool getIgnoreVisLevelWhenFilter() const { return m_visLevelFilter.value(); }
00051 
00052    int getFilterType() const { return m_filterType.value(); }
00053 
00054    bool drawTopNode() const { return ! m_disableTopNode.value(); }
00055    void autoExpandCallback();
00056    virtual void setPath(int, std::string&);   
00057    virtual void setFrom(const FWConfiguration&);
00058 
00059   // void chosenItem(int);
00060    void updateVisibilityTopNode();
00061    
00062    void checkRegionOfInterest();
00063    bool isSelectedByRegion() const { return m_selectRegion.value(); } 
00064    
00065 protected:
00066    // virtual void initGeometry(TGeoNode* iGeoTopNode, TObjArray* iVolumes);
00067 
00068 private:
00069    FWGeometryTableView(const FWGeometryTableView&); // stop default
00070    const FWGeometryTableView& operator=(const FWGeometryTableView&); // stop default
00071 
00072    // ---------- member data --------------------------------
00073    FWGeometryTableManager   *m_tableManager;
00074 
00075    FWGUIValidatingTextEntry *m_filterEntry;
00076    FWGeoMaterialValidator   *m_filterValidator;
00077 
00078 #ifndef __CINT__ 
00079    FWEnumParameter         m_mode;
00080    FWBoolParameter         m_disableTopNode;
00081    FWLongParameter         m_visLevel;
00082 
00083    FWStringParameter       m_filter; 
00084    FWEnumParameter         m_filterType;
00085    FWBoolParameter         m_visLevelFilter; 
00086    
00087    FWBoolParameter         m_selectRegion;
00088    FWDoubleParameter       m_regionRadius;
00089    FWEnumParameter         m_proximityAlgo;
00090    
00091    
00092    boost::shared_ptr<FWParameterSetterBase> m_filterTypeSetter;
00093 
00094 #endif  
00095 
00096    ClassDef(FWGeometryTableView, 0);
00097 };
00098 
00099 #endif