classDiagram class MSVehicle { %% ==== CF / LC - METHODS (public) ==== +planMove(t: SUMOTime, ahead: MSLeaderInfo, lengthsInFront: double) void +executeMove() bool +enterLaneAtLaneChange(enteredLane: MSLane*) void +getCarFollowModel() const MSCFModel& +getCarFollowVariables() const MSCFModel::VehicleVariables* +getLaneChangeModel() MSAbstractLaneChangeModel& +getLaneChangeModel() const MSAbstractLaneChangeModel& +getLaneChangeMode() const int +setLaneChangeMode(value: int) void +saveState(out: OutputDevice&) void +loadState(attrs: SUMOSAXAttributes&, offset: SUMOTime) void %% ==== CF / LC - DATA (private/protected) ==== -myLaneChangeModel: MSAbstractLaneChangeModel* -myCFVariables: MSCFModel::VehicleVariables* -myStrategicLC: LaneChangeMode -myCooperativeLC: LaneChangeMode -mySpeedGainLC: LaneChangeMode -myRightDriveLC: LaneChangeMode -mySublaneLC: LaneChangeMode -myTraciLaneChangePriority: TraciLaneChangePriority }