// Models
import { Coordinates } from '../coordinates/coordinates-model';
import { Instruction } from './instruction-model';
/**
 * Defines a maneuver from its starting point to the success
 * point with the associated instruction
 */
export class Maneuver {
    constructor() {
        this.startPoint = new Coordinates(0, 0);
        this.successPoint = new Coordinates(0, 0);
        this.endPoint = new Coordinates(0, 0);
        this.length = 0;
        this.instruction = new Instruction();
        this.type = -1;
        this.waypointId = [];
    }
}
export var ManeuverType;
(function (ManeuverType) {
    ManeuverType[ManeuverType["kNone"] = 0] = "kNone";
    ManeuverType[ManeuverType["kStart"] = 1] = "kStart";
    ManeuverType[ManeuverType["kStartRight"] = 2] = "kStartRight";
    ManeuverType[ManeuverType["kStartLeft"] = 3] = "kStartLeft";
    ManeuverType[ManeuverType["kDestination"] = 4] = "kDestination";
    ManeuverType[ManeuverType["kDestinationRight"] = 5] = "kDestinationRight";
    ManeuverType[ManeuverType["kDestinationLeft"] = 6] = "kDestinationLeft";
    ManeuverType[ManeuverType["kBecomes"] = 7] = "kBecomes";
    ManeuverType[ManeuverType["kContinue"] = 8] = "kContinue";
    ManeuverType[ManeuverType["kSlightRight"] = 9] = "kSlightRight";
    ManeuverType[ManeuverType["kRight"] = 10] = "kRight";
    ManeuverType[ManeuverType["kSharpRight"] = 11] = "kSharpRight";
    ManeuverType[ManeuverType["kUturnRight"] = 12] = "kUturnRight";
    ManeuverType[ManeuverType["kUturnLeft"] = 13] = "kUturnLeft";
    ManeuverType[ManeuverType["kSharpLeft"] = 14] = "kSharpLeft";
    ManeuverType[ManeuverType["kLeft"] = 15] = "kLeft";
    ManeuverType[ManeuverType["kSlightLeft"] = 16] = "kSlightLeft";
    ManeuverType[ManeuverType["kRampStraight"] = 17] = "kRampStraight";
    ManeuverType[ManeuverType["kRampRight"] = 18] = "kRampRight";
    ManeuverType[ManeuverType["kRampLeft"] = 19] = "kRampLeft";
    ManeuverType[ManeuverType["kExitRight"] = 20] = "kExitRight";
    ManeuverType[ManeuverType["kExitLeft"] = 21] = "kExitLeft";
    ManeuverType[ManeuverType["kStayStraight"] = 22] = "kStayStraight";
    ManeuverType[ManeuverType["kStayRight"] = 23] = "kStayRight";
    ManeuverType[ManeuverType["kStayLeft"] = 24] = "kStayLeft";
    ManeuverType[ManeuverType["kMerge"] = 25] = "kMerge";
    ManeuverType[ManeuverType["kRoundaboutEnter"] = 26] = "kRoundaboutEnter";
    ManeuverType[ManeuverType["kRoundaboutExit"] = 27] = "kRoundaboutExit";
    ManeuverType[ManeuverType["kFerryEnter"] = 28] = "kFerryEnter";
    ManeuverType[ManeuverType["kFerryExit"] = 29] = "kFerryExit";
    ManeuverType[ManeuverType["kTransit"] = 30] = "kTransit";
    ManeuverType[ManeuverType["kTransitTransfer"] = 31] = "kTransitTransfer";
    ManeuverType[ManeuverType["kTransitRemainOn"] = 32] = "kTransitRemainOn";
    ManeuverType[ManeuverType["kTransitConnectionStart"] = 33] = "kTransitConnectionStart";
    ManeuverType[ManeuverType["kTransitConnectionTransfer"] = 34] = "kTransitConnectionTransfer";
    ManeuverType[ManeuverType["kTransitConnectionDestination"] = 35] = "kTransitConnectionDestination";
    ManeuverType[ManeuverType["kPostTransitConnectionDestination"] = 36] = "kPostTransitConnectionDestination";
})(ManeuverType || (ManeuverType = {}));
