Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:01:23

0001 #ifndef Fireworks_Core_FWGeometryTableView_h
0002 #define Fireworks_Core_FWGeometryTableView_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Core
0006 // Class  :     FWGeometryTableView
0007 //
0008 /**\class FWGeometryTableView FWGeometryTableView.h Fireworks/Core/interface/FWGeometryTableView.h
0009 
0010  Description: [one line class summary]
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:
0018 //         Created:  Wed Jan  4 00:05:38 CET 2012
0019 //
0020 
0021 #include "Fireworks/Core/interface/FWGeometryTableViewBase.h"
0022 class FWGeometryTableManagerBase;
0023 class FWGeometryTableManager;
0024 class FWGUIValidatingTextEntry;
0025 class FWGeoMaterialValidator;
0026 class FWEveDetectorGeo;
0027 
0028 class FWGeometryTableView : public FWGeometryTableViewBase {
0029 public:
0030   enum EMode { kNode, kVolume };
0031   enum EProximityAlgo { kBBoxCenter, kBBoxSurface };
0032   enum EFiterType { kFilterMaterialName, kFilterMaterialTitle, kFilterShapeName, kFilterShapeClassName };
0033 
0034 public:
0035   FWGeometryTableView(TEveWindowSlot* iParent, FWColorManager* colMng);
0036   ~FWGeometryTableView() override;
0037   void populateController(ViewerParameterGUI&) const override;
0038   FWGeometryTableManagerBase* getTableManager() override;
0039 
0040   void filterListCallback();
0041   void filterTextEntryCallback();
0042   void updateFilter(std::string&);
0043 
0044   bool getVolumeMode() const { return m_mode.value() == kVolume; }
0045   std::string getFilter() const { return m_filter.value(); }
0046   int getAutoExpand() const { return m_autoExpand.value(); }
0047   int getVisLevel() const { return m_visLevel.value(); }
0048   bool getIgnoreVisLevelWhenFilter() const { return m_visLevelFilter.value(); }
0049 
0050   int getFilterType() const { return m_filterType.value(); }
0051 
0052   bool drawTopNode() const { return !m_disableTopNode.value(); }
0053   void autoExpandCallback();
0054   void setPath(int, std::string&) override;
0055   void setFrom(const FWConfiguration&) override;
0056 
0057   // void chosenItem(int);
0058   void updateVisibilityTopNode();
0059 
0060   void checkRegionOfInterest();
0061   bool isSelectedByRegion() const { return m_selectRegion.value(); }
0062 
0063 protected:
0064   // virtual void initGeometry(TGeoNode* iGeoTopNode, TObjArray* iVolumes);
0065 
0066 private:
0067   FWGeometryTableView(const FWGeometryTableView&);                   // stop default
0068   const FWGeometryTableView& operator=(const FWGeometryTableView&);  // stop default
0069 
0070   // ---------- member data --------------------------------
0071   FWGeometryTableManager* m_tableManager;
0072 
0073   FWGUIValidatingTextEntry* m_filterEntry;
0074   FWGeoMaterialValidator* m_filterValidator;
0075 
0076 #ifndef __CINT__
0077   FWEnumParameter m_mode;
0078   FWBoolParameter m_disableTopNode;
0079   FWLongParameter m_visLevel;
0080 
0081   FWStringParameter m_filter;
0082   FWEnumParameter m_filterType;
0083   FWBoolParameter m_visLevelFilter;
0084 
0085   FWBoolParameter m_selectRegion;
0086   FWDoubleParameter m_regionRadius;
0087   FWEnumParameter m_proximityAlgo;
0088 
0089   std::shared_ptr<FWParameterSetterBase> m_filterTypeSetter;
0090 
0091 #endif
0092 
0093   ClassDefOverride(FWGeometryTableView, 0);
0094 };
0095 
0096 #endif