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
}