17 if(std::isfinite(message->increment_f) && message->increment_f > 0) {
18 _increment =
static_cast<qreal
>(message->increment_f);
20 _increment =
static_cast<qreal
>(message->increment);
22 _minDistance = message->min_distance;
23 _maxDistance = message->max_distance;
24 _angleOffset =
static_cast<qreal
>(message->angle_offset);
25 if(_distances.count() == 0) {
26 for(
int i = 0; i < MAVLINK_MSG_OBSTACLE_DISTANCE_FIELD_DISTANCES_LEN; i++) {
27 _distances.append(
static_cast<int>(message->distances[i]));
30 for(
int i = 0; i < MAVLINK_MSG_OBSTACLE_DISTANCE_FIELD_DISTANCES_LEN; i++) {
31 _distances[i] =
static_cast<int>(message->distances[i]);
37 auto* sp = qobject_cast<VehicleSetpointFactGroup*>(_vehicle->
setpointFactGroup());
38 qreal startAngle = sp->yaw()->rawValue().toDouble() + _angleOffset;
39 for(
int i = 0; i < MAVLINK_MSG_OBSTACLE_DISTANCE_FIELD_DISTANCES_LEN; i++) {
40 if(_distances[i] < _maxDistance && message->distances[i] != UINT16_MAX) {
41 qreal d =
static_cast<qreal
>(_distances[i]);
42 d = d /
static_cast<qreal
>(_maxDistance);
43 qreal a = (_increment * i) - startAngle;
44 if(a < 0) a = a + 360;
45 qreal rd = (M_PI / 180.0) * a;
46 QPointF p = QPointF(d * cos(rd), d * sin(rd));
48 _objDistance.append(d);