/*! Get frame's front side. */
Line front() const;
- /*! Get rear axle's left x coordinate. */
- double ralx() const;
+ /*! Get frame's left rear axle x coordinate. */
+ double lrax() const;
- /*! Get rear axle's left y coordinate. */
- double raly() const;
+ /*! Get frame's left rear axle y coordinate. */
+ double lray() const;
- /*! Get rear axle's right x coordinate. */
- double rarx() const;
+ /*! Get frame's right rear axle x coordinate. */
+ double rrax() const;
- /*! Get rear axle's right y coordinate. */
- double rary() const;
+ /*! Get frame's right rear axle y coordinate. */
+ double rray() const;
+
+ /*! Get frame's left rear axle point. */
+ Point lra() const;
+
+ /*! Get frame's right rear axle point. */
+ Point rra() const;
+
+ /*! Get frame's left front axle x coordinate. */
+ double lfax() const;
+
+ /*! Get frame's left front axle y coordinate. */
+ double lfay() const;
+
+ /*! Get frame's right front axle x coordinate. */
+ double rfax() const;
+
+ /*! Get frame's right front axle y coordinate. */
+ double rfay() const;
+
+ /*! Get iframe's left front axle point. */
+ Point lfa() const;
+
+ /*! Get frame's right front axle point. */
+ Point rfa() const;
+
+ /*! Get frame's center front x coordinate. */
+ double cfx() const;
+
+ /*! Get frame's center front y coordinate. */
+ double cfy() const;
+
+ /*! Get frame's center front point. */
+ Point cf() const;
/*! Min. turning radius circle center on left. */
Point ccl() const;
}
double
-BicycleCar::ralx() const
+BicycleCar::lrax() const
{
double lrx = this->x();
lrx += (this->w() / 2.0) * cos(this->h() + M_PI / 2.0);
return lrx;
}
double
-BicycleCar::raly() const
+BicycleCar::lray() const
{
double lry = this->y();
lry += (this->w() / 2.0) * sin(this->h() + M_PI / 2.0);
}
double
-BicycleCar::rarx() const
+BicycleCar::rrax() const
{
double rrx = this->x();
rrx += (this->w() / 2.0) * cos(this->h() - M_PI / 2.0);
}
double
-BicycleCar::rary() const
+BicycleCar::rray() const
{
double rry = this->y();
rry += (this->w() / 2.0) * sin(this->h() - M_PI / 2.0);
return rry;
}
+Point
+BicycleCar::lra() const
+{
+ return Point(this->lrax(), this->lray());
+}
+
+Point
+BicycleCar::rra() const
+{
+ return Point(this->rrax(), this->rray());
+}
+
+double
+BicycleCar::lfax() const
+{
+ return this->lrax() + this->wb() * cos(this->h());
+}
+
+double
+BicycleCar::lfay() const
+{
+ return this->lray() + this->wb() * sin(this->h());
+}
+
+double
+BicycleCar::rfax() const
+{
+ return this->rrax() + this->wb() * cos(this->h());
+}
+
+double
+BicycleCar::rfay() const
+{
+ return this->rray() + this->wb() * sin(this->h());
+}
+
+Point
+BicycleCar::lfa() const
+{
+ return Point(this->lfax(), this->lfay());
+}
+
+Point
+BicycleCar::rfa() const
+{
+ return Point(this->rfax(), this->rfay());
+}
+
+double
+BicycleCar::cfx() const
+{
+ return this->x() + this->df() * cos(this->h());
+}
+
+double
+BicycleCar::cfy() const
+{
+ return this->y() + this->df() * sin(this->h());
+}
+
+Point
+BicycleCar::cf() const
+{
+ return Point(this->cfx(), this->cfy());
+}
+
Point
BicycleCar::ccl() const
{
WVPASSEQ_DOUBLE(0.5, bc.lry(), 0.00001);
WVPASSEQ_DOUBLE(0.5, bc.rry(), 0.00001);
WVPASSEQ_DOUBLE(3.5, bc.rfy(), 0.00001);
- WVPASSEQ_DOUBLE(0.5, bc.ralx(), 0.00001);
- WVPASSEQ_DOUBLE(1.5, bc.rarx(), 0.00001);
- WVPASSEQ_DOUBLE(1.0, bc.raly(), 0.00001);
- WVPASSEQ_DOUBLE(1.0, bc.rary(), 0.00001);
+ WVPASSEQ_DOUBLE(0.5, bc.lrax(), 0.00001);
+ WVPASSEQ_DOUBLE(1.5, bc.rrax(), 0.00001);
+ WVPASSEQ_DOUBLE(1.0, bc.lray(), 0.00001);
+ WVPASSEQ_DOUBLE(1.0, bc.rray(), 0.00001);
// min. turning radius circle centers
WVPASSEQ_DOUBLE(bc.h(), M_PI / 2.0, 0.00001);