// -*- c++ -*- #pragma once #include #include #include #include #include class Plot { public: Plot(const std::string& title) : title(title) {} const std::string& getTitle() const; void add(const std::pair& point); void add(double y); void setX(double x); friend const Plot& operator<<(std::ostream& out, const Plot& plot); private: std::vector> data; std::string title; double x{}; }; class Octave { public: Octave(const std::string& file); ~Octave(); Plot& add(const std::string& title); void setAxis(const std::string& x_axis, const std::string& y_axis); private: std::deque plots; std::ofstream out; std::string x_axis; std::string y_axis; std::string file; };