code: def draw_heading_range(heading_range, ego_dynamics_on_route):
      line = [
          (
              float(ego_dynamics_on_route.ego_center.x),
              float(ego_dynamics_on_route.ego_center.y),
          )
      ]
      length = 3.0
      current_angle = float(heading_range.begin)
      max_angle = float(heading_range.end)
      if heading_range.end < heading_range.begin:
          max_angle += 2.0 * np.pi
  
      while current_angle < max_angle:
          line.append(
              (
                  float(ego_dynamics_on_route.ego_center.x)
                  + length * np.cos(current_angle),
                  float(ego_dynamics_on_route.ego_center.y)
                  + length * np.sin(current_angle),
              )
          )
          current_angle += 0.2
  
      if current_angle != max_angle:
          line.append(
              (
                  float(ego_dynamics_on_route.ego_center.x)
                  + length * np.cos(max_angle),
                  float(ego_dynamics_on_route.ego_center.y)
                  + length * np.sin(max_angle),
              )
          )
  
      line.append(
          (
              float(ego_dynamics_on_route.ego_center.x),
              float(ego_dynamics_on_route.ego_center.y),
          )
      )
      return line
  
imports: import glob
  import os
  import sys
  from enum import Enum
  import math
  import numpy
  import pygame
  import weakref
  import carla
  from carla import ad
label_desc: Use image node_id 10 for calling the RssUnstructuredSceneVisualizer obj's underlying member method code with example usage: obj.draw_heading_range(heading_range, ego_dynamics_on_route) and returns: line