MCPcopy Create free account
hub / github.com/AdaCompNUS/summit / draw_road_map

Method draw_road_map

PythonAPI/examples/no_rendering_mode.py:503–858  ·  view source on GitHub ↗

Draws all the roads, including lane markings, arrows and traffic signs

(self, map_surface, carla_world, carla_map, world_to_pixel, world_to_pixel_width)

Source from the content-addressed store, hash-verified

501 self.surface = self.big_map_surface
502
503 def draw_road_map(self, map_surface, carla_world, carla_map, world_to_pixel, world_to_pixel_width):
504 """Draws all the roads, including lane markings, arrows and traffic signs"""
505 map_surface.fill(COLOR_ALUMINIUM_4)
506 precision = 0.05
507
508 def lane_marking_color_to_tango(lane_marking_color):
509 """Maps the lane marking color enum specified in PythonAPI to a Tango Color"""
510 tango_color = COLOR_BLACK
511
512 if lane_marking_color == carla.LaneMarkingColor.White:
513 tango_color = COLOR_ALUMINIUM_2
514
515 elif lane_marking_color == carla.LaneMarkingColor.Blue:
516 tango_color = COLOR_SKY_BLUE_0
517
518 elif lane_marking_color == carla.LaneMarkingColor.Green:
519 tango_color = COLOR_CHAMELEON_0
520
521 elif lane_marking_color == carla.LaneMarkingColor.Red:
522 tango_color = COLOR_SCARLET_RED_0
523
524 elif lane_marking_color == carla.LaneMarkingColor.Yellow:
525 tango_color = COLOR_ORANGE_0
526
527 return tango_color
528
529 def draw_solid_line(surface, color, closed, points, width):
530 """Draws solid lines in a surface given a set of points, width and color"""
531 if len(points) >= 2:
532 pygame.draw.lines(surface, color, closed, points, width)
533
534 def draw_broken_line(surface, color, closed, points, width):
535 """Draws broken lines in a surface given a set of points, width and color"""
536 # Select which lines are going to be rendered from the set of lines
537 broken_lines = [x for n, x in enumerate(zip(*(iter(points),) * 20)) if n % 3 == 0]
538
539 # Draw selected lines
540 for line in broken_lines:
541 pygame.draw.lines(surface, color, closed, line, width)
542
543 def get_lane_markings(lane_marking_type, lane_marking_color, waypoints, sign):
544 """For multiple lane marking types (SolidSolid, BrokenSolid, SolidBroken and BrokenBroken), it converts them
545 as a combination of Broken and Solid lines"""
546 margin = 0.25
547 marking_1 = [world_to_pixel(lateral_shift(w.transform, sign * w.lane_width * 0.5)) for w in waypoints]
548 if lane_marking_type == carla.LaneMarkingType.Broken or (lane_marking_type == carla.LaneMarkingType.Solid):
549 return [(lane_marking_type, lane_marking_color, marking_1)]
550 else:
551 marking_2 = [world_to_pixel(lateral_shift(w.transform,
552 sign * (w.lane_width * 0.5 + margin * 2))) for w in waypoints]
553 if lane_marking_type == carla.LaneMarkingType.SolidBroken:
554 return [(carla.LaneMarkingType.Broken, lane_marking_color, marking_1),
555 (carla.LaneMarkingType.Solid, lane_marking_color, marking_2)]
556 elif lane_marking_type == carla.LaneMarkingType.BrokenSolid:
557 return [(carla.LaneMarkingType.Solid, lane_marking_color, marking_1),
558 (carla.LaneMarkingType.Broken, lane_marking_color, marking_2)]
559 elif lane_marking_type == carla.LaneMarkingType.BrokenBroken:
560 return [(carla.LaneMarkingType.Broken, lane_marking_color, marking_1),

Callers 1

__init__Method · 0.95

Calls 3

get_topologyMethod · 0.80
nextMethod · 0.80
renderMethod · 0.45

Tested by

no test coverage detected