WimaController.cc 2.76 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
void WimaController::setCurrentPolygonIndex(int index)
{
26
    if(index >= 0 && index < _visualItems->count() && index != _currentPolygonIndex){
27 28 29 30 31 32
        _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

        emit visualItemsChanged();
50 51 52 53 54 55

        if(_currentPolygonIndex >= _visualItems->count()){
            setCurrentPolygonIndex(_visualItems->count() - 1);
        }else{
            recalcPolygonInteractivity(_currentPolygonIndex);
        }
56 57 58 59 60 61 62 63
    }else{
        qWarning("Index out of bounds!");
    }

}

void WimaController::addServiceArea()
{
64 65 66 67
    resetAllIsCurrentPolygon();
    WimaServicePolygon* newPoly = new WimaServicePolygon(this);
    newPoly->setIsCurrentPolygon(true);
    _visualItems->append(newPoly);
68 69 70 71

    emit visualItemsChanged();
}

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

}

void WimaController::abortMission()
{

}

void WimaController::pauseMission()
{

}

void WimaController::resumeMission()
{

}

void WimaController::saveMission()
{

}

void WimaController::loadMission()
{

}

102 103
void WimaController::recalcVehicleCorridor()
{
104

105 106
}

107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
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);
    }
}

133 134