JG ROOT Tools libraries  version 5.0 - august 2014
RGContourEdit.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file RGContourEdit.hh
3  *
4  * Include file for class RGContourEdit
5  */
6 //======================================================================
7 
8 #ifndef RG_CONTOUR_EDIT_HH
9 #define RG_CONTOUR_EDIT_HH
10 
11 #include "RGGetPoints.hh"
12 #include "RContour.hh"
13 #include <TGComboBox.h>
14 #include <TEllipse.h>
15 
16 //======================================================================
17 /*! class RGContourEdit
18  *
19  * Class to define a contour from a points in a pad.
20  *
21  * Additional options with respect to RGGetPoints:
22  * - \b CCOL: specific markers color (centre,...)
23  * - \b CSTY: specific markers style (centre,...)
24  * - \b CSIZ: specific markers size (centre,...)
25  */
26 class RGContourEdit : public RGGetPoints
27 {
28  //------------------------------------------------------------
29  /*! \object_doc{RGContourEdit} */
31  //------------------------------------------------------------
32 
33  ///! Definition of specific request options
34  enum RGFlags
35  {
36  noGate = 0x00010000, ///< Bit indiquant qu'on ne traite pas les contours gate
37  no1D = 0x000F0000, ///< Bit indiquant qu'on ne traite pas les contours 1D
38 
39  noPolygon = 0x00100000, ///< Bit indiquant qu'on ne traite pas les contours polygone
40  noEllipse = 0x00200000, ///< Bit indiquant qu'on ne traite pas les contours ellipse
41  noCircle = 0x00400000, ///< Bit indiquant qu'on ne traite pas les contours cercle
42  no2D = 0x00F00000, ///< Bit indiquant qu'on ne traite pas les contours 2D
43 
44  onlyGate = 0x00FE0000, ///< Bit indiquant qu'on ne traite que les contours gate
45  onlyPolygon = 0x00EF0000, ///< Bit indiquant qu'on ne traite que les contours polygone
46  onlyEllipse = 0x00DF0000, ///< Bit indiquant qu'on ne traite que les contours ellipse
47  onlyCircle = 0x00BF0000, ///< Bit indiquant qu'on ne traite que les contours cercle
48 
49  noGateFlip = 0x01000000 ///< Bit indiquant qu'on n'autorise pas les changement d'orientation
50  };
51 
52 #ifndef __MAKECINT__
53  ///! Definition of user bits for RContour objects
55  {
56  contourNothing = 0x00000000, ///< Aucun bit utilisateur
57  contourDisplay = 0x00000001, ///< Indique si un contour est affichéñ
58  contourEdited = 0x00000002 ///< Indique si un contour est éditéObjAŽ
59  };
60 #endif
61 
62  ///! Points list iterator local definition (from RGGetPoints class)
63  typedef GListIterT<RPointMark> iterator;
64 
65 
66  protected:
67  RContour * contour_ptr; ///< Pointer to defined contour (output)
68  RContour contour; ///< Contour object being edited
69 
70  TAttMarker c_att; ///< Specific markers attributes (center,...)
71 
72  // widgets
73  TGGroupFrame * w_gc_contour_group; ///< Cadre des information sur le contour
74  TGHorizontalFrame * w_gc_name_hframe; ///< Ligne widgets de nom
75  TGTextEntry * w_gc_name_text; ///< Nom du contour contour
76  TGHorizontalFrame * w_gc_type_hframe; ///< Ligne widgets de type
77  TGComboBox * w_gc_type_select; ///< Choix du type de contour
78  TGVerticalFrame * w_gc_data_vframe; ///< Cadre des données
79  TGHorizontalFrame * w_gc_ellipse_hframe; ///< Ligne des données: cas d'une ellipse
80  TGNumberEntryField * w_gc_ellipse_center_x; ///< Position X du centre
81  TGNumberEntryField * w_gc_ellipse_center_y; ///< Position Y du centre
82  TGNumberEntryField * w_gc_ellipse_radius_a; ///< Rayon principal
83  TGNumberEntryField * w_gc_ellipse_radius_b; ///< Rayon principal
84  TGNumberEntryField * w_gc_ellipse_angle; ///< Angle
85  TGHorizontalFrame * w_gc_circle_hframe; ///< Ligne des données: cas d'un cercle
86  TGNumberEntryField * w_gc_circle_center_x; ///< Position X du centre
87  TGNumberEntryField * w_gc_circle_center_y; ///< Position Y du centre
88  TGNumberEntryField * w_gc_circle_radius; ///< Rayon
89  TGHorizontalFrame * w_gc_gate_hframe; ///< Ligne des données: cas d'une gate
90  TGTextButton * w_gc_gate_center; ///< Recentre le contour
91  TGTextButton * w_gc_gate_flip_hv; ///< Modifie la position horizontal-verticale
92 
93  //------------------------------------------------------------
94  // Constructors / affectation / destructor
95  public:
96 
97  // Constructeur avec retour du contour
98  RGContourEdit ( const TGWindow * main,
99  TVirtualPad * pad,
100  const char * title,
101  RContour & ctr,
102  const string & options = "",
103  const u_int flags = 0,
104  const bool auto_start = true );
105 
106  // Constructeur sans retour de contour
107  RGContourEdit ( const TGWindow * main,
108  TVirtualPad * pad,
109  const char * title,
110  const string & options = "",
111  const u_int flags = 0,
112  const bool auto_start = false );
113 
114  private:
115  // Constructeur de recopie
116  RGContourEdit ( const RGContourEdit & obj );
117 
118  public:
119  // Destructeur
120  virtual ~RGContourEdit();
121 
122 
123  //------------------------------------------------------------
124  // FUNCTIONS
125  public:
126  virtual void Construct ( );
127  virtual void InfoWidgetMap ( );
128  virtual void Request ( );
129 
130  // définition des options
131  virtual void SetOptions ( const string &opts = "" );
132 
133  //------------------------------------------------------------
134  protected:
135  virtual void SetContourPoints ( );
136  virtual void SetContourType ( const Int_t type );
137  virtual void UpdateContourType ( );
138  virtual void UpdateContourInfo ( );
139 
140  // Mise à jour des attibuts d'un point
141  virtual void UpdatePointAttr ( RPointMark *p );
142 
143  // Déplacement d'un point
144  virtual void MovePoint ( RPointMark *p, const Double_t x, const Double_t y );
145 
146  // Retrace les points saisis
147  virtual void DrawAssociatedObject ( );
148 
149  virtual bool ContourEditCheck ( );
150  virtual void UpdateContour ( );
151 
152 
153  //------------------------------------------------------------
154  // WIDGETS FUNCTIONS
155  public:
156 
157  virtual void ContourTypeSelection ( Int_t id );
158 
159  virtual void DoneButton ( );
160 
161  virtual void ContourNameChanged ( const char *str );
162 
163  virtual void GateCenterButton ( );
164  virtual void GateFlipHVButton ( );
165 
166  //------------------------------------------------------------
167  /*! For ROOT dictionary.*/
169 };
170 
171 //======================================================================
172 #endif
Bit indiquant qu&#39;on ne traite pas les contours 2D.
Definition: RGContourEdit.hh:42
TGHorizontalFrame * w_gc_gate_hframe
Ligne des données: cas d&#39;une gate.
Definition: RGContourEdit.hh:89
virtual void GateFlipHVButton()
Definition: RGContourEdit.cpp:1344
virtual void DoneButton()
Definition: RGContourEdit.cpp:1321
Definition: RGContourEdit.hh:26
TGHorizontalFrame * w_gc_ellipse_hframe
Ligne des données: cas d&#39;une ellipse.
Definition: RGContourEdit.hh:79
Bit indiquant qu&#39;on ne traite que les contours gate.
Definition: RGContourEdit.hh:44
GListIterT< RPointMark > iterator
! Points list iterator local definition (from RGGetPoints class)
Definition: RGContourEdit.hh:63
TGNumberEntryField * w_gc_ellipse_center_x
Position X du centre.
Definition: RGContourEdit.hh:80
TGHorizontalFrame * w_gc_type_hframe
Ligne widgets de type.
Definition: RGContourEdit.hh:76
virtual void UpdatePointAttr(RPointMark *p)
Definition: RGContourEdit.cpp:956
virtual ~RGContourEdit()
Definition: RGContourEdit.cpp:105
virtual void Construct()
Definition: RGContourEdit.cpp:114
TGNumberEntryField * w_gc_ellipse_angle
Angle.
Definition: RGContourEdit.hh:84
virtual void Request()
Definition: RGContourEdit.cpp:618
Bit indiquant qu&#39;on ne traite que les contours cercle.
Definition: RGContourEdit.hh:47
TGNumberEntryField * w_gc_ellipse_center_y
Position Y du centre.
Definition: RGContourEdit.hh:81
virtual void SetOptions(const string &opts="")
Definition: RGContourEdit.cpp:703
TGTextButton * w_gc_gate_flip_hv
Modifie la position horizontal-verticale.
Definition: RGContourEdit.hh:91
RGContourEdit(const TGWindow *main, TVirtualPad *pad, const char *title, RContour &ctr, const string &options="", const u_int flags=0, const bool auto_start=true)
Definition: RGContourEdit.cpp:26
virtual void ContourNameChanged(const char *str)
Definition: RGContourEdit.cpp:1306
ContourUserBits
! Definition of user bits for RContour objects
Definition: RGContourEdit.hh:54
TGTextEntry * w_gc_name_text
Nom du contour contour.
Definition: RGContourEdit.hh:75
Bit indiquant qu&#39;on ne traite pas les contours cercle.
Definition: RGContourEdit.hh:41
ROptionString options
Options.
Definition: RGGetPoints.hh:163
virtual void DrawAssociatedObject()
Definition: RGContourEdit.cpp:1044
virtual void MovePoint(RPointMark *p, const Double_t x, const Double_t y)
Definition: RGContourEdit.cpp:1004
TGHorizontalFrame * w_gc_name_hframe
Ligne widgets de nom.
Definition: RGContourEdit.hh:74
RContour * contour_ptr
Pointer to defined contour (output)
Definition: RGContourEdit.hh:67
Definition: RGGetPoints.hh:74
TGVerticalFrame * w_gc_data_vframe
Cadre des données
Definition: RGContourEdit.hh:78
virtual void SetContourPoints()
Definition: RGContourEdit.cpp:735
Indique si un contour est affiché
Definition: RGContourEdit.hh:57
Definition: RPointMark.hh:29
TGNumberEntryField * w_gc_ellipse_radius_b
Rayon principal.
Definition: RGContourEdit.hh:83
TGNumberEntryField * w_gc_ellipse_radius_a
Rayon principal.
Definition: RGContourEdit.hh:82
Bit indiquant qu&#39;on ne traite pas les contours 1D.
Definition: RGContourEdit.hh:37
Bit indiquant qu&#39;on n&#39;autorise pas les changement d&#39;orientation.
Definition: RGContourEdit.hh:49
ClassDef(RGContourEdit, 0)
GObject(RGContourEdit)
Indique si un contour est édité
Definition: RGContourEdit.hh:58
Bit indiquant qu&#39;on ne traite que les contours ellipse.
Definition: RGContourEdit.hh:46
virtual void SetContourType(const Int_t type)
Definition: RGContourEdit.cpp:807
TGNumberEntryField * w_gc_circle_radius
Rayon.
Definition: RGContourEdit.hh:88
Bit indiquant qu&#39;on ne traite pas les contours gate.
Definition: RGContourEdit.hh:36
virtual bool ContourEditCheck()
Definition: RGContourEdit.cpp:1234
virtual void UpdateContourType()
Definition: RGContourEdit.cpp:840
virtual void GateCenterButton()
Definition: RGContourEdit.cpp:1335
TGNumberEntryField * w_gc_circle_center_x
Position X du centre.
Definition: RGContourEdit.hh:86
virtual void ContourTypeSelection(Int_t id)
Definition: RGContourEdit.cpp:1315
TGTextButton * w_gc_gate_center
Recentre le contour.
Definition: RGContourEdit.hh:90
TGGroupFrame * w_gc_contour_group
Cadre des information sur le contour.
Definition: RGContourEdit.hh:73
virtual void UpdateContourInfo()
Definition: RGContourEdit.cpp:905
Bit indiquant qu&#39;on ne traite pas les contours polygone.
Definition: RGContourEdit.hh:39
virtual void UpdateContour()
Definition: RGContourEdit.cpp:1255
TGNumberEntryField * w_gc_circle_center_y
Position Y du centre.
Definition: RGContourEdit.hh:87
RContour contour
Contour object being edited.
Definition: RGContourEdit.hh:68
RGFlags
! Definition of specific request options
Definition: RGContourEdit.hh:34
TGHorizontalFrame * w_gc_circle_hframe
Ligne des données: cas d&#39;un cercle.
Definition: RGContourEdit.hh:85
TGComboBox * w_gc_type_select
Choix du type de contour.
Definition: RGContourEdit.hh:77
Bit indiquant qu&#39;on ne traite pas les contours ellipse.
Definition: RGContourEdit.hh:40
TAttMarker c_att
Specific markers attributes (center,...)
Definition: RGContourEdit.hh:70
virtual void InfoWidgetMap()
Definition: RGContourEdit.cpp:557
Aucun bit utilisateur.
Definition: RGContourEdit.hh:56
Bit indiquant qu&#39;on ne traite que les contours polygone.
Definition: RGContourEdit.hh:45
Definition: RContour.hh:25