g4tools  5.4.0
plotter_common.icc
Go to the documentation of this file.
1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
2 // See the file tools.license for terms.
3 
4  //proxies to have less verbose user programming :
5 
6  //WARNING : the plotter must have at least 1x1 plotting area,
7  // else the below will crash because current_plotter()
8  // will return a null pointer.
9 
10  tools::sg::plots& plots() {return m_plots;}
11  const tools::sg::plots& plots() const {return m_plots;}
12 
13  void next() {m_plots.next();}
14  bool set_current_plotter(unsigned int a_index) {return m_plots.set_current_plotter(a_index);}
15 
16  void add_plottable(tools::sg::plottable* a_plottable) {
17  m_plots.current_plotter().add_plottable(a_plottable); //it takes ownership.
18  }
19 
20  tools::sg::plottable* plot(const tools::histo::h1d& a_histo) {
21  //tools::sg::plottable* p = new tools::sg::h1d2plot<tools::histo::h1d>(a_histo);
22  tools::sg::plottable* p = new tools::sg::h1d2plot(a_histo);
23  m_plots.current_plotter().add_plottable(p); //it takes ownership.
24  return p;
25  }
26 
27  tools::sg::plottable* plot(const tools::histo::h2d& a_histo) {
28  //tools::sg::plottable* p = new tools::sg::h2d2plot<tools::histo::h2d>(a_histo);
29  tools::sg::plottable* p = new tools::sg::h2d2plot(a_histo);
30  m_plots.current_plotter().add_plottable(p); //it takes ownership.
31  return p;
32  }
33 
34  tools::sg::plottable* plot(const tools::histo::p1d& a_histo) {
35  tools::sg::plottable* p = new tools::sg::p1d2plot(a_histo);
36  m_plots.current_plotter().add_plottable(p); //it takes ownership.
37  return p;
38  }
39 
40  tools::sg::plottable* plot(const tools::histo::c2d& a_cloud) {
41  tools::sg::plottable* p = new tools::sg::c2d2plot(a_cloud);
42  m_plots.current_plotter().add_plottable(p); //it takes ownership.
43  return p;
44  }
45 
46  tools::sg::plottable* plot(const tools::histo::c3d& a_cloud) {
47  tools::sg::plottable* p = new tools::sg::c3d2plot(a_cloud);
48  m_plots.current_plotter().add_plottable(p); //it takes ownership.
49  return p;
50  }
51 
52  tools::sg::plottable* plot_cp(const tools::histo::h1d& a_histo) {
53  //tools::sg::plottable* p = new tools::sg::h1d2plot_cp<tools::histo::h1d>(a_histo);
54  tools::sg::plottable* p = new tools::sg::h1d2plot_cp(a_histo);
55  m_plots.current_plotter().add_plottable(p); //it takes ownership.
56  return p;
57  }
58 
59  tools::sg::plottable* plot_cp(const tools::histo::h2d& a_histo) {
60  //tools::sg::plottable* p = new tools::sg::h2d2plot_cp<tools::histo::h2d>(a_histo);
61  tools::sg::plottable* p = new tools::sg::h2d2plot_cp(a_histo);
62  m_plots.current_plotter().add_plottable(p); //it takes ownership.
63  return p;
64  }
65 
66  tools::sg::plottable* plot_cp(const tools::histo::p1d& a_histo) {
67  tools::sg::plottable* p = new tools::sg::p1d2plot_cp(a_histo);
68  m_plots.current_plotter().add_plottable(p); //it takes ownership.
69  return p;
70  }
71 
72 
73  //tools::sg::plottable* plot(const tools::histo::p2d& a_histo) {
74  // tools::sg::plottable* p = new tools::sg::p2d2plot(a_histo);
75  // m_plots.current_plotter().add_plottable(p); //it takes ownership.
76  // return p;
77  //}
78 
79  tools::sg::plottable* plot_cp(const tools::histo::c2d& a_cloud) {
80  tools::sg::plottable* p = new tools::sg::c2d2plot_cp(a_cloud);
81  m_plots.current_plotter().add_plottable(p); //it takes ownership.
82  return p;
83  }
84 
85  tools::sg::plottable* plot_cp(const tools::histo::c3d& a_cloud) {
86  tools::sg::plottable* p = new tools::sg::c3d2plot_cp(a_cloud);
87  m_plots.current_plotter().add_plottable(p); //it takes ownership.
88  return p;
89  }
90 
91  template <class T>
92  tools::sg::plottable* plot(const T& a_func) {
93  tools::sg::plottable* p = new tools::sg::f1d2plot<T>(a_func);
94  m_plots.current_plotter().add_plottable(p);
95  return p;
96  }
97 
98  template <class T>
99  tools::sg::plottable* plot(const std::vector<T>& a_xs,const std::vector<T>& a_ys) {
100  tools::sg::plottable* p = new tools::sg::xy2plot<T>(a_xs,a_ys);
101  m_plots.current_plotter().add_plottable(p);
102  return p;
103  }
104 
105  tools::sg::plottable* plot_fit(const std::vector<std::string>& a_names,const std::vector<double>& a_output) {
106  tools::sg::plottable* p = new tools::sg::fit2plot(a_names,a_output);
107  m_plots.current_plotter().add_plottable(p);
108  return p;
109  }
110