Program Listing for File InputAxis.h#
↰ Return to documentation for file (src/main/cpp/lib/InputAxis.h)
#ifndef INPUTAXIS_H_
#define INPUTAXIS_H_
#include "Scale.h"
#include "DataSet.h"
#include "Configuration.h"
#include "Coordinates.h"
class InputAxis
{
public:
class Histogram
{
private:
DefVariable m_variable;
std::size_t m_num_intervals;
std::vector<double> m_frequencies;
public:
Histogram (DefVariable var);
void
calculate (const std::vector<double> & data);
double
get_section_frequency (std::size_t i) const;
inline std::size_t
get_num_intervals (void) const
{
return m_num_intervals;
}
inline void
set_num_intervals (std::size_t num_intervals)
{
m_num_intervals = num_intervals;
m_frequencies.clear ();
for (std::size_t i = 0; i < m_num_intervals; ++i)
m_frequencies.push_back (0);
}
};
private:
DefVariable m_variable;
SimpleScale m_scale;
Angle m_start, m_end;
double m_radius;
double m_height;
/* Style defining how the InputAxis is drawn */
DrawerProperties<> m_prop;
/* The histogram describing the frequencies of the intervals */
Histogram m_histogram;
public:
InputAxis (DefVariable variable, const Angle& start, const Angle& end,
double radius, double height, const DrawerProperties<>& prop);
const DefVariable&
get_var () const
{
return m_variable;
}
const Histogram&
get_histogram () const
{
return m_histogram;
}
const Angle&
get_start () const
{
return m_start;
}
void
set_start (const Angle& start)
{
m_start = start;
}
const Angle&
get_end () const
{
return m_end;
}
void
set_end (const Angle& end)
{
m_end = end;
}
double
get_radius () const
{
return m_radius;
}
void
set_radius (double radius)
{
m_radius = radius;
}
double
get_height () const
{
return m_height;
}
void
set_height (double height)
{
m_height = height;
}
const DrawerProperties<>&
get_prop () const
{
return m_prop;
}
void
set_prop (const DrawerProperties<>& prop)
{
m_prop = prop;
}
const SimpleScale&
get_scale () const
{
return m_scale;
}
Label
make_label (const TextProperties& prop) const
{
return Label (m_variable.name, prop);
}
void
calculate_histogram (const std::vector<double>& data);
};
#endif /* INPUTAXIS_H_ */