#pragma once

#include <QGeoCoordinate>

#include "MissionController.h"
#include "PlanMasterController.h"
#include "Vehicle.h"

namespace WaypointManager {

class Settings
{
public:
    Settings();

    bool valid() const;

    void setHomePosition(const QGeoCoordinate &c);
    void setMissionController(MissionController *controller);
    void setMasterController(PlanMasterController *controller);
    void setIsFlyView(bool isFlyView);
    void setArrivalReturnSpeed(double speed);
    void setFlightSpeed(double speed);
    void setAltitude(double altitude);

    const QGeoCoordinate &homePosition() const;
    QGeoCoordinate &homePosition();
    MissionController *missionController() const;
    PlanMasterController *masterController() const;
    Vehicle *vehicle() const;
    bool isFlyView() const;
    double arrivalReturnSpeed() const;
    double flightSpeed() const;
    double altitude() const;

private:
    QGeoCoordinate          _homePosition;
    MissionController      *_missionController;
    PlanMasterController   *_masterController;
    bool                    _isFlyView;
    double                  _arrivalReturnSpeed;
    double                  _flightSpeed;
    double                  _altitude;

};

} // namespace WaypointManager
