BicycleCar gc_;
ParkingSlot ps_;
- // find entry to slot by reverse approach
+ unsigned int c_ = 0; // number of cusps
+ std::vector<BicycleCar> cusps_;
+
+ // find entry to slot
void fe_parallel();
void fe_perpendicular();
+ // find entry to slot by reverse approach
void fer_parallel();
void fer_perpendicular();
+ // set goal car
+ void gc_to_4();
public:
/*! \brief Return `true` if there is collision.
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.
+
+ \param cnt Number of inits.
+ \param dist Distance between inits.
+ */
+ std::vector<BicycleCar> possible_goals(
+ unsigned int cnt,
+ double dist
+ );
+ std::vector<BicycleCar> possible_goals()
+ {
+ return this->possible_goals(10, 0.5);
+ }
// find entry
/*! \brief Find entry to the parking slot.
BicycleCar &gc() { return this->gc_; }
ParkingSlot &ps() { return this->ps_; }
+ unsigned int c() const { return this->c_; }
+ std::vector<BicycleCar> &cusps() { return this->cusps_; }
+
PSPlanner();
};