source: trunk/src/objects/RpHistogram.h @ 1615

Last change on this file since 1615 was 1560, checked in by dkearney, 15 years ago

updates to the object system, fixed up tree and xml parser objects, added some basic tests for them and adopted number object to accept xml text and configure itself from the parsed xml. added fermi3.cc example program which contains suggested interface from apps meeting.

File size: 2.6 KB
Line 
1/*
2 * ======================================================================
3 *  AUTHOR:  Derrick Kearney, Purdue University
4 *  Copyright (c) 2005-2009  Purdue Research Foundation
5 *
6 *  See the file "license.terms" for information on usage and
7 *  redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
8 * ======================================================================
9 */
10#include <errno.h>
11#include "RpCurve.h"
12#include "RpChainHelper.h"
13#include "RpAxisMarker.h"
14
15#ifndef RAPPTURE_HISTOGRAM_H
16#define RAPPTURE_HISTOGRAM_H
17
18namespace Rappture {
19
20class Histogram : public Curve
21{
22    public:
23
24        Histogram();
25
26        Histogram(double *h, size_t npts);
27
28        Histogram(double *h, size_t npts, double *bins, size_t nbins);
29
30        Histogram(double *h, size_t npts, double min, double max,
31                  size_t nbins);
32
33        Histogram(double *h, size_t npts, double min, double max,
34                  double step);
35
36        Histogram(const Histogram& o);
37
38        virtual ~Histogram();
39
40        Histogram& xaxis(const char *label, const char *desc,
41                         const char *units);
42
43        Histogram& xaxis(const char *label, const char *desc,
44                         const char *units, const double *bins,
45                         size_t nBins);
46
47        Histogram& xaxis(const char *label, const char *desc,
48                         const char *units, double min, double max,
49                         size_t nBins);
50
51        Histogram& xaxis(const char *label, const char *desc,
52                         const char *units, double min, double max,
53                         double step);
54
55        Histogram& yaxis(const char *label, const char *desc,
56                         const char *units);
57
58        Histogram& yaxis(const char *label, const char *desc,
59                         const char *units, const double *vals,
60                         size_t nPts);
61
62        Histogram& binWidths(const size_t *widths, size_t nbins);
63
64        Histogram& marker(const char *axisName, double at,
65                          const char *label, const char *style);
66
67        // should be a list of groups to add this curve to?
68        Accessor <const char *> group;
69
70        static const char x[];
71        static const char y[];
72
73        size_t nbins(void) const;
74
75        const char *xml(size_t indent, size_t tabstop);
76        const int is(void) const;
77
78        friend int axisMarkerCpyFxn (void **to, void *from);
79
80    protected:
81
82        Rp_Chain *_markerList;
83
84};
85
86} // namespace Rappture
87
88/*--------------------------------------------------------------------------*/
89
90#endif // RAPPTURE_HISTOGRAM_H
Note: See TracBrowser for help on using the repository browser.