|
|
|
@ -128,20 +128,12 @@ static void draw_lead(UIState *s, const cereal::RadarState::LeadData::Reader &le |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void ui_draw_lane_line(UIState *s, const model_path_vertices_data *pvd, NVGcolor color) { |
|
|
|
|
if (pvd->cnt == 0) return; |
|
|
|
|
|
|
|
|
|
nvgBeginPath(s->vg); |
|
|
|
|
bool started = false; |
|
|
|
|
for (int i=0; i<pvd->cnt; i++) { |
|
|
|
|
float x = pvd->v[i].x; |
|
|
|
|
float y = pvd->v[i].y; |
|
|
|
|
if (x < 0 || y < 0.) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if (!started) { |
|
|
|
|
nvgMoveTo(s->vg, x, y); |
|
|
|
|
started = true; |
|
|
|
|
} else { |
|
|
|
|
nvgLineTo(s->vg, x, y); |
|
|
|
|
} |
|
|
|
|
nvgMoveTo(s->vg, pvd->v[0].x, pvd->v[0].y); |
|
|
|
|
for (int i=1; i<pvd->cnt; i++) { |
|
|
|
|
nvgLineTo(s->vg, pvd->v[i].x, pvd->v[i].y); |
|
|
|
|
} |
|
|
|
|
nvgClosePath(s->vg); |
|
|
|
|
nvgFillColor(s->vg, color); |
|
|
|
@ -214,20 +206,12 @@ static void update_all_track_data(UIState *s) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void ui_draw_track(UIState *s, bool is_mpc, track_vertices_data *pvd) { |
|
|
|
|
if (pvd->cnt == 0) return; |
|
|
|
|
|
|
|
|
|
nvgBeginPath(s->vg); |
|
|
|
|
bool started = false; |
|
|
|
|
for(int i = 0;i < pvd->cnt;i++) { |
|
|
|
|
float x = pvd->v[i].x; |
|
|
|
|
float y = pvd->v[i].y; |
|
|
|
|
if (x < 0 || y < 0) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if (!started) { |
|
|
|
|
nvgMoveTo(s->vg, x, y); |
|
|
|
|
started = true; |
|
|
|
|
} else { |
|
|
|
|
nvgLineTo(s->vg, x, y); |
|
|
|
|
} |
|
|
|
|
nvgMoveTo(s->vg, pvd->v[0].x, pvd->v[0].y); |
|
|
|
|
for (int i=1; i<pvd->cnt; i++) { |
|
|
|
|
nvgLineTo(s->vg, pvd->v[i].x, pvd->v[i].y); |
|
|
|
|
} |
|
|
|
|
nvgClosePath(s->vg); |
|
|
|
|
|
|
|
|
|