| | |
| | | if (map.area.point != NULL) { |
| | | free(map.area.point); |
| | | } |
| | | |
| | | if (map.roadEdgeLine != NULL) { |
| | | for (int j = 0; j < map.roadEdgeLineNum; ++j) { |
| | | if (map.roadEdgeLine[j].point != NULL) |
| | | free(map.roadEdgeLine[j].point); |
| | | } |
| | | |
| | | free(map.roadEdgeLine); |
| | | } |
| | | } |
| | | |
| | | RoadMapList.clear(); |
| | |
| | | vector<vector<int>> &redAreas, |
| | | vector<vector<int>> &greenLines, |
| | | vector<vector<int>> &triggerLines, |
| | | vector<vector<int>> &roadEdgeLines, |
| | | vector<int> area, |
| | | vector<int> stopLine) |
| | | { |
| | |
| | | } |
| | | } else { |
| | | newMap.triggerLine = NULL; |
| | | }; |
| | | } |
| | | |
| | | if ((newMap.roadEdgeLineNum = roadEdgeLines.size()) > 0) { |
| | | newMap.roadEdgeLine = (Polygon *) malloc(sizeof(Polygon) * newMap.roadEdgeLineNum); |
| | | |
| | | DEBUG("道路边线 %d 根", newMap.roadEdgeLineNum); |
| | | for (int i = 0; i < newMap.roadEdgeLineNum; ++i) { |
| | | newMap.roadEdgeLine[i].num = roadEdgeLines[i].size(); |
| | | newMap.roadEdgeLine[i].point = (PointF *) malloc(sizeof(PointF) * newMap.roadEdgeLine[i].num); |
| | | |
| | | DEBUG(" 结点 %d 个", newMap.roadEdgeLine[i].num); |
| | | for (int j = 0; j < newMap.roadEdgeLine[i].num; ++j) { |
| | | newMap.roadEdgeLine[i].point[j] = RoadMapPoints.point[roadEdgeLines[i][j]]; |
| | | } |
| | | } |
| | | } else { |
| | | newMap.roadEdgeLine = NULL; |
| | | } |
| | | |
| | | if (area.size() > 0) { |
| | | newMap.area.num = area.size(); |