Class for colormap type plots. More...
#include <colormap.hpp>
Public Member Functions | |
Colormap () | |
Default constructor for empty colormap graph. More... | |
Colormap (const Colormap &colormap) | |
Copy constructor. More... | |
Colormap (const double datarange[4], size_t n, size_t m, const std::vector< double > &data) | |
Constructor for colormap from data. More... | |
virtual | ~Colormap () |
Destructor. More... | |
void | set_data (const double datarange[4], size_t n, size_t m, const std::vector< double > &data) |
Define colormap from data. More... | |
void | set_interpolation (interpolation_e interpolation) |
Set interpolation mode. More... | |
void | set_zscale (zscale_e zscale) |
Set zscale mode. More... | |
virtual void | plot (cairo_t *cairo, const Coordmapper *cm, const double range[4]) |
Plot graph with cairo. More... | |
virtual void | plot_sample (cairo_t *cairo, double x, double y, double width, double height) |
Plot sample for legend. More... | |
virtual void | get_bbox (double bbox[4]) |
Get bounding box of graph. More... | |
void | set_palette (const Palette &palette) |
Set colormap palette. More... | |
Palette & | palette (void) |
Get a reference to colormap palette. More... | |
void | get_zrange (double &min, double &max) const |
Get zrange for colormap plot. More... | |
void | set_zrange (double min, double max) |
Set zrange for colormap plot. More... | |
double | get_value (double x, double y) const |
Get value of interpolated colormap data. More... | |
![]() | |
virtual | ~Graph () |
Virtual destructor. More... | |
Class for colormap type plots.
Implementation of Graph. Used in Frame type plots.
Colormap::Colormap | ( | ) |
Default constructor for empty colormap graph.
Colormap::Colormap | ( | const Colormap & | colormap | ) |
Copy constructor.
Colormap::Colormap | ( | const double | datarange[4], |
size_t | n, | ||
size_t | m, | ||
const std::vector< double > & | data | ||
) |
Constructor for colormap from data.
Data is defined as n by m array of data, where x and y ranges are defined in datarange in order xmin, ymin, xmax, ymax. Z-values are defined in vector data in y major order. Internal copy of the data from data is made.
|
virtual |
Destructor.
|
virtual |
Get bounding box of graph.
Returns the bounding box of the graph in array bbox in order xmin, ymin, xmax, ymax.
Implements Graph.
Reimplemented in FieldGraph.
double Colormap::get_value | ( | double | x, |
double | y | ||
) | const |
Get value of interpolated colormap data.
void Colormap::get_zrange | ( | double & | min, |
double & | max | ||
) | const |
Get zrange for colormap plot.
|
inline |
Get a reference to colormap palette.
|
virtual |
Plot graph with cairo.
Plot the graph using cairo and coordinate mapper cm. The visible range of plot is given in array range in order xmin, ymin, xmax, ymax. The graph should be able to handle any range values. Also min > max.
Called by Frame during drawing.
Implements Graph.
Reimplemented in FieldGraph.
|
virtual |
Plot sample for legend.
Plot graph sample for legend at cairo coordinates (x,y).
Implements Graph.
Reimplemented in FieldGraph.
void Colormap::set_data | ( | const double | datarange[4], |
size_t | n, | ||
size_t | m, | ||
const std::vector< double > & | data | ||
) |
Define colormap from data.
Data is defined as n by m array of data, where x and y ranges are defined in datarange in order xmin, ymin, xmax, ymax. Z-values are defined in vector data in y major order. Internal copy of the data from data is made.
Overrides old data.
void Colormap::set_interpolation | ( | interpolation_e | interpolation | ) |
Set interpolation mode.
Can be either INTERPOLATION_CLOSEST, INTERPOLATION_BILINEAR or INTERPOLATION_BICUBIC.
void Colormap::set_palette | ( | const Palette & | palette | ) |
Set colormap palette.
void Colormap::set_zrange | ( | double | min, |
double | max | ||
) |
Set zrange for colormap plot.
The zrange defaults to automatically scaled ranging for colormap input data.
void Colormap::set_zscale | ( | zscale_e | zscale | ) |
Set zscale mode.
Set a prescaling for z-axis. Defaults to ZSCALE_LINEAR, which is a linear scaling from the z-axis to palette. Other possibilities are ZSCALE_LOG, which is a standard logarithmic scaling from z-axis to palette (providing magnification close to zero) and ZSCALE_RELLOG, which is a special relative logrithmic scaling following the relation
, where x is prescaled to range [0,1]. The z-ranges completely contained on the negative side are inverted to positive and z-ranges both on negative and positive sides are scaled separately to provide magnification close to zero.