KaliVeda
Toolkit for HIC analysis
KVDrawable.h
1 #pragma once
2 
3 #include "TObject.h"
4 
28 template<typename Drawable>
29 class KVDrawable {
30  Drawable* fDraw = nullptr;
31 public:
33  {}
35  {}
37  {
38  d.fDraw = nullptr;
39  }
41  {
42  if (&d != this) {
43  fDraw = d.fDraw;
44  }
45  return *this;
46  }
48  {
49  if (&d != this) {
50  fDraw = d.fDraw;
51  d.fDraw = nullptr;
52  }
53  return *this;
54  }
56  {
57  return fDraw;
58  }
59  operator Drawable* () const
60  {
61  return fDraw;
62  }
64  {
65  fDraw->SetLineColor(lc);
66  return *this;
67  }
69  {
70  fDraw->SetLineStyle(lc);
71  return *this;
72  }
74  {
75  fDraw->SetLineWidth(lc);
76  return *this;
77  }
79  {
80  fDraw->SetFillColor(lc);
81  return *this;
82  }
84  {
85  fDraw->SetFillStyle(lc);
86  return *this;
87  }
89  {
90  fDraw->SetMarkerColor(lc);
91  return *this;
92  }
94  {
95  fDraw->SetMarkerStyle(lc);
96  return *this;
97  }
99  {
100  fDraw->SetMarkerSize(lc);
101  return *this;
102  }
103  ClassDef(KVDrawable, 0)
104 };
#define d(i)
#define ClassDef(name, id)
XID Drawable
Simple wrapper for objects which can be drawn (graphs, histograms)
Definition: KVDrawable.h:29
KVDrawable & LineColor(int lc)
Definition: KVDrawable.h:63
KVDrawable & operator=(const KVDrawable &d)
Definition: KVDrawable.h:40
KVDrawable & LineWidth(int lc)
Definition: KVDrawable.h:73
KVDrawable & MarkerColor(int lc)
Definition: KVDrawable.h:88
Drawable * operator->()
Definition: KVDrawable.h:55
KVDrawable & operator=(KVDrawable &&d)
Definition: KVDrawable.h:47
KVDrawable & LineStyle(int lc)
Definition: KVDrawable.h:68
KVDrawable & MarkerSize(float lc)
Definition: KVDrawable.h:98
KVDrawable & FillStyle(int lc)
Definition: KVDrawable.h:83
KVDrawable(Drawable *d)
Definition: KVDrawable.h:32
Drawable * fDraw
Definition: KVDrawable.h:30
KVDrawable(KVDrawable &&d)
Definition: KVDrawable.h:36
KVDrawable(const KVDrawable &d)
Definition: KVDrawable.h:34
KVDrawable & MarkerStyle(int lc)
Definition: KVDrawable.h:93
KVDrawable & FillColor(int lc)
Definition: KVDrawable.h:78