MCPcopy Create free account
hub / github.com/OpenDriveLab/DriveAdapter / draw_road_map

Method draw_road_map

scenario_runner/no_rendering_mode.py:458–761  ·  view source on GitHub ↗
(self, map_surface, carla_world, carla_map, world_to_pixel, world_to_pixel_width)

Source from the content-addressed store, hash-verified

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

Callers 1

__init__Method · 0.95

Calls 4

get_topologyMethod · 0.80
nextMethod · 0.80
get_actorsMethod · 0.80
renderMethod · 0.45

Tested by

no test coverage detected