Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:30

0001 #ifndef Fireworks_Core_FW3DViewBase_h
0002 #define Fireworks_Core_FW3DViewBase_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Core
0006 // Class  :     FW3DViewBase
0007 //
0008 /**\class FW3DViewBase FW3DViewBase.h Fireworks/Core/interface/FW3DViewBase.h
0009 
0010    Description: <one line class summary>
0011 
0012    Usage:
0013     <usage>
0014 
0015  */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Thu Feb 21 11:22:37 EST 2008
0019 //
0020 
0021 // system include files
0022 
0023 // user include files
0024 #include "Rtypes.h"
0025 #include "Fireworks/Core/interface/FWEveView.h"
0026 #include "Fireworks/Core/interface/fwLog.h"
0027 #include "Fireworks/Core/interface/FWLongParameter.h"
0028 #include "Fireworks/Core/interface/FWBoolParameter.h"
0029 // forward declarations
0030 class TEveElementList;
0031 class TEveGeoShape;
0032 class TEveWindowSlot;
0033 
0034 class FW3DViewGeometry;
0035 class FWColorManager;
0036 class TGLClip;
0037 class TEveLine;
0038 class TEveBoxSet;
0039 
0040 class FW3DViewDistanceMeasureTool;
0041 
0042 class FW3DViewBase : public FWEveView {
0043 public:
0044   FW3DViewBase(TEveWindowSlot*, FWViewType::EType, unsigned int version = 8);
0045   ~FW3DViewBase() override;
0046 
0047   // ---------- const member functions ---------------------
0048 
0049   void addTo(FWConfiguration&) const override;
0050   void populateController(ViewerParameterGUI&) const override;
0051 
0052   // ---------- static member functions --------------------
0053 
0054   // ---------- member functions ---------------------------
0055   void setContext(const fireworks::Context&) override;
0056   void setFrom(const FWConfiguration&) override;
0057 
0058   // To be fixed.
0059   void updateGlobalSceneScaleParameters();
0060 
0061   FW3DViewDistanceMeasureTool* getDMT() { return m_DMT; }
0062   bool requestGLHandlerPick() const override;
0063   void setCurrentDMTVertex(double x, double y, double z);
0064 
0065   void showEcalBarrel(bool);
0066 
0067   void setClip(float eta, float phi);
0068 
0069 private:
0070   FW3DViewBase(const FW3DViewBase&);  // stop default
0071 
0072   const FW3DViewBase& operator=(const FW3DViewBase&);  // stop default
0073 
0074   // ---------- member data --------------------------------
0075   FW3DViewGeometry* m_geometry;
0076   TGLClip* m_glClip;
0077 
0078   // parameters
0079   FWEnumParameter m_showMuonBarrel;
0080   FWBoolParameter m_showMuonEndcap;
0081   FWBoolParameter m_showPixelBarrel;
0082   FWBoolParameter m_showPixelEndcap;
0083   FWBoolParameter m_showTrackerBarrel;
0084   FWBoolParameter m_showTrackerEndcap;
0085   FWBoolParameter m_showHGCalEE;
0086   FWBoolParameter m_showHGCalHSi;
0087   FWBoolParameter m_showHGCalHSc;
0088   FWBoolParameter m_showMtdBarrel;
0089   FWBoolParameter m_showMtdEndcap;
0090 
0091   TEveBoxSet* m_ecalBarrel;
0092   FWBoolParameter m_showEcalBarrel;
0093 
0094   FWEnumParameter m_rnrStyle;
0095   FWBoolParameter m_selectable;
0096 
0097   FWEnumParameter m_cameraType;
0098 
0099   FWBoolParameter m_clipEnable;
0100   FWDoubleParameter m_clipTheta;
0101   FWDoubleParameter m_clipPhi;
0102   FWDoubleParameter m_clipDelta1;
0103   FWDoubleParameter m_clipDelta2;
0104   FWLongParameter m_clipAppexOffset;
0105   FWLongParameter m_clipHGCalLayerBegin;
0106   FWLongParameter m_clipHGCalLayerEnd;
0107 
0108   FW3DViewDistanceMeasureTool* m_DMT;
0109   TEveLine* m_DMTline;
0110 
0111   void selectable(bool);
0112 
0113   void enableSceneClip(bool);
0114   void updateClipPlanes(bool resetCamera);
0115   void updateHGCalVisibility(bool);
0116 
0117   void rnrStyle(long);
0118   void showMuonBarrel(long);
0119   void setCameraType(long);
0120 };
0121 
0122 #endif