WimaController.cc 2.55 KB
Newer Older
1
#include "WimaController.h"
Valentin Platzgummer's avatar
Valentin Platzgummer committed
2
#include "MissionController.h"
3

4
WimaController::WimaController(QObject *parent) :
5 6 7
    QObject             (parent)
  ,_planView            (true)
  ,_visualItems         (new QmlObjectListModel(parent))
Valentin Platzgummer's avatar
Valentin Platzgummer committed
8
{
9
    connect(this, &WimaController::currentPolygonIndexChanged, this, &WimaController::recalcPolygonInteractivity);
10
}
Valentin Platzgummer's avatar
Valentin Platzgummer committed
11

12 13 14
void WimaController::setMasterController(PlanMasterController *masterC)
{
    _masterController = masterC;
15
    emit masterControllerChanged();
16 17 18 19 20
}

void WimaController::setMissionController(MissionController *missionC)
{
    _missionController = missionC;
21 22 23
    emit missionControllerChanged();
}

24 25 26 27 28 29 30 31 32
void WimaController::setCurrentPolygonIndex(int index)
{
    if(index > 0 && index < _visualItems->count() && index != _currentPolygonIndex){
        _currentPolygonIndex = index;

        emit currentPolygonIndexChanged(index);
    }
}

33 34
void WimaController::addGlobalMeasurementArea()
{
35 36 37 38
    WimaGlobalMeasurementPolygon* newPoly = new WimaGlobalMeasurementPolygon(this);
    _visualItems->append(newPoly);
    int newIndex = _visualItems->count()-1;
    _currentPolygonIndex = newIndex;
39

40
    emit currentPolygonIndexChanged(newIndex);
41 42 43 44 45
    emit visualItemsChanged();
}

void WimaController::removeArea(int index)
{
46 47
    if(index > 0 && index < _visualItems->count()){
        _visualItems->removeAt(index);
48 49 50 51 52 53 54 55 56 57

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

}

void WimaController::addServiceArea()
{
58 59 60 61
    resetAllIsCurrentPolygon();
    WimaServicePolygon* newPoly = new WimaServicePolygon(this);
    newPoly->setIsCurrentPolygon(true);
    _visualItems->append(newPoly);
62 63 64 65

    emit visualItemsChanged();
}

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
void WimaController::startMission()
{

}

void WimaController::abortMission()
{

}

void WimaController::pauseMission()
{

}

void WimaController::resumeMission()
{

}

void WimaController::saveMission()
{

}

void WimaController::loadMission()
{

}

96 97
void WimaController::recalcVehicleCorridor()
{
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 123 124 125 126
void WimaController::recalcVehicleMeasurementAreas()
{

}

void WimaController::recalcAll()
{

}

void WimaController::recalcPolygonInteractivity(int index)
{
    resetAllIsCurrentPolygon();
    WimaPolygon* interactivePoly = qobject_cast<WimaPolygon*>(_visualItems->get(index));
    interactivePoly->setIsCurrentPolygon(true);
}

void WimaController::resetAllIsCurrentPolygon()
{
    int itemCount = _visualItems->count();
    for (int i = 0; i < itemCount; i++) {
        WimaPolygon* iteratorPoly = qobject_cast<WimaPolygon*>(_visualItems->get(i));
        iteratorPoly->setIsCurrentPolygon(false);
    }
}

127 128