we are one

This commit is contained in:
royjr
2026-07-14 15:12:40 -04:00
parent 1d168cd409
commit 55d1328b66
3 changed files with 26 additions and 3 deletions
+2 -1
View File
@@ -154,7 +154,8 @@ class ModelRenderer(Widget, ModelRendererSP):
self._draw_path(sm)
if ui_state.radar_tracks and sm.valid['liveTracks'] and sm.recv_frame['liveTracks'] >= ui_state.started_frame:
self.radar_tracks.draw_radar_tracks(sm['liveTracks'], self._map_to_screen, self._path_offset_z, track_size=3)
self.radar_tracks.draw_radar_tracks(sm['liveTracks'], self._map_to_screen, self._path_offset_z, track_size=3,
screen_offset=(self._rect.x, self._rect.y))
# if render_lead_indicator and radar_state:
# self._draw_lead_indicator()
@@ -42,7 +42,7 @@ def format_radar_tracks_onroad_columns(live_tracks) -> tuple[str, str]:
class RadarTracks:
def draw_radar_tracks(self, live_tracks, map_to_screen, path_offset_z, track_size=6):
def draw_radar_tracks(self, live_tracks, map_to_screen, path_offset_z, track_size=6, screen_offset=(0, 0)):
for track in live_tracks.points:
d_rel, y_rel, v_rel, a_rel = track.dRel, track.yRel, track.vRel, track.aRel
if not (math.isfinite(d_rel) and math.isfinite(y_rel) and math.isfinite(v_rel) and math.isfinite(a_rel)):
@@ -52,5 +52,5 @@ class RadarTracks:
if pt is None:
continue
x, y = pt
x, y = pt[0] + screen_offset[0], pt[1] + screen_offset[1]
rl.draw_circle(int(x), int(y), track_size, rl.Color(0, 255, 64, 255))
@@ -1,5 +1,6 @@
from cereal import car
from openpilot.selfdrive.ui.sunnypilot.onroad import radar_tracks
from openpilot.selfdrive.ui.sunnypilot.onroad.radar_tracks import format_radar_tracks_onroad_columns, format_radar_tracks_onroad_status, \
format_radar_tracks_status
@@ -37,3 +38,24 @@ def test_format_radar_tracks_status_deduplicates_and_sorts_ranges():
"0x210-0x21F -\n0x500-0x51F -\n0x500-0x51F -",
"1\n2\n3",
)
def test_draw_radar_tracks_applies_screen_offset(monkeypatch):
live_tracks = car.RadarData.new_message()
points = live_tracks.init("points", 1)
points[0].dRel = 10
points[0].yRel = 1
points[0].vRel = 2
points[0].aRel = 0
drawn_circles = []
monkeypatch.setattr(radar_tracks.rl, "draw_circle", lambda x, y, size, color: drawn_circles.append((x, y, size)))
radar_tracks.RadarTracks().draw_radar_tracks(
live_tracks,
lambda d_rel, y_rel, z: (20, 30),
path_offset_z=1.2,
track_size=3,
screen_offset=(100, 7),
)
assert drawn_circles == [(120, 37, 3)]