1
0
mirror of https://github.com/aportelli/LatAnalyze.git synced 2024-09-20 05:25:37 +01:00

Plot: caption modifier

This commit is contained in:
Antonin Portelli 2014-06-02 17:04:20 +02:00
parent 78372fb18a
commit a29a4bde21
2 changed files with 32 additions and 3 deletions

View File

@ -162,6 +162,17 @@ PlotPredBand::PlotPredBand(const DoubleFunctionSample &function,
/******************************************************************************
* Plot modifiers *
******************************************************************************/
// Caption constructor /////////////////////////////////////////////////////////
Caption::Caption(const string &caption)
: caption_(caption)
{}
// Caption modifier ////////////////////////////////////////////////////////////
void Caption::operator()(PlotOptions &option) const
{
option.caption = caption_;
}
// Color constructor ///////////////////////////////////////////////////////////
Color::Color(const string &color)
: color_(color)
@ -201,12 +212,12 @@ void PlotRange::operator()(PlotOptions &option) const
option.scale[a].max = max_;
}
// Title constructor ///////////////////////////////////////////////////////////
// Terminal constructor ////////////////////////////////////////////////////////
Terminal::Terminal(const string &terminal, const std::string &options)
: terminalCmd_(terminal + " " + options)
{}
// Title modifier //////////////////////////////////////////////////////////////
// Terminal modifier ///////////////////////////////////////////////////////////
void Terminal::operator()(PlotOptions &option) const
{
option.terminal = terminalCmd_;
@ -257,6 +268,7 @@ void Plot::initOptions(void)
{
options_.terminal = "";
options_.output = "";
options_.caption = "";
options_.title = "";
options_.scaleMode[0] = Plot::Scale::reset;
options_.scaleMode[1] = Plot::Scale::reset;
@ -415,6 +427,10 @@ ostream & Latan::operator<<(ostream &out, const Plot &plot)
{
out << "set output '" << plot.options_.terminal << "'" << endl;
}
if (!plot.options_.caption.empty())
{
out << "set title '" << plot.options_.caption << "'" << endl;
}
if (plot.options_.scaleMode[x] & Plot::Scale::manual)
{
out << "xMin = " << plot.options_.scale[x].min << endl;

View File

@ -117,6 +117,7 @@ struct PlotOptions
{
std::string terminal;
std::string output;
std::string caption;
std::string title;
unsigned int scaleMode[2];
Range scale[2];
@ -133,6 +134,19 @@ public:
virtual void operator()(PlotOptions &option) const = 0;
};
class Caption: public PlotModifier
{
public:
// constructor
explicit Caption(const std::string &title);
// destructor
virtual ~Caption(void) = default;
// modifier
virtual void operator()(PlotOptions &option) const;
private:
const std::string caption_;
};
class Color: public PlotModifier
{
public:
@ -186,7 +200,6 @@ private:
const std::string terminalCmd_;
};
class Title: public PlotModifier
{
public: