Skip to main content

AVxcelerate Simulation Framework 2026 R1 SP01

File i_vehicle.h

Last update: 22.04.2026

Location: autonomy/simulation/utilities/vehicle/i_vehicle.h

Classes

Namespaces

Includes

Source



#ifndef AUTONOMY_SIMULATION_UTILITIES_VEHICLE_IVEHICLE_H
#define AUTONOMY_SIMULATION_UTILITIES_VEHICLE_IVEHICLE_H

#include "autonomy/simulation/utilities/vehicle_controller/i_vehicle_controller.h"
#include "autonomy/simulation/utilities/vehicle_model/i_vehicle_model.h"
#include "autonomy/simulation/utilities/vehicle_state/vehicle_state.h"
#include <memory>
#include <utility>
#include <vector>
namespace simulation_framework
{
namespace utilities
{
namespace vehicle
{
class IVehicle
{
  public:
    virtual ~IVehicle() = default;

    virtual std::pair<state::MotionState, state::ControlInput> RequestMotionState(
        const state::MotionState& current,
        const std::vector<state::MotionState>& request,
        double dt) = 0;

    virtual void RegisterController(std::unique_ptr<controller::IVehicleController> controller) = 0;

    virtual void RegisterModel(std::unique_ptr<model::IVehicleModel<double>> model) = 0;

    virtual const controller::IVehicleController* GetController() const = 0;

    virtual const model::IVehicleModel<double>* GetModel() const = 0;
};

}  // namespace vehicle
}  // namespace utilities

}  // namespace simulation_framework

#endif  // AUTONOMY_SIMULATION_UTILITIES_VEHICLE_IVEHICLE_H

Connect with Ansys