16 #ifndef TRGCDCDisplayDrawingAreaRphi_FLAG_
17 #define TRGCDCDisplayDrawingAreaRphi_FLAG_
19 #include "trg/cdc/DisplayDrawingArea.h"
21 #ifdef TRGCDC_SHORT_NAMES
22 #define TCDDAreaRphi TRGCDCDisplayDrawingAreaRphi
34 class TRGCDCSegmentHit;
42 class TRGCDCDisplayDrawingAreaRphi :
public TRGCDCDisplayDrawingArea {
47 TRGCDCDisplayDrawingAreaRphi(TRGCDCDisplay&,
53 virtual ~TRGCDCDisplayDrawingAreaRphi();
56 double scale(
void)
const;
57 void resetPosition(
void)
override;
58 bool axial(
void)
const;
60 bool stereo(
void)
const;
62 bool wireName(
void)
const;
64 bool oldCDC(
void)
const;
67 void clear(
void)
override;
70 void append(
const std::vector<const TRGCDCWire*>&,
71 Gdk::Color color = Gdk::Color(
"grey"));
72 void append(
const std::vector<const TRGCDCWireHit*>&,
73 Gdk::Color color = Gdk::Color(
"grey"));
74 void append(
const TRGCDCSegment&,
75 Gdk::Color color = Gdk::Color(
"#6600FF009900"));
76 void append(
const std::vector<const TRGCDCSegment*>&,
77 Gdk::Color color = Gdk::Color(
"#6600FF009900"));
78 void append(
const std::vector<const TRGCDCSegmentHit*>&,
79 Gdk::Color color = Gdk::Color(
"#6600FF009900"));
80 void append(
const TRGCDCCircle&,
81 Gdk::Color color = Gdk::Color(
"#FF0066009900"));
82 void append(
const std::vector<const TRGCDCCircle*>&,
83 Gdk::Color color = Gdk::Color(
"#FF0066009900"));
84 void append(
const TRGCDCTrack&,
85 Gdk::Color color = Gdk::Color(
"#99006600FF00"));
86 void append(
const std::vector<const TRGCDCTrack*>&,
87 Gdk::Color color = Gdk::Color(
"#99006600FF00"));
88 void append(
const TRGCDCFrontEnd&,
89 Gdk::Color color = Gdk::Color(
"grey"));
90 void append(
const TRGCDCMerger&,
91 Gdk::Color color = Gdk::Color(
"grey"));
94 void oneShot(
const std::vector<const TRGCDCSegment*>&,
95 Gdk::Color color = Gdk::Color(
"#6600FF009900"));
97 virtual bool on_expose_event(GdkEventExpose*)
override;
98 virtual bool on_button_press_event(GdkEventButton*)
override;
101 virtual void on_realize()
override;
104 void drawWires(
void);
106 void drawSegmentHits(
void);
108 void drawWire(
const TRGCDCWire& w,
112 void drawSegment(
const TRGCDCSegment& w,
116 void drawCircle(
const TRGCDCCircle& w,
120 void drawTrack(
const TRGCDCTrack& w,
124 void drawFrontEnd(
const TRGCDCFrontEnd& w,
128 void drawMerger(
const TRGCDCMerger& w,
134 int x(
double x)
const;
135 int y(
double y)
const;
136 int xR(
double x)
const;
137 int yR(
double y)
const;
149 std::vector<const TRGCDCWire*> _wires;
150 std::vector<Gdk::Color> _wiresColor;
152 std::vector<const TRGCDCWireHit*> _hits;
153 std::vector<Gdk::Color> _hitsColor;
155 std::vector<const TRGCDCSegment*> _segments;
156 std::vector<Gdk::Color> _segmentsColor;
158 std::vector<const TRGCDCSegmentHit*> _segmentHits;
159 std::vector<Gdk::Color> _segmentHitsColor;
161 std::vector<const TRGCDCCircle*> _circles;
162 std::vector<Gdk::Color> _circlesColor;
164 std::vector<const TRGCDCTrack*> _tracks;
165 std::vector<Gdk::Color> _tracksColor;
167 std::vector<const TRGCDCFrontEnd*> _fronts;
168 std::vector<Gdk::Color> _frontColors;
170 std::vector<const TRGCDCMerger*> _mergers;
171 std::vector<Gdk::Color> _mergerColors;
173 Glib::RefPtr<Gdk::Window> _window;
174 int _winx, _winy, _winw, _winh, _wind;
176 Glib::RefPtr<Gdk::GC> _gc;
177 Gdk::Color _blue, _red, _green, _black, _white, _grey, _yellow, _grey0;
179 Glib::RefPtr<Pango::Layout> _pl;
186 TRGCDCDisplayDrawingAreaRphi::scale(
double a)
193 TRGCDCDisplayDrawingAreaRphi::scale(
void)
const
200 TRGCDCDisplayDrawingAreaRphi::axial(
void)
const
207 TRGCDCDisplayDrawingAreaRphi::axial(
bool a)
214 TRGCDCDisplayDrawingAreaRphi::stereo(
void)
const
221 TRGCDCDisplayDrawingAreaRphi::stereo(
bool a)
228 TRGCDCDisplayDrawingAreaRphi::wireName(
void)
const
235 TRGCDCDisplayDrawingAreaRphi::wireName(
bool a)
237 return _wireName = a;
242 TRGCDCDisplayDrawingAreaRphi::oldCDC(
void)
const
249 TRGCDCDisplayDrawingAreaRphi::oldCDC(
bool a)
256 TRGCDCDisplayDrawingAreaRphi::x(
double a)
const
260 return int((a - _x) * _scale + _winw / 2);
265 TRGCDCDisplayDrawingAreaRphi::y(
double a)
const
267 return int((- a - _y) * _scale + _winh / 2);
272 TRGCDCDisplayDrawingAreaRphi::xR(
double a)
const
274 return int((a - _winw / 2) / _scale + _x);
279 TRGCDCDisplayDrawingAreaRphi::yR(
double a)
const
281 return int((- a - _winh / 2) / _scale + _y);
287 #endif // TRGCDCDisplayDrawingAreaRphi_FLAG_