parking slot `ps`.
*/
bool parked();
+ /*! \brief Return possible starts of parking maneuver
+
+ When any `BicycleCar` of possible inits is reached, then
+ parking maneuver is a peace of cake.
+ */
+ std::vector<BicycleCar> possible_inits();
// find entry
/*! \brief Find entry to the parking slot.
&& inside(this->gc().rfx(), this->gc().rfy(), slot);
}
+std::vector<BicycleCar> PSPlanner::possible_inits()
+{
+ std::vector<BicycleCar> pi;
+ return pi;
+}
+
// find entry
void PSPlanner::fe()
{
WVPASS(psp.left());
WVPASS(psp.parked());
}
+
+WVTEST_MAIN("possible goals test")
+{
+ PSPlanner psp;
+ psp.gc().x(0);
+ psp.gc().y(0);
+ psp.gc().h(0);
+ psp.gc().mtr(10);
+ psp.gc().wb(2);
+ psp.gc().w(1);
+ psp.gc().l(3);
+ psp.gc().he(1.5);
+ psp.gc().df(2 + 0.5);
+ psp.gc().dr(0.5);
+ psp.cc() = BicycleCar(psp.gc());
+ psp.cc().sp(1);
+ psp.cc().st(0);
+ psp.cc().next();
+ WVPASSEQ_DOUBLE(psp.gc().x() + 1, psp.cc().x(), 0.00001);
+ WVPASSEQ_DOUBLE(psp.gc().y(), psp.cc().y(), 0.00001);
+ WVPASSEQ_DOUBLE(psp.gc().h(), psp.cc().h(), 0.00001);
+ WVPASS(psp.possible_inits().size() > 0);
+ double i = 1;
+ for (auto &c: psp.possible_inits()) {
+ WVPASSEQ_DOUBLE(psp.gc().x() + 1 + i, c.x(), 0.00001);
+ WVPASSEQ_DOUBLE(psp.gc().y(), c.y(), 0.00001);
+ WVPASSEQ_DOUBLE(psp.gc().h(), c.h(), 0.00001);
+ i++;
+ }
+ WVPASSEQ_DOUBLE(psp.gc().x() + 1, psp.cc().x(), 0.00001);
+ WVPASSEQ_DOUBLE(psp.gc().y(), psp.cc().y(), 0.00001);
+ WVPASSEQ_DOUBLE(psp.gc().h(), psp.cc().h(), 0.00001);
+}