#pragma once

#include "Wima/Geometry/WimaMeasurementAreaData.h"
#include "Wima/Geometry/WimaServiceAreaData.h"
#include "Wima/Geometry/WimaCorridorData.h"
#include "Wima/Geometry/WimaJoinedAreaData.h"

namespace WaypointManager {

class AreaInterface
{
public:
    AreaInterface();
    AreaInterface(WimaMeasurementAreaData *mArea,
                  WimaServiceAreaData *sArea,
                  WimaCorridorData *corr,
                  WimaJoinedAreaData *jArea);

    void setMeasurementArea (WimaMeasurementAreaData *area);
    void setServiceArea     (WimaServiceAreaData *area);
    void setCorridor        (WimaCorridorData *area);
    void setJoinedArea      (WimaJoinedAreaData *area);

    virtual const WimaMeasurementAreaData   *measurementArea() const;
    virtual const WimaServiceAreaData       *serviceArea() const;
    virtual const WimaCorridorData          *corridor() const;
    virtual const WimaJoinedAreaData        *joinedArea() const;

    virtual WimaMeasurementAreaData *measurementArea();
    virtual WimaServiceAreaData     *serviceArea();
    virtual WimaCorridorData        *corridor();
    virtual WimaJoinedAreaData      *joinedArea();

private:
    WimaMeasurementAreaData *_mArea;
    WimaServiceAreaData     *_sArea;
    WimaCorridorData        *_cArea;
    WimaJoinedAreaData      *_jArea;
};


} // namespace WaypointManager
