Visuals - Custom Onroad UI - Paths - Blind Spot

Show when a vehicle is detected in the blindspot.
This commit is contained in:
FrogAi 2024-05-25 12:39:42 -07:00
parent 532048a2e9
commit 9b78ec1316
4 changed files with 20 additions and 1 deletions

View File

@ -129,7 +129,7 @@ class FrogPilotPlanner:
else: else:
self.min_accel = A_CRUISE_MIN self.min_accel = A_CRUISE_MIN
check_lane_width = frogpilot_toggles.adjacent_lanes or frogpilot_toggles.lane_detection check_lane_width = frogpilot_toggles.adjacent_lanes or frogpilot_toggles.blind_spot_path or frogpilot_toggles.lane_detection
if check_lane_width and v_ego >= frogpilot_toggles.minimum_lane_change_speed: if check_lane_width and v_ego >= frogpilot_toggles.minimum_lane_change_speed:
self.lane_width_left = float(calculate_lane_width(modelData.laneLines[0], modelData.laneLines[1], modelData.roadEdges[0])) self.lane_width_left = float(calculate_lane_width(modelData.laneLines[0], modelData.laneLines[1], modelData.roadEdges[0]))
self.lane_width_right = float(calculate_lane_width(modelData.laneLines[3], modelData.laneLines[2], modelData.roadEdges[1])) self.lane_width_right = float(calculate_lane_width(modelData.laneLines[3], modelData.laneLines[2], modelData.roadEdges[1]))

View File

@ -641,6 +641,23 @@ void AnnotatedCameraWidget::drawLaneLines(QPainter &painter, const UIState *s) {
painter.setBrush(bg); painter.setBrush(bg);
painter.drawPolygon(scene.track_vertices); painter.drawPolygon(scene.track_vertices);
// Paint blindspot path
if (scene.blind_spot_path) {
QLinearGradient bs(0, height(), 0, 0);
bs.setColorAt(0.0, QColor::fromHslF(0 / 360., 0.75, 0.50, 0.6));
bs.setColorAt(0.5, QColor::fromHslF(0 / 360., 0.75, 0.50, 0.4));
bs.setColorAt(1.0, QColor::fromHslF(0 / 360., 0.75, 0.50, 0.2));
painter.setBrush(bs);
if (blindSpotLeft) {
painter.drawPolygon(scene.track_adjacent_vertices[4]);
}
if (blindSpotRight) {
painter.drawPolygon(scene.track_adjacent_vertices[5]);
}
}
// Paint adjacent lane paths // Paint adjacent lane paths
if (scene.adjacent_path && (laneWidthLeft != 0 || laneWidthRight != 0)) { if (scene.adjacent_path && (laneWidthLeft != 0 || laneWidthRight != 0)) {
float minLaneWidth = laneDetectionWidth * 0.5; float minLaneWidth = laneDetectionWidth * 0.5;

View File

@ -302,6 +302,7 @@ void ui_update_frogpilot_params(UIState *s) {
scene.acceleration_path = custom_paths && params.getBool("AccelerationPath"); scene.acceleration_path = custom_paths && params.getBool("AccelerationPath");
scene.adjacent_path = custom_paths && params.getBool("AdjacentPath"); scene.adjacent_path = custom_paths && params.getBool("AdjacentPath");
scene.adjacent_path_metrics = scene.adjacent_path && params.getBool("AdjacentPathMetrics"); scene.adjacent_path_metrics = scene.adjacent_path && params.getBool("AdjacentPathMetrics");
scene.blind_spot_path = custom_paths && params.getBool("BlindSpotPath");
scene.compass = custom_onroad_ui && params.getBool("Compass"); scene.compass = custom_onroad_ui && params.getBool("Compass");
scene.disable_smoothing_mtsc = params.getBool("MTSCEnabled") && params.getBool("DisableMTSCSmoothing"); scene.disable_smoothing_mtsc = params.getBool("MTSCEnabled") && params.getBool("DisableMTSCSmoothing");

View File

@ -191,6 +191,7 @@ typedef struct UIScene {
bool adjacent_path_metrics; bool adjacent_path_metrics;
bool always_on_lateral_active; bool always_on_lateral_active;
bool blind_spot_left; bool blind_spot_left;
bool blind_spot_path;
bool blind_spot_right; bool blind_spot_right;
bool compass; bool compass;
bool conditional_experimental; bool conditional_experimental;