10 /*! \brief Parking Slot Planner basic class.
12 \param cc Current bicycle car.
13 \param ps Parking slot.
22 // find entry to slot by reverse approach
24 void fe_perpendicular();
26 void fer_perpendicular();
28 /*! \brief Return `true` if there is collision.
30 If the parking slot `ps` collide with current car `cc`,
33 This method depends on `intersection` function that
34 returns `true` or `false` if two line segments collide.
35 Each line segment of current car `cc` (borders) is
36 checked to each line segment of parking slot `ps`
40 /*! \brief Return parking direction
42 Return `true` if the direction of the parking in the
46 /*! \brief Guess goal car
48 Set the goal car guessed from the parking slot.
51 /*! \brief Has current car `cc` left?
53 Return `true` if the current car `cc` left the parking
57 /*! \brief Is the goal car `gc` parked?
59 Return `true` if the goal car `gc` is inside the
63 /*! \brief Return possible starts of parking maneuver
65 When any `BicycleCar` of possible inits is reached, then
66 parking maneuver is a peace of cake.
68 \param cnt Number of inits.
69 \param dist Distance between inits.
71 std::vector<BicycleCar> possible_inits(
75 std::vector<BicycleCar> possible_inits()
77 return this->possible_inits(10, 1);
81 /*! \brief Find entry to the parking slot.
84 /*! \brief Find entry to slot by reverse approach.
86 See `Vorobieva2015` for more information.
91 BicycleCar &cc() { return this->cc_; }
92 BicycleCar &gc() { return this->gc_; }
93 ParkingSlot &ps() { return this->ps_; }