WimaGOperationArea.cc 3.57 KB
Newer Older
1 2
#include "WimaGOperationArea.h"

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

const char* WimaGOperationArea::settingsGroup =                   "OperatingArea";
const char* WimaGOperationArea::bottomLayerAltitudeName =         "BottomLayerAltitude";
const char* WimaGOperationArea::numberOfLayersName =              "NumberOfLayers";
const char* WimaGOperationArea::layerDistanceName =               "LayerDistance";

WimaGOperationArea::WimaGOperationArea(QObject *parent)
  : WimaGOperationArea (nullptr, parent)
{

}

WimaGOperationArea::WimaGOperationArea(WimaArea *other, QObject *parent)
  : WimaArea(other, parent)
  , _metaDataMap            (FactMetaData::createMapFromJsonFile(QStringLiteral(":/json/WimaGOperationArea.SettingsGroup.json"), this /* QObject parent */))
  , _bottomLayerAltitude    (settingsGroup, _metaDataMap[bottomLayerAltitudeName])
  , _numberOfLayers         (settingsGroup, _metaDataMap[numberOfLayersName])
  , _layerDistance          (settingsGroup, _metaDataMap[layerDistanceName])
  , _polyline               (new WimaTrackerPolyline(this))
{
    this->setObjectName("Operating Area");
    _polyline.bindPolygon(this);
    //qWarning("Here I am!");
    //connect(&_polyline, &WimaTrackerPolyline::pathChanged, this, &WimaGOperationArea::polylineChanged );
}

void WimaGOperationArea::addVehicle(WimaVehicle *vehicle)
30
{
31 32 33 34 35
    if(vehicle != nullptr){
        _wimaVehicle = vehicle;
        emit vehicleChanged();
    }
}
36

37 38 39 40 41 42
void WimaGOperationArea::removeVehicle(int vehicleIndex)
{
    if(vehicleIndex >= 0){
        _wimaVehicle = nullptr;
        emit vehicleChanged();
    }
43
}
44

45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
void WimaGOperationArea::setVehicleCorridor(WimaVCorridor *corridor)
{
    if(corridor != nullptr){
        if (corridor != _vehicleCorridor){
            _vehicleCorridor = corridor;
            emit vehicleCorridorChanged(_vehicleCorridor);
        }
        else {
            qWarning("WimaGOperationArea::setVehicleCorridor(): new corridor equals old _vehicleCorridor!");
        }
    }else{
        qWarning("WimaGOperationArea::setVehicleCorridor(): corridor == nullptr!");
    }
}

60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
/*void WimaGOperationArea::recalculatesubPolygons()
{
    int vehicleCount = _vehicleList->count();
    QScopedPointer<QList<QGCMapPolygon*>> listQGCPoly(this->splitPolygonArea(vehicleCount));

    int polyCount = listQGCPoly->size();
    _vehiclePolygons->clear();
    for(int i = 0; i < polyCount; i++){
        WimaVehicleMeasurementPolygon* subPoly = new WimaVehicleMeasurementPolygon(listQGCPoly->takeAt(i), this);
        _vehiclePolygons->append(subPoly);
    }
}

void WimaGOperationArea::removeAllVehicles()
{
    int count = _vehicleList->count();

    if(count > 0){
        do{
            _vehicleList->removeAt(0);
            count--;
        }while(count > 0);

        emit vehicleListChanged();
    }

}


void WimaGOperationArea::addVehiclePolygon()
{
    _vehiclePolygons->append(new WimaVehicleMeasurementPolygon(this));

    emit vehiclePolygonsChanged();
}

void WimaGOperationArea::removeVehiclePolygon(int polygonIndex)
{
    if(polygonIndex >= 0 && polygonIndex < _vehiclePolygons->count()){
        _vehiclePolygons->removeAt(polygonIndex);

        emit vehiclePolygonsChanged();
    }else {
        qWarning("Index out of bounds!");
    }
}

void WimaGOperationArea::removeVehiclePolygon(WimaVehicleMeasurementPolygon *wimaPolygon)
{
    if(wimaPolygon != nullptr){
        QObject* removedPolygon = _vehiclePolygons->removeOne(wimaPolygon);
        if(removedPolygon){
            emit vehiclePolygonsChanged();
        }else {
            qWarning("Polygon not inside polygon list.");
        }
    }else {
        qWarning("Not a valid Polygon.");
    }
}*/