From 7fdc4fa80d5d04b5936fc1bdd617b64c6ae9ef37 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期一, 26 四月 2021 13:17:00 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/endian11/DriveJudge

---
 lib/src/main/cpp/test_items/stop_and_start.cpp |   27 ++++++++++++++++++++++++---
 1 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/lib/src/main/cpp/test_items/stop_and_start.cpp b/lib/src/main/cpp/test_items/stop_and_start.cpp
index 12e8000..672c0ad 100644
--- a/lib/src/main/cpp/test_items/stop_and_start.cpp
+++ b/lib/src/main/cpp/test_items/stop_and_start.cpp
@@ -216,14 +216,27 @@
     bool ret = false;
 
     Line red_line;
-    const int red_lines[][2] = {{0, 8}};
+    int red_lines[2][2];
+    int red_line_num = 0;
+
+    if (map->num == 10) {
+        red_lines[0][0] = 0;
+        red_lines[0][1] = 8;
+        red_lines[1][0] = 8;
+        red_lines[1][1] = 9;
+        red_line_num = 2;
+    } else {
+        red_lines[0][0] = 0;
+        red_lines[0][1] = 8;
+        red_line_num = 1;
+    }
 
     Line frontAxle, rearAxle;
 
     MakeLine(&frontAxle, &car->carXY[car->left_front_tire[TIRE_OUTSIDE]], &car->carXY[car->right_front_tire[TIRE_OUTSIDE]]);
     MakeLine(&rearAxle, &car->carXY[car->left_rear_tire[TIRE_OUTSIDE]], &car->carXY[car->right_rear_tire[TIRE_OUTSIDE]]);
 
-    for (int i = 0; i < sizeof(red_lines) / sizeof(red_lines[0]); ++i) {
+    for (int i = 0; i < red_line_num; ++i) {
         MakeLine(&red_line, &map->point[red_lines[i][0]], &map->point[red_lines[i][1]]);
         if (IntersectionOf(red_line, frontAxle) == GM_Intersection ||
                 IntersectionOf(red_line, rearAxle) == GM_Intersection) {
@@ -285,11 +298,19 @@
 
     Polygon carBody, map2;
     PointF vPoint = Calc3Point(map->point[8], map->point[0], DistanceOf(map->point[8], map->point[7]), 'R');
+    PointF vPoint2;
+
+    if (map->num == 10) {
+        vPoint2 = Calc3Point(map->point[8], map->point[9], DistanceOf(map->point[8], map->point[7]), 'L');
+    }
 
     map2.num = 4;
     map2.point = (PointF *)malloc(map2.num * sizeof(PointF));
 
-    MakePolygon(&map2, {vPoint, map->point[0], map->point[7], map->point[8]});
+    if (map->num == 9)
+        MakePolygon(&map2, {vPoint, map->point[0], map->point[8], map->point[7]});
+    else
+        MakePolygon(&map2, {vPoint, map->point[0], map->point[9], vPoint2});
 
     carBody.num = car->bodyNum;
     carBody.point = (PointF *)malloc(carBody.num * sizeof(PointF));

--
Gitblit v1.8.0