(self, map_surface, carla_world, carla_map, world_to_pixel, world_to_pixel_width)
| 456 | self.surface = self.big_map_surface |
| 457 | |
| 458 | def draw_road_map(self, map_surface, carla_world, carla_map, world_to_pixel, world_to_pixel_width): |
| 459 | map_surface.fill(COLOR_ALUMINIUM_4) |
| 460 | precision = 0.05 |
| 461 | |
| 462 | def lane_marking_color_to_tango(lane_marking_color): |
| 463 | tango_color = COLOR_BLACK |
| 464 | |
| 465 | if lane_marking_color == carla.LaneMarkingColor.White: |
| 466 | tango_color = COLOR_ALUMINIUM_2 |
| 467 | |
| 468 | elif lane_marking_color == carla.LaneMarkingColor.Blue: |
| 469 | tango_color = COLOR_SKY_BLUE_0 |
| 470 | |
| 471 | elif lane_marking_color == carla.LaneMarkingColor.Green: |
| 472 | tango_color = COLOR_CHAMELEON_0 |
| 473 | |
| 474 | elif lane_marking_color == carla.LaneMarkingColor.Red: |
| 475 | tango_color = COLOR_SCARLET_RED_0 |
| 476 | |
| 477 | elif lane_marking_color == carla.LaneMarkingColor.Yellow: |
| 478 | tango_color = COLOR_ORANGE_0 |
| 479 | |
| 480 | return tango_color |
| 481 | |
| 482 | def draw_solid_line(surface, color, closed, points, width): |
| 483 | if len(points) >= 2: |
| 484 | pygame.draw.lines(surface, color, closed, points, width) |
| 485 | |
| 486 | def draw_broken_line(surface, color, closed, points, width): |
| 487 | broken_lines = [x for n, x in enumerate(zip(*(iter(points),) * 20)) if n % 3 == 0] |
| 488 | for line in broken_lines: |
| 489 | pygame.draw.lines(surface, color, closed, line, width) |
| 490 | |
| 491 | def get_lane_markings(lane_marking_type, lane_marking_color, waypoints, sign): |
| 492 | margin = 0.20 |
| 493 | if lane_marking_type == carla.LaneMarkingType.Broken or (lane_marking_type == carla.LaneMarkingType.Solid): |
| 494 | marking_1 = [world_to_pixel(lateral_shift(w.transform, sign * w.lane_width * 0.5)) for w in waypoints] |
| 495 | return [(lane_marking_type, lane_marking_color, marking_1)] |
| 496 | elif lane_marking_type == carla.LaneMarkingType.SolidBroken or lane_marking_type == carla.LaneMarkingType.BrokenSolid: |
| 497 | marking_1 = [world_to_pixel(lateral_shift(w.transform, sign * w.lane_width * 0.5)) for w in waypoints] |
| 498 | marking_2 = [world_to_pixel(lateral_shift(w.transform, |
| 499 | sign * (w.lane_width * 0.5 + margin * 2))) for w in waypoints] |
| 500 | return [(carla.LaneMarkingType.Solid, lane_marking_color, marking_1), |
| 501 | (carla.LaneMarkingType.Broken, lane_marking_color, marking_2)] |
| 502 | elif lane_marking_type == carla.LaneMarkingType.BrokenBroken: |
| 503 | marking = [world_to_pixel(lateral_shift(w.transform, |
| 504 | sign * (w.lane_width * 0.5 - margin))) for w in waypoints] |
| 505 | return [(carla.LaneMarkingType.Broken, lane_marking_color, marking)] |
| 506 | elif lane_marking_type == carla.LaneMarkingType.SolidSolid: |
| 507 | marking = [world_to_pixel(lateral_shift(w.transform, |
| 508 | sign * ((w.lane_width * 0.5) - margin))) for w in waypoints] |
| 509 | return [(carla.LaneMarkingType.Solid, lane_marking_color, marking)] |
| 510 | |
| 511 | return [(carla.LaneMarkingType.NONE, carla.LaneMarkingColor.Other, [])] |
| 512 | |
| 513 | def draw_lane_marking(surface, waypoints, is_left): |
| 514 | sign = -1 if is_left else 1 |
| 515 | lane_marking = None |
no test coverage detected