| 1 | // This may look like C code, but it is really -*- C++ -*-
 | 
|---|
| 2 | // Module PIext :   PIHisto2D PIH2DWdg 
 | 
|---|
| 3 | // Traceur Histo-2D    C. Magneville 97-98
 | 
|---|
| 4 | // LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA
 | 
|---|
| 5 | 
 | 
|---|
| 6 | #ifndef PIHISTO2D_H
 | 
|---|
| 7 | #define PIHISTO2D_H
 | 
|---|
| 8 | 
 | 
|---|
| 9 | #include "pisysdep.h"
 | 
|---|
| 10 | #include PIMENU_H 
 | 
|---|
| 11 | #include PIMENUBAR_H 
 | 
|---|
| 12 | #include PIOPTMENU_H
 | 
|---|
| 13 | 
 | 
|---|
| 14 | #include "histos2.h"
 | 
|---|
| 15 | #include "pidrawer.h"
 | 
|---|
| 16 | #include "piscdrawwdg.h"
 | 
|---|
| 17 | 
 | 
|---|
| 18 | ////////////////////////////////////////////////////////////////////
 | 
|---|
| 19 | class PIHisto2D : public PIDrawer {
 | 
|---|
| 20 | public:
 | 
|---|
| 21 |   PIHisto2D(Histo2D* histo, bool ad=false);
 | 
|---|
| 22 |   virtual ~PIHisto2D();
 | 
|---|
| 23 | 
 | 
|---|
| 24 |   void UseColors(bool fg=false,CMapId cmap=CMAP_GREYINV32,bool revcmap=false);
 | 
|---|
| 25 |   void UseScale(unsigned short type=0,float logscale=10.);
 | 
|---|
| 26 |   void UseDisplay(unsigned short type=0,float fnpt=0.5);
 | 
|---|
| 27 |   void UseDyn(float hmin=1.,float hmax=-1.);
 | 
|---|
| 28 |   void UseFrac(float frmin=0.1,float frmax=0.9);
 | 
|---|
| 29 |   void Print(int lp=0);
 | 
|---|
| 30 | 
 | 
|---|
| 31 |   virtual void Draw(PIGraphicUC* g,double xmin,double ymin,double xmax,double ymax);
 | 
|---|
| 32 | 
 | 
|---|
| 33 |   //AppendTextInfo a faire un jour - Reza 21/01/2002 
 | 
|---|
| 34 |   //virtual void AppendTextInfo(string& info,double xmin,double ymin
 | 
|---|
| 35 |   //                           ,double xmax,double ymax);
 | 
|---|
| 36 | 
 | 
|---|
| 37 |   // Ce que fait l'action de clic avec la souris
 | 
|---|
| 38 |   virtual void GetClickInfo(string& info, double x, double y
 | 
|---|
| 39 |                            ,double x0=0.,double y0=0.,bool fgdiff=false); 
 | 
|---|
| 40 | 
 | 
|---|
| 41 |   virtual void UpdateLimits();
 | 
|---|
| 42 |   virtual void DrawStats(PIGraphicUC* g);
 | 
|---|
| 43 |   inline  void SetStats(bool fg=true) {stats=fg;}
 | 
|---|
| 44 |   inline  void SetStatPosOffset(float ofx=-0.01, float ofy=-0.01) 
 | 
|---|
| 45 |           {spoX=ofx; spoY=ofy; }
 | 
|---|
| 46 | 
 | 
|---|
| 47 |   //  Methode permettant l'affichage d'une fenetre de controle specialisee 
 | 
|---|
| 48 |   virtual void ShowControlWindow(PIBaseWdgGen* wdg);
 | 
|---|
| 49 |   //  Desactivation de la fenetre de controle specialisee
 | 
|---|
| 50 |   virtual void DeactivateControlWindow(PIBaseWdgGen* wdg);
 | 
|---|
| 51 | 
 | 
|---|
| 52 |   //   Methode de decodage des options
 | 
|---|
| 53 |   virtual int  DecodeOptionString(vector<string> & opt, bool rmdecopt=true);
 | 
|---|
| 54 |   virtual int  OptionToString(vector<string> & opt) const;
 | 
|---|
| 55 |   virtual void GetOptionsHelpInfo(string& info);
 | 
|---|
| 56 | 
 | 
|---|
| 57 |   // Methodes inline
 | 
|---|
| 58 |   inline Histo2D*       Histogram()   {return(mHisto);}
 | 
|---|
| 59 |   inline bool           Color()       {return(mFgCol);}
 | 
|---|
| 60 |   inline CMapId         ColMap()      {return(mCmap);}
 | 
|---|
| 61 |   inline bool           IsColMapRev() {return(mRevCmap);}
 | 
|---|
| 62 |   inline unsigned short TypScale()    {return(mTypScal);}
 | 
|---|
| 63 |   inline unsigned short TypDisplay()  {return(mTypDisp);}
 | 
|---|
| 64 |   inline float          FPoints()     {return(mFPoints);}
 | 
|---|
| 65 |   inline float          HMax()        {return(mHMax);}
 | 
|---|
| 66 |   inline float          HMin()        {return(mHMin);}
 | 
|---|
| 67 |   inline float          FMax()        {return(mFracMax);}
 | 
|---|
| 68 |   inline float          FMin()        {return(mFracMin);}
 | 
|---|
| 69 |   inline float          LogScale()    {return(mLogScale);}
 | 
|---|
| 70 | 
 | 
|---|
| 71 | protected:
 | 
|---|
| 72 |   int NPixBin(PIGraphicUC* g);
 | 
|---|
| 73 |   char HPrint2(float f);
 | 
|---|
| 74 | 
 | 
|---|
| 75 |   Histo2D* mHisto;
 | 
|---|
| 76 |   bool mAdDO; bool stats;
 | 
|---|
| 77 |   bool mFgCol; CMapId mCmap; bool mRevCmap;
 | 
|---|
| 78 |   unsigned short mTypScal; float mLogScale;
 | 
|---|
| 79 |   unsigned short mTypDisp; float mFPoints;
 | 
|---|
| 80 |   float mHMin,mHMax;
 | 
|---|
| 81 |   float mFracMin,mFracMax;
 | 
|---|
| 82 |   float spoX, spoY; // Stat pos offset par rapport a position defaut
 | 
|---|
| 83 | };
 | 
|---|
| 84 | 
 | 
|---|
| 85 | ////////////////////////////////////////////////////////////////////
 | 
|---|
| 86 | class H2WinArg : public PIWindow {
 | 
|---|
| 87 | public :
 | 
|---|
| 88 |   H2WinArg(PIMsgHandler* par);
 | 
|---|
| 89 |   ~H2WinArg();
 | 
|---|
| 90 | 
 | 
|---|
| 91 |   static void ShowPIHisto2DTools();
 | 
|---|
| 92 |   static void ShowPIHisto2DTools(PIBaseWdgGen* cbw);
 | 
|---|
| 93 |   static void HidePIHisto2DTools();
 | 
|---|
| 94 |   static void SetCurrentBaseWdg(PIBaseWdgGen* cbw);
 | 
|---|
| 95 |   static void SetCurrentPIHisto2D(PIHisto2D* h2ddrw);
 | 
|---|
| 96 | 
 | 
|---|
| 97 |   static PIBaseWdgGen* GetCurrentBaseWdg();
 | 
|---|
| 98 |   static PIHisto2D* GetCurrentPIHisto2D();
 | 
|---|
| 99 | 
 | 
|---|
| 100 |   void SetText();
 | 
|---|
| 101 | 
 | 
|---|
| 102 |   virtual void Show();
 | 
|---|
| 103 |   virtual void Process(PIMessage msg,PIMsgHandler* sender,void* data=NULL);
 | 
|---|
| 104 | 
 | 
|---|
| 105 | protected:
 | 
|---|
| 106 |   static PIBaseWdgGen * mBWdg;
 | 
|---|
| 107 |   static PIHisto2D*  mH2DDrw;
 | 
|---|
| 108 | 
 | 
|---|
| 109 |   PIOptMenu * mOPop[3];
 | 
|---|
| 110 |   PIMenu    * mCasc[3];
 | 
|---|
| 111 |   PIButton  * mBut[4];
 | 
|---|
| 112 |   PILabel   * mLab[4];
 | 
|---|
| 113 |   PIText    * mText[3];
 | 
|---|
| 114 |   PIScale   * mPScal;
 | 
|---|
| 115 |   PICheckBox* mCkb;
 | 
|---|
| 116 | 
 | 
|---|
| 117 |   bool mFgCol; CMapId mCmap; bool mRevCmap;
 | 
|---|
| 118 |   unsigned short mTypScal; float mLogScale;
 | 
|---|
| 119 |   unsigned short mTypDisp; float mFPoints;
 | 
|---|
| 120 |   float mHMin,mHMax;
 | 
|---|
| 121 |   float mFracMin,mFracMax;
 | 
|---|
| 122 | };
 | 
|---|
| 123 | 
 | 
|---|
| 124 | #endif
 | 
|---|