WimaPolygon.cc 1.68 KB
Newer Older
1 2 3
#include "WimaPolygon.h"

WimaPolygon::WimaPolygon(QObject *parent) :
4
    QObject                 (parent)
5
  ,_maxAltitude             (30)
6
  ,_vehicle                 (parent)
7
  ,_polygon                 (new QGCMapPolygon(this))
8
{
Valentin Platzgummer's avatar
Valentin Platzgummer committed
9 10
    connect(_polygon, &QGCMapPolygon::interactiveChanged, this, &WimaPolygon::interactiveChanged);
    connect(_polygon, &QGCMapPolygon::countChanged, this, &WimaPolygon::countChanged);
11 12
}

13 14 15 16
WimaPolygon::WimaPolygon(QGCMapPolygon *other, QObject *parent):
    WimaPolygon(parent)
{
    *_polygon = *other;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
17 18 19 20 21 22 23
    connect(_polygon, &QGCMapPolygon::interactiveChanged, this, &WimaPolygon::interactiveChanged);
    connect(_polygon, &QGCMapPolygon::countChanged, this, &WimaPolygon::countChanged);
}

WimaPolygon::~WimaPolygon()
{

24 25 26
}


27 28 29 30
void WimaPolygon::setMaxAltitude(double alt)
{
    if(alt > 0 && alt != _maxAltitude){
        _maxAltitude = alt;
31
        emit maxAltitudeChanged();
32 33 34 35 36 37
    }
}


void WimaPolygon::setVehicle(Vehicle *vehicle)
{
38 39
    if(_vehicle.vehicle() != vehicle){
        _vehicle.setVehicle(vehicle);
40
        emit vehicleChanged();
41 42 43
    }
}

44

Valentin Platzgummer's avatar
Valentin Platzgummer committed
45 46 47
void WimaPolygon::setInteractive(bool interactive)
{
    _polygon->setInteractive(interactive);
48 49
}

Valentin Platzgummer's avatar
Valentin Platzgummer committed
50
QList<QGCMapPolygon *> *WimaPolygon::splitPolygonArea(QGCMapPolygon *polygonToSplitt, int numberOfFractions)
51
{
Valentin Platzgummer's avatar
Valentin Platzgummer committed
52 53
    if(numberOfFractions > 0 && polygonToSplitt != nullptr){
        QGCMapPolygon* poly = new QGCMapPolygon(polygonToSplitt, this);
54 55 56
        QList<QGCMapPolygon*>* list = new QList<QGCMapPolygon*>();
        list->append(poly);
        return list;
57 58 59 60 61
    }
    return nullptr;
}


Valentin Platzgummer's avatar
Valentin Platzgummer committed
62 63 64 65 66 67
QList<QGCMapPolygon*>* WimaPolygon::splitPolygonArea(int numberOfFractions)
{
    return splitPolygonArea(_polygon, numberOfFractions);
}