mirror of
https://github.com/dankamongmen/notcurses.git
synced 2024-10-31 15:20:13 +00:00
c++ wrappers for ncplot #441
This commit is contained in:
parent
312d15d0f9
commit
9dc81f0b64
67
include/ncpp/Plot.hh
Normal file
67
include/ncpp/Plot.hh
Normal file
@ -0,0 +1,67 @@
|
||||
#ifndef __NCPP_PLOT_HH
|
||||
#define __NCPP_PLOT_HH
|
||||
|
||||
#include <notcurses/notcurses.h>
|
||||
|
||||
#include "Root.hh"
|
||||
#include "NCAlign.hh"
|
||||
|
||||
namespace ncpp
|
||||
{
|
||||
class Plane;
|
||||
|
||||
class NCPP_API_EXPORT Plot : public Root
|
||||
{
|
||||
public:
|
||||
static plot_options default_options;
|
||||
|
||||
public:
|
||||
explicit Plot (Plane *plane, const plot_options *opts = nullptr)
|
||||
: Plot (reinterpret_cast<ncplane*>(plane), opts)
|
||||
{}
|
||||
|
||||
explicit Plot (Plane const* plane, const plot_options *opts = nullptr)
|
||||
: Plot (const_cast<Plane*>(plane), opts)
|
||||
{}
|
||||
|
||||
explicit Plot (Plane &plane, const plot_options *opts = nullptr)
|
||||
: Plot (reinterpret_cast<ncplane*>(&plane), opts)
|
||||
{}
|
||||
|
||||
explicit Plot (Plane const& plane, const plot_options *opts = nullptr)
|
||||
: Plot (const_cast<Plane*>(&plane), opts)
|
||||
{}
|
||||
|
||||
explicit Plot (ncplane *plane, const plot_options *opts = nullptr)
|
||||
{
|
||||
if (plane == nullptr)
|
||||
throw invalid_argument ("'plane' must be a valid pointer");
|
||||
|
||||
plot = ncplot_create (plane, opts == nullptr ? &default_options : opts);
|
||||
if (plot == nullptr)
|
||||
throw init_error ("notcurses failed to create a new plot");
|
||||
}
|
||||
|
||||
~Plot ()
|
||||
{
|
||||
if (!is_notcurses_stopped ())
|
||||
ncplot_destroy (plot);
|
||||
}
|
||||
|
||||
int add_sample(uint64_t x, int64_t y)
|
||||
{
|
||||
return ncplot_add_sample (plot, x, y) >= 0;
|
||||
}
|
||||
|
||||
int set_sample(uint64_t x, int64_t y)
|
||||
{
|
||||
return ncplot_set_sample (plot, x, y) >= 0;
|
||||
}
|
||||
|
||||
Plane* get_plane () const noexcept;
|
||||
|
||||
private:
|
||||
ncplot *plot;
|
||||
};
|
||||
}
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user