|
|
@ -63,9 +63,11 @@ StructureScanComplexItem::StructureScanComplexItem(Vehicle* vehicle, bool flyVie |
|
|
|
connect(&_altitudeFact, &Fact::valueChanged, this, &StructureScanComplexItem::_updateCoordinateAltitudes); |
|
|
|
connect(&_altitudeFact, &Fact::valueChanged, this, &StructureScanComplexItem::_updateCoordinateAltitudes); |
|
|
|
|
|
|
|
|
|
|
|
connect(&_structurePolygon, &QGCMapPolygon::dirtyChanged, this, &StructureScanComplexItem::_polygonDirtyChanged); |
|
|
|
connect(&_structurePolygon, &QGCMapPolygon::dirtyChanged, this, &StructureScanComplexItem::_polygonDirtyChanged); |
|
|
|
connect(&_structurePolygon, &QGCMapPolygon::countChanged, this, &StructureScanComplexItem::_polygonCountChanged); |
|
|
|
|
|
|
|
connect(&_structurePolygon, &QGCMapPolygon::pathChanged, this, &StructureScanComplexItem::_rebuildFlightPolygon); |
|
|
|
connect(&_structurePolygon, &QGCMapPolygon::pathChanged, this, &StructureScanComplexItem::_rebuildFlightPolygon); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
connect(&_structurePolygon, &QGCMapPolygon::countChanged, this, &StructureScanComplexItem::_updateLastSequenceNumber); |
|
|
|
|
|
|
|
connect(&_layersFact, &Fact::valueChanged, this, &StructureScanComplexItem::_updateLastSequenceNumber); |
|
|
|
|
|
|
|
|
|
|
|
connect(&_flightPolygon, &QGCMapPolygon::pathChanged, this, &StructureScanComplexItem::_flightPathChanged); |
|
|
|
connect(&_flightPolygon, &QGCMapPolygon::pathChanged, this, &StructureScanComplexItem::_flightPathChanged); |
|
|
|
|
|
|
|
|
|
|
|
connect(_cameraCalc.distanceToSurface(), &Fact::valueChanged, this, &StructureScanComplexItem::_rebuildFlightPolygon); |
|
|
|
connect(_cameraCalc.distanceToSurface(), &Fact::valueChanged, this, &StructureScanComplexItem::_rebuildFlightPolygon); |
|
|
@ -108,19 +110,23 @@ void StructureScanComplexItem::_clearInternal(void) |
|
|
|
emit lastSequenceNumberChanged(lastSequenceNumber()); |
|
|
|
emit lastSequenceNumberChanged(lastSequenceNumber()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void StructureScanComplexItem::_polygonCountChanged(int count) |
|
|
|
void StructureScanComplexItem::_updateLastSequenceNumber(void) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Q_UNUSED(count); |
|
|
|
|
|
|
|
emit lastSequenceNumberChanged(lastSequenceNumber()); |
|
|
|
emit lastSequenceNumberChanged(lastSequenceNumber()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int StructureScanComplexItem::lastSequenceNumber(void) const |
|
|
|
int StructureScanComplexItem::lastSequenceNumber(void) const |
|
|
|
{ |
|
|
|
{ |
|
|
|
return _sequenceNumber + |
|
|
|
// Each structure layer contains:
|
|
|
|
(_layersFact.rawValue().toInt() * |
|
|
|
// 1 waypoint for each polygon vertex + 1 to go back to first polygon vertex for each layer
|
|
|
|
((_flightPolygon.count() + 1) + // 1 waypoint for each polygon vertex + 1 to go back to first polygon vertex for each layer
|
|
|
|
// Two commands for camera trigger start/stop
|
|
|
|
2)) + // Camera trigger start/stop for each layer
|
|
|
|
int layerItemCount = _flightPolygon.count() + 1 + 2; |
|
|
|
2; // ROI_WPNEXT_OFFSET and ROI_NONE commands
|
|
|
|
|
|
|
|
|
|
|
|
int multiLayerItemCount = layerItemCount * _layersFact.rawValue().toInt(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int itemCount = multiLayerItemCount + 2; // +2 for ROI_WPNEXT_OFFSET and ROI_NONE commands
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return _sequenceNumber + itemCount - 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void StructureScanComplexItem::setDirty(bool dirty) |
|
|
|
void StructureScanComplexItem::setDirty(bool dirty) |
|
|
|