1 | // This may look like C code, but it is really -*- C++ -*-
|
---|
2 | // Classe GNUPlotContour : interface avec le code de gnuplot pour tracer les contours
|
---|
3 | // Classe PIContourDrawer : trace des contours ds PI
|
---|
4 | // (c) DAPNIA (CEA) LAL (IN2P3/CNRS)
|
---|
5 | // R. Ansari O.Perdereau 11/2001
|
---|
6 | //=========================================================//
|
---|
7 |
|
---|
8 | #ifndef PIGNCONT_H_SEEN
|
---|
9 | #define PIGNCONT_H_SEEN
|
---|
10 | #include "pistdimgapp.h"
|
---|
11 | #include "piscdrawwdg.h"
|
---|
12 |
|
---|
13 | #include "ntuple.h"
|
---|
14 | extern "C" {
|
---|
15 | #include "gp_contour.h"
|
---|
16 | #include "gp_alloc.h"
|
---|
17 | //#include "gpc_set.h"
|
---|
18 | }
|
---|
19 |
|
---|
20 | class GNUPlotContour{
|
---|
21 | public:
|
---|
22 | GNUPlotContour(P2DArrayAdapter*,int *nz,double *z0,double *dz);
|
---|
23 | GNUPlotContour(NTupleInterface *nt,int *nz,double *z0,double *dz);
|
---|
24 | GNUPlotContour(struct iso_curve *);
|
---|
25 | ~GNUPlotContour();
|
---|
26 | void CalcContour();
|
---|
27 | double Level(int i){return My_Levels[i];};
|
---|
28 | const double *Levels(){return My_Levels;};
|
---|
29 | void SetMyLevels(double *ptr,int k);
|
---|
30 | int NLevels(){return Contour_Levels;};
|
---|
31 | void SetNLevel(int n){Contour_Levels=n;};
|
---|
32 | int NContours(){return _npolys;};
|
---|
33 | void SetCntLevelKind(t_contour_levels_kind kind){Contour_Levels_kind = kind;};
|
---|
34 | t_contour_levels_kind GetCntLevelKind(){return Contour_Levels_kind ;};
|
---|
35 | void SetCntKind(t_contour_kind kind){Contour_kind = kind;};
|
---|
36 | t_contour_kind GetCntKind(){return Contour_kind ;};
|
---|
37 |
|
---|
38 | NTuple * & MyIso(){return _myiso;};
|
---|
39 |
|
---|
40 | double Xmin(){return _xmin;};
|
---|
41 | double Xmax(){return _xmax;};
|
---|
42 | double Ymin(){return _ymin;};
|
---|
43 | double Ymax(){return _ymax;};
|
---|
44 | double Zmin(){return _zmin;};
|
---|
45 | double Zmax(){return _zmax;};
|
---|
46 |
|
---|
47 | private:
|
---|
48 |
|
---|
49 | protected:
|
---|
50 | NTuple * _myiso;
|
---|
51 | int _nx,_ny;
|
---|
52 | struct iso_curve *iso1 ;
|
---|
53 | bool _Invx,_Invy,_Exy;
|
---|
54 | double _Dxp, _Dyp;
|
---|
55 | struct gnuplot_contours *_contours;
|
---|
56 | int Contour_Levels;
|
---|
57 |
|
---|
58 | double *My_Levels;
|
---|
59 |
|
---|
60 | double _xmin,_xmax,_ymin,_ymax,_zmin,_zmax;
|
---|
61 | int _npolys;
|
---|
62 | t_contour_levels_kind Contour_Levels_kind;
|
---|
63 | t_contour_kind Contour_kind;
|
---|
64 |
|
---|
65 |
|
---|
66 | };
|
---|
67 |
|
---|
68 | class PIContourDrawer : public PIDrawer, public GNUPlotContour{
|
---|
69 | public:
|
---|
70 | PIContourDrawer(P2DArrayAdapter* arr,bool autodel ,int *nz=NULL,double *z0=NULL,double *dz=NULL);
|
---|
71 | PIContourDrawer(NTupleInterface* nti,bool autodel ,int *nz=NULL,double *z0=NULL,double *dz=NULL);
|
---|
72 | virtual ~PIContourDrawer();
|
---|
73 | virtual void Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax);
|
---|
74 | virtual void UpdateLimits();
|
---|
75 | virtual bool IsLineOn();
|
---|
76 | virtual bool IsMarkOn();
|
---|
77 | virtual bool IsLabelOn();
|
---|
78 | virtual void SetLineOn(bool );
|
---|
79 | virtual void SetMarkOn(bool);
|
---|
80 | virtual void SetLabelOn(bool);
|
---|
81 |
|
---|
82 | //Init attributs graphiques
|
---|
83 |
|
---|
84 | void InitAtts();
|
---|
85 |
|
---|
86 |
|
---|
87 | // Methode permettant l'affichage d'une fenetre de controle specialisee
|
---|
88 | virtual void ShowControlWindow(PIBaseWdgGen* wdg);
|
---|
89 |
|
---|
90 |
|
---|
91 | protected:
|
---|
92 | bool _autodel;
|
---|
93 | int _nz;
|
---|
94 | P2DArrayAdapter* _arr;
|
---|
95 | NTupleInterface* _nti;
|
---|
96 | bool mLineOn,mMarkOn,mLabelOn;
|
---|
97 |
|
---|
98 |
|
---|
99 |
|
---|
100 |
|
---|
101 | };
|
---|
102 |
|
---|
103 |
|
---|
104 | //
|
---|
105 |
|
---|
106 | #endif
|
---|