File indexing completed on 2023-03-17 11:01:23
0001 #ifndef Fireworks_Core_FWGeometryTableView_h
0002 #define Fireworks_Core_FWGeometryTableView_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
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
0058 void updateVisibilityTopNode();
0059
0060 void checkRegionOfInterest();
0061 bool isSelectedByRegion() const { return m_selectRegion.value(); }
0062
0063 protected:
0064
0065
0066 private:
0067 FWGeometryTableView(const FWGeometryTableView&);
0068 const FWGeometryTableView& operator=(const FWGeometryTableView&);
0069
0070
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