]> rtime.felk.cvut.cz Git - hubacji1/bcar.git/commitdiff
Use begin, end when rotating zone border
authorJiri Vlasak <hubacji1@fel.cvut.cz>
Sun, 7 Feb 2021 12:12:30 +0000 (13:12 +0100)
committerJiri Vlasak <hubacji1@fel.cvut.cz>
Sun, 7 Feb 2021 12:12:35 +0000 (13:12 +0100)
src/bcar.cc

index b5868bd71de8dc160c48f3300fe5faaac54bc789..cd317a409ad20978a12ec6f62accccc0181b0d36 100644 (file)
@@ -24,6 +24,8 @@ bool BicycleCar::drivable(const BicycleCar &bc, double b, double e) const
                 return true;
         } else if (0 < a_1 && a_1 <= M_PI/2) { // left front
                 BicycleCar z(*this); // zone border
+                z.h(e);
+                h_d = bc.h() - this->h();
                 z.rotate(this->ccl().x(), this->ccl().y(), h_d);
                 // assert z.h() == bc.h()
                 if (bc.y() == z.y() && bc.x() == z.x()) // bc on zone border
@@ -37,6 +39,8 @@ bool BicycleCar::drivable(const BicycleCar &bc, double b, double e) const
                         return true;
         } else if (M_PI/2 < a_1 && a_1 <= M_PI) { // left rear
                 BicycleCar z(*this); // zone border
+                z.h(e);
+                h_d = bc.h() - this->h();
                 z.rotate(this->ccl().x(), this->ccl().y(), h_d);
                 // assert z.h() == bc.h()
                 if (bc.y() == z.y() && bc.x() == z.x()) // bc on zone border
@@ -51,6 +55,8 @@ bool BicycleCar::drivable(const BicycleCar &bc, double b, double e) const
                         return true;
         } else if (0 > a_1 && a_1 >= -M_PI/2) { // right front
                 BicycleCar z(*this); // zone border
+                z.h(b);
+                h_d = bc.h() - this->h();
                 z.rotate(this->ccr().x(), this->ccr().y(), h_d);
                 // assert z.h() == bc.h()
                 if (bc.y() == z.y() && bc.x() == z.x()) // bc on zone border
@@ -64,6 +70,8 @@ bool BicycleCar::drivable(const BicycleCar &bc, double b, double e) const
                         return true;
         } else if (-M_PI/2 > a_1 && a_1 >= -M_PI) { // right rear
                 BicycleCar z(*this); // zone border
+                z.h(b);
+                h_d = bc.h() - this->h();
                 z.rotate(this->ccr().x(), this->ccr().y(), h_d);
                 // assert z.h() == bc.h()
                 if (bc.y() == z.y() && bc.x() == z.x()) // bc on zone border