/*
 * Copyright (C) 2012-2026 MotionSystems
 *
 * This file is part of ForceSeatMI SDK.
 *
 * www.motionsystems.eu
 *
 */

#pragma once

class IForceSeatMIPhysXVehicle_ControllerCore
{
public:
	struct ExtraTransformation
	{
		float yaw;
		float pitch;
		float roll;
		float right;
		float up;
		float forward;
	};

public:
	virtual ~IForceSeatMIPhysXVehicle_ControllerCore() {}

public:
	virtual void Begin() = 0;
	virtual void End() = 0;
	virtual void Update(float deltaTime) = 0;
	virtual void Pause(bool paused) = 0;
	virtual void AddExtraTransformation(const ExtraTransformation& transformation) = 0;
	virtual void SetAdditionalProperties(float sideSlip, float roadHarshness, float g) = 0;
	virtual void SetUserAux(float aux1, float aux2, float aux3, float aux4, float aux5, float aux6, float aux7, float aux8) = 0;
};
