use in model renderer

pull/35546/head
Shane Smiskol 5 days ago
parent 62455240c0
commit d35f774155
  1. 36
      selfdrive/ui/onroad/model_renderer.py

@ -56,6 +56,8 @@ class ModelRenderer(Widget):
self._lead_vehicles = [LeadVehicle(), LeadVehicle()]
self._path_offset_z = HEIGHT_INIT[0]
self._render_lead_indicator = False
# Initialize ModelPoints objects
self._path = ModelPoints()
self._lane_lines = [ModelPoints() for _ in range(4)]
@ -83,20 +85,9 @@ class ModelRenderer(Widget):
self._car_space_transform = transform.astype(np.float32)
self._transform_dirty = True
def _render(self, rect: rl.Rectangle):
sm = ui_state.sm
# Check if data is up-to-date
if (sm.recv_frame["liveCalibration"] < ui_state.started_frame or
sm.recv_frame["modelV2"] < ui_state.started_frame):
return
# Set up clipping region
self._clip_region = rl.Rectangle(
rect.x - CLIP_MARGIN, rect.y - CLIP_MARGIN, rect.width + 2 * CLIP_MARGIN, rect.height + 2 * CLIP_MARGIN
)
def _update_state(self):
# Update state
sm = ui_state.sm
self._experimental_mode = sm['selfdriveState'].experimentalMode
live_calib = sm['liveCalibration']
@ -108,7 +99,7 @@ class ModelRenderer(Widget):
model = sm['modelV2']
radar_state = sm['radarState'] if sm.valid['radarState'] else None
lead_one = radar_state.leadOne if radar_state else None
render_lead_indicator = self._longitudinal_control and radar_state is not None
self._render_lead_indicator = self._longitudinal_control and radar_state is not None
# Update model data when needed
model_updated = sm.updated['modelV2']
@ -121,15 +112,28 @@ class ModelRenderer(Widget):
return
self._update_model(lead_one, path_x_array)
if render_lead_indicator:
if self._render_lead_indicator:
self._update_leads(radar_state, path_x_array)
self._transform_dirty = False
def _render(self, rect: rl.Rectangle):
sm = ui_state.sm
# Check if data is up-to-date
if (sm.recv_frame["liveCalibration"] < ui_state.started_frame or
sm.recv_frame["modelV2"] < ui_state.started_frame):
return
# Set up clipping region
self._clip_region = rl.Rectangle(
rect.x - CLIP_MARGIN, rect.y - CLIP_MARGIN, rect.width + 2 * CLIP_MARGIN, rect.height + 2 * CLIP_MARGIN
)
# Draw elements
self._draw_lane_lines()
self._draw_path(sm)
if render_lead_indicator and radar_state:
if self._render_lead_indicator:
self._draw_lead_indicator()
def _update_raw_points(self, model):

Loading…
Cancel
Save