// Copyright 2011 Simon Edwards <simon@simonzone.com>

//                 Generated by twine2

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as
// published by the Free Software Foundation; either version 2, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details

// You should have received a copy of the GNU Library General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

namespace Marble
{
class Maneuver
{
%TypeHeaderCode
#include <routing/Maneuver.h>
%End

public:
    enum Direction
    {
        Unknown,
        Continue,
        Merge,
        Straight,
        SlightRight,
        Right,
        SharpRight,
        TurnAround,
        SharpLeft,
        Left,
        SlightLeft,
        RoundaboutFirstExit,
        RoundaboutSecondExit,
        RoundaboutThirdExit,
        RoundaboutExit,
        ExitLeft,
        ExitRight
    };
                            Maneuver ();
    Marble::Maneuver::Direction  direction () const;
    void                    setDirection (Marble::Maneuver::Direction direction);
    Marble::GeoDataCoordinates  position () const;
    void                    setPosition (const Marble::GeoDataCoordinates& position);
    Marble::GeoDataCoordinates  waypoint () const;
    bool                    hasWaypoint () const;
    QString                 instructionText () const;
    void                    setInstructionText (const QString& text);
    QString                 directionPixmap () const;
    void                    setWaypoint (const Marble::GeoDataCoordinates& waypoint, int index);
    int                     waypointIndex () const;
    QString                 roadName () const;
    void                    setRoadName (const QString& roadName);
    bool                    operator == (const Marble::Maneuver& other) const;
    bool                    operator != (const Marble::Maneuver& other) const;
};
};
