pull/19657/head
deanlee 4 years ago
parent 95b08679c2
commit 0834a3ffe7
  1. 12
      selfdrive/ui/paint.cc
  2. 15
      selfdrive/ui/ui.cc
  3. 2
      selfdrive/ui/ui.hpp

@ -199,20 +199,24 @@ static void ui_draw_vision_lane_lines(UIState *s) {
const UIScene *scene = &s->scene;
const bool model_updated = s->sm->updated("modelV2");
// paint lanelines
const auto lane_lines = scene->model.getLaneLines();
const auto lane_line_probs = scene->model.getLaneLineProbs();
for (int i = 0; i < std::size(s->lane_line_vertices); i++) {
if (model_updated) {
update_line_data(s, scene->model.getLaneLines()[i], 0.025*scene->lane_line_probs[i], 1.22, &s->lane_line_vertices[i], scene->max_distance);
update_line_data(s, lane_lines[i], 0.025 * lane_line_probs[i], 1.22, &s->lane_line_vertices[i], scene->max_distance);
}
NVGcolor color = nvgRGBAf(1.0, 1.0, 1.0, scene->lane_line_probs[i]);
NVGcolor color = nvgRGBAf(1.0, 1.0, 1.0, lane_line_probs[i]);
ui_draw_line(s, s->lane_line_vertices[i].v, s->lane_line_vertices[i].cnt, &color, nullptr);
}
// paint road edges
const auto road_edges = scene->model.getRoadEdges();
const auto road_edge_stds = scene->model.getRoadEdgeStds();
for (int i = 0; i < std::size(s->road_edge_vertices); i++) {
if (model_updated) {
update_line_data(s, scene->model.getRoadEdges()[i], 0.025, 1.22, &s->road_edge_vertices[i], scene->max_distance);
update_line_data(s, road_edges[i], 0.025, 1.22, &s->road_edge_vertices[i], scene->max_distance);
}
NVGcolor color = nvgRGBAf(1.0, 0.0, 0.0, std::clamp<float>(1.0-scene->road_edge_stds[i], 0.0, 1.0));
NVGcolor color = nvgRGBAf(1.0, 0.0, 0.0, std::clamp<float>(1.0 - road_edge_stds[i], 0.0, 1.0));
ui_draw_line(s, s->road_edge_vertices[i].v, s->road_edge_vertices[i].cnt, &color, nullptr);
}

@ -172,21 +172,6 @@ void update_sockets(UIState *s) {
if (sm.updated("modelV2")) {
scene.model = sm["modelV2"].getModelV2();
scene.max_distance = fmin(scene.model.getPosition().getX()[TRAJECTORY_SIZE - 1], MAX_DRAW_DISTANCE);
for (int ll_idx = 0; ll_idx < 4; ll_idx++) {
if (scene.model.getLaneLineProbs().size() > ll_idx) {
scene.lane_line_probs[ll_idx] = scene.model.getLaneLineProbs()[ll_idx];
} else {
scene.lane_line_probs[ll_idx] = 0.0;
}
}
for (int re_idx = 0; re_idx < 2; re_idx++) {
if (scene.model.getRoadEdgeStds().size() > re_idx) {
scene.road_edge_stds[re_idx] = scene.model.getRoadEdgeStds()[re_idx];
} else {
scene.road_edge_stds[re_idx] = 1.0;
}
}
}
if (sm.updated("uiLayoutState")) {
auto data = sm["uiLayoutState"].getUiLayoutState();

@ -126,8 +126,6 @@ typedef struct UIScene {
line left_road_edge;
line right_road_edge;
float max_distance;
float lane_line_probs[4];
float road_edge_stds[2];
} UIScene;
typedef struct {

Loading…
Cancel
Save