00001 #ifndef Fireworks_Core_FWRPZView_h 00002 #define Fireworks_Core_FWRPZView_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Core 00006 // Class : FWRPZView 00007 // 00016 // 00017 // Original Author: Chris Jones 00018 // Created: Tue Feb 19 10:33:21 EST 2008 00019 // $Id: FWRPZView.h,v 1.20 2011/03/22 13:52:18 amraktad Exp $ 00020 // 00021 00022 // system include files 00023 #include <string> 00024 00025 // user include files 00026 #include "Fireworks/Core/interface/FWEveView.h" 00027 #include "Fireworks/Core/interface/FWDoubleParameter.h" 00028 #include "Fireworks/Core/interface/FWBoolParameter.h" 00029 #include "Fireworks/Core/interface/FWEvePtr.h" 00030 00031 // forward declarations 00032 class TEveProjectionManager; 00033 class TGLMatrix; 00034 class TEveCalo2D; 00035 class TEveProjectionAxes; 00036 class TEveWindowSlot; 00037 class FWColorManager; 00038 class FWRPZViewGeometry; 00039 00040 class FWRPZView : public FWEveView 00041 { 00042 public: 00043 FWRPZView(TEveWindowSlot* iParent, FWViewType::EType); 00044 virtual ~FWRPZView(); 00045 00046 // ---------- const member functions --------------------- 00047 00048 virtual void addTo(FWConfiguration&) const; 00049 virtual void populateController(ViewerParameterGUI&) const; 00050 virtual TEveCaloViz* getEveCalo() const; 00051 00052 // ---------- member functions --------------------------- 00053 virtual void setContext(const fireworks::Context&); 00054 virtual void setFrom(const FWConfiguration&); 00055 virtual void voteCaloMaxVal(); 00056 00057 virtual void eventBegin(); 00058 00059 //returns the new element created from this import 00060 void importElements(TEveElement* iProjectableChild, float layer, TEveElement* iProjectedParent=0); 00061 00062 private: 00063 FWRPZView(const FWRPZView&); // stop default 00064 const FWRPZView& operator=(const FWRPZView&); // stop default 00065 00066 void doPreScaleDistortion(); 00067 void doFishEyeDistortion(); 00068 void doCompression(bool); 00069 void doShiftOrigin(); 00070 00071 void setEtaRng(); 00072 00073 void showProjectionAxes( ); 00074 00075 // ---------- member data -------------------------------- 00076 static FWRPZViewGeometry* s_geometryList; 00077 const static float s_distortF; 00078 const static float s_distortFInv; 00079 00080 TEveProjectionManager* m_projMgr; 00081 TEveProjectionAxes* m_axes; 00082 TEveCalo2D* m_calo; 00083 00084 00085 // parameters 00086 FWBoolParameter m_shiftOrigin; 00087 FWDoubleParameter m_fishEyeDistortion; 00088 FWDoubleParameter m_fishEyeR; 00089 00090 FWDoubleParameter m_caloDistortion; 00091 FWDoubleParameter m_muonDistortion; 00092 FWBoolParameter m_showProjectionAxes; 00093 FWBoolParameter m_compressMuon; 00094 00095 FWBoolParameter* m_showHF; 00096 FWBoolParameter* m_showEndcaps; 00097 00098 }; 00099 00100 00101 #endif