To use a transportation capability (modal type) an agent requires to implement the
ISteeringCapable interface (e.g.
ICarSteeringCapable, see figure below), which defines methods and properties that this agent must offer to be able to steer that
Besides steering the vehicle the agent may also use some vehicles as a passenger (e.g. using the
IPassengerCapable is implemented by the
MultimodalAgent and informs the agent with a
PassengerMessage about the current status of the drive. It may for instance notify the agent at every stop (e.g.
FerryStation) so that the agent may decide to leave or stay on the ferry.
ISteeringHandle is the interface for an agent to drive the vehicle. Every
Vehicle has a specific steering handle and provides that to the agent on successful enter.
Adding new transportation modalities is supported by the
MultimodalAgent if it complies with the steering concept (see below).