return atan2(this->_e.y() - this->_b.y(), this->_e.x() - this->_b.x());
}
+void
+Line::gen_gnuplot_to(std::ostream& out)
+{
+ this->b().gen_gnuplot_to(out);
+ this->e().gen_gnuplot_to(out);
+ out << std::endl;
+}
+
std::ostream&
operator<<(std::ostream& out, Line const& li)
{
return sqrt(mtrw2 + dr2);
}
+double
+CarSize::imradi() const
+{
+ auto mtrw2 = pow(this->mtr() - this->wwm() / 2.0, 2.0);
+ auto df2 = pow(this->wb(), 2.0);
+ return sqrt(mtrw2 + df2);
+}
+
+double
+CarSize::omradi() const
+{
+ auto mtrw2 = pow(this->mtr() + this->wwm() / 2.0, 2.0);
+ auto df2 = pow(this->wb(), 2.0);
+ return sqrt(mtrw2 + df2);
+}
+
double
CarSize::perfect_parking_slot_len() const
{
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;
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.CRA_POINT || opts.CAR_POINT) {
+ Point::gen_gnuplot_to(out);
+ }
+ if (opts.LRA_POINT) {
+ this->lra().gen_gnuplot_to(out);
+ }
+ if (opts.RRA_POINT) {
+ this->rra().gen_gnuplot_to(out);
+ }
if (opts.LEFT) {
this->lf().gen_gnuplot_to(out);
this->lr().gen_gnuplot_to(out);