axes.h
Go to the documentation of this file.
1 
8 #pragma once
9 #include <string>
11 
12 namespace illumina { namespace interop { namespace model { namespace plot {
13 
16  class axis
17  {
18  public:
20  axis() : m_min(0), m_max(0){}
21  public:
27  void set_range(const float vmin, const float vmax)
28  {
29  m_min = vmin;
30  m_max = vmax;
31  }
36  void set_label(const std::string& label)
37  {
38  m_label = label;
39  }
42  void clear()
43  {
44  m_min = 0.0f;
45  m_max = 0.0f;
46  m_label = "";
47  }
48 
49  public:
62  const std::string& label()const
63  {
64  return m_label;
65  }
70  float min()const
71  {
72  return m_min;
73  }
78  float max()const
79  {
80  return m_max;
81  }
84  public:
85  friend std::ostream& operator<<(std::ostream& out, const axis& data)
86  {
87  std::ios::fmtflags previous_state( out.flags() );
88  out << std::setprecision(10) << data.m_min << "," << data.m_max << ",";
89  out << data.m_label << ",";
90  out.flags(previous_state);
91  return out;
92  }
93  friend std::istream& operator>>(std::istream& in, axis& data)
94  {
95  std::string tmp;
96  std::getline(in, tmp, ',');
97  data.m_min = util::lexical_cast<float>(tmp);
98  std::getline(in, tmp, ',');
99  data.m_max = util::lexical_cast<float>(tmp);
100  std::getline(in, data.m_label, ',');
101  return in;
102  }
103 
104  private:
105  float m_min;
106  float m_max;
107  std::string m_label;
108  };
111  class axes
112  {
113  public:
121  void set_range(const float xmin, const float xmax, const float ymin, const float ymax)
122  {
123  set_xrange(xmin, xmax);
124  set_yrange(ymin, ymax);
125  }
131  void set_xrange(const float vmin, const float vmax)
132  {
133  m_x.set_range(vmin, vmax);
134  }
140  void set_yrange(const float vmin, const float vmax)
141  {
142  m_y.set_range(vmin, vmax);
143  }
148  void set_xlabel(const std::string& label)
149  {
150  m_x.set_label(label);
151  }
156  void set_ylabel(const std::string& label)
157  {
158  m_y.set_label(label);
159  }
164  void set_xaxis(const axis& xaxes)
165  {
166  m_x = xaxes;
167  }
172  void set_yaxis(const axis& yaxes)
173  {
174  m_y = yaxes;
175  }
178  void clear()
179  {
180  m_x.clear();
181  m_y.clear();
182  }
183 
184  public:
197  const std::string& xlabel()const
198  {
199  return m_x.label();
200  }
205  const std::string& ylabel()const
206  {
207  return m_y.label();
208  }
213  const axis& x()const
214  {
215  return m_x;
216  }
221  const axis& y()const
222  {
223  return m_y;
224  }
227  public:
228 
229  friend std::ostream& operator<<(std::ostream& out, const axes& data)
230  {
231  out << data.m_x;
232  out << data.m_y;
233  return out;
234  }
235  friend std::istream& operator>>(std::istream& in, axes& data)
236  {
237  in >> data.m_x;
238  in >> data.m_y;
239  return in;
240  }
241 
242  private:
243  axis m_x;
244  axis m_y;
245  };
246 
247 }}}}
248 
Definition: enum_description.h:15
void set_ylabel(const std::string &label)
Definition: axes.h:156
const axis & y() const
Definition: axes.h:221
const axis & x() const
Definition: axes.h:213
const std::string & label() const
Definition: axes.h:62
const std::string & xlabel() const
Definition: axes.h:197
void set_label(const std::string &label)
Definition: axes.h:36
void set_yaxis(const axis &yaxes)
Definition: axes.h:172
void set_xrange(const float vmin, const float vmax)
Definition: axes.h:131
void set_range(const float vmin, const float vmax)
Definition: axes.h:27
const std::string & ylabel() const
Definition: axes.h:205
void set_range(const float xmin, const float xmax, const float ymin, const float ymax)
Definition: axes.h:121
float min() const
Definition: axes.h:70
void clear()
Definition: axes.h:178
friend std::ostream & operator<<(std::ostream &out, const axes &data)
Definition: axes.h:229
friend std::ostream & operator<<(std::ostream &out, const axis &data)
Definition: axes.h:85
void set_yrange(const float vmin, const float vmax)
Definition: axes.h:140
friend std::istream & operator>>(std::istream &in, axes &data)
Definition: axes.h:235
Destination lexical_cast(const Source &src)
Definition: lexical_cast.h:264
void set_xaxis(const axis &xaxes)
Definition: axes.h:164
void clear()
Definition: axes.h:42
friend std::istream & operator>>(std::istream &in, axis &data)
Definition: axes.h:93
void set_xlabel(const std::string &label)
Definition: axes.h:148
float max() const
Definition: axes.h:78