From: Jiri Vlasak Date: Wed, 19 Jan 2022 21:23:05 +0000 (+0100) Subject: Make gen plot opts non-constant, plot points X-Git-Tag: v0.9.0~3^2~6 X-Git-Url: http://rtime.felk.cvut.cz/gitweb/hubacji1/bcar.git/commitdiff_plain/ab9c047bc236bee5e8298490c6e931548a880a7d?ds=sidebyside Make gen plot opts non-constant, plot points --- diff --git a/incl/bcar.hh b/incl/bcar.hh index d6b764c..018415d 100644 --- a/incl/bcar.hh +++ b/incl/bcar.hh @@ -480,22 +480,29 @@ public: /*! Options for generating output for gnuplot. */ class GenPlotOpts { public: - static bool LEFT; - static bool RIGHT; - static bool REAR; - static bool FRONT; - static bool FRAME; - static bool ARROW; - static bool CROSS; - static bool CAR; - static bool LEFT_MIRROR; - static bool RIGHT_MIRROR; - static bool MIRRORS; - static bool ALL; + bool LF_POINT = false; + bool LR_POINT = false; + bool RR_POINT = false; + bool RF_POINT = false; + bool LFM_POINT = false; + bool RFM_POINT = false; + + bool LEFT = false; + bool RIGHT = false; + bool REAR = false; + bool FRONT = false; + bool FRAME = false; // LEFT, RIGHT, REAR, FRONT + bool ARROW = false; + bool CROSS = false; + bool CAR = false; // CROSS, ARROW, FRAME + bool LEFT_MIRROR = false; + bool RIGHT_MIRROR = false; + bool MIRRORS = false; // RIGHT_MIRROR, LEFT_MIRROR + bool ALL = true; // MIRRORS, CAR }; /*! Generate output for plotting with gnuplot. */ - void gen_gnuplot_to(std::ostream& out, GenPlotOpts const& opts); + void gen_gnuplot_to(std::ostream& out, GenPlotOpts opts); }; } // namespace bcar diff --git a/src/bcar.cc b/src/bcar.cc index 59fbb61..7200579 100644 --- a/src/bcar.cc +++ b/src/bcar.cc @@ -994,21 +994,8 @@ BicycleCar::next() this->h(this->h() + this->sp() / this->wb() * tan(this->st())); } -bool BicycleCar::GenPlotOpts::LEFT = false; -bool BicycleCar::GenPlotOpts::RIGHT = false; -bool BicycleCar::GenPlotOpts::REAR = false; -bool BicycleCar::GenPlotOpts::FRONT = false; -bool BicycleCar::GenPlotOpts::FRAME = false; // LEFT, RIGHT, REAR, FRONT -bool BicycleCar::GenPlotOpts::ARROW = false; -bool BicycleCar::GenPlotOpts::CROSS = false; -bool BicycleCar::GenPlotOpts::CAR = false; // CROSS, ARROW, FRAME -bool BicycleCar::GenPlotOpts::LEFT_MIRROR = false; -bool BicycleCar::GenPlotOpts::RIGHT_MIRROR = false; -bool BicycleCar::GenPlotOpts::MIRRORS = false; // RIGHT_MIRROR, LEFT_MIRROR -bool BicycleCar::GenPlotOpts::ALL = true; // MIRRORS, CAR - void -BicycleCar::gen_gnuplot_to(std::ostream& out, GenPlotOpts const& opts) +BicycleCar::gen_gnuplot_to(std::ostream& out, GenPlotOpts opts) { if (opts.ALL) { opts.CAR = true; @@ -1029,6 +1016,24 @@ BicycleCar::gen_gnuplot_to(std::ostream& out, GenPlotOpts const& opts) opts.REAR = true; opts.FRONT = true; } + if (opts.LF_POINT) { + this->lf().gen_gnuplot_to(out); + } + if (opts.LR_POINT) { + this->lr().gen_gnuplot_to(out); + } + if (opts.RR_POINT) { + this->rr().gen_gnuplot_to(out); + } + if (opts.RF_POINT) { + this->rf().gen_gnuplot_to(out); + } + if (opts.LFM_POINT) { + this->lfm().gen_gnuplot_to(out); + } + if (opts.RFM_POINT) { + this->rfm().gen_gnuplot_to(out); + } if (opts.LEFT) { this->lf().gen_gnuplot_to(out); this->lr().gen_gnuplot_to(out);