| | |
| | | |
| | | DEBUG("清除旧的路考地图"); |
| | | |
| | | if (RoadMapPoints.point != NULL) { |
| | | free(RoadMapPoints.point); |
| | | } |
| | | RoadMapPoints.num = 0; |
| | | |
| | | for (int i = 0; i < RoadMap.roads.size(); ++i) { |
| | | for (int j = 0; j < RoadMap.roads[i].leftEdge.size(); ++j) { |
| | | RoadMap.roads[i].leftEdge[j].points.clear(); |
| | | vector<PointF>().swap(RoadMap.roads[i].leftEdge[j].points); |
| | | } |
| | | RoadMap.roads[i].leftEdge.clear(); |
| | | vector<edge_t>().swap(RoadMap.roads[i].leftEdge); |
| | | |
| | | for (int j = 0; j < RoadMap.roads[i].rightEdge.size(); ++j) { |
| | | RoadMap.roads[i].rightEdge[j].points.clear(); |
| | | vector<PointF>().swap(RoadMap.roads[i].rightEdge[j].points); |
| | | } |
| | | RoadMap.roads[i].rightEdge.clear(); |
| | | vector<edge_t>().swap(RoadMap.roads[i].rightEdge); |
| | | |
| | | for (int j = 0; j < RoadMap.roads[i].separate.size(); ++j) { |
| | | for (int k = 0; k < RoadMap.roads[i].separate[j].lines.size(); ++k) { |
| | | for (int m = 0; m < RoadMap.roads[i].separate[j].lines[k].size(); ++m) { |
| | | RoadMap.roads[i].separate[j].lines[k][m].points.clear(); |
| | | vector<PointF>().swap(RoadMap.roads[i].separate[j].lines[k][m].points); |
| | | } |
| | | |
| | | RoadMap.roads[i].separate[j].lines[k].clear(); |
| | | vector<segment_t>().swap(RoadMap.roads[i].separate[j].lines[k]); |
| | | } |
| | | RoadMap.roads[i].separate[j].lines.clear(); |
| | | vector<vector<segment_t>>().swap(RoadMap.roads[i].separate[j].lines); |
| | | } |
| | | RoadMap.roads[i].separate.clear(); |
| | | vector<separate_t>().swap(RoadMap.roads[i].separate); |
| | | } |
| | | |
| | | RoadMap.roads.clear(); |
| | | vector<road_t>().swap(RoadMap.roads); |
| | | |
| | | for (int i = 0; i < RoadMap.specialAreas.size(); ++i) { |
| | | RoadMap.specialAreas[i].area.clear(); |
| | | vector<PointF>().swap(RoadMap.specialAreas[i].area); |
| | | } |
| | | RoadMap.specialAreas.clear(); |
| | | vector<special_area_t>().swap(RoadMap.specialAreas); |
| | | |
| | | RoadMap.triggerLines.clear(); |
| | | vector<trigger_line_t>().swap(RoadMap.triggerLines); |
| | | /* |
| | | for (int i = 0; i < RoadMapList.size(); ++i) { |
| | | struct road_exam_map map = RoadMapList[i]; |
| | | |
| | | if (map.redLine != NULL) { |
| | | for (int j = 0; j < map.redLineNum; ++j) { |
| | | if (map.redLine[j].point != NULL) |
| | | free(map.redLine[j].point); |
| | | } |
| | | free(map.redLine); |
| | | } |
| | | |
| | | if (map.greenLine != NULL) { |
| | | for (int j = 0; j < map.greenLineNum; ++j) { |
| | | if (map.greenLine[j].point != NULL) |
| | | free(map.greenLine[j].point); |
| | | } |
| | | free(map.greenLine); |
| | | } |
| | | |
| | | if (map.redArea != NULL) { |
| | | for (int j = 0; j < map.redAreaNum; ++j) { |
| | | if (map.redArea[j].point != NULL) |
| | | free(map.redArea[j].point); |
| | | } |
| | | free(map.redArea); |
| | | } |
| | | |
| | | if (map.triggerLine != NULL) { |
| | | for (int j = 0; j < map.triggerLineNum; ++j) { |
| | | if (map.triggerLine[j].line.point != NULL) |
| | | free(map.triggerLine[j].line.point); |
| | | } |
| | | free(map.triggerLine); |
| | | } |
| | | |
| | | 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();*/ |
| | | } |
| | | |
| | | void SetRoadMap(road_exam_map &map) |